русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Массивы


Дата добавления: 2013-12-23; просмотров: 635; Нарушение авторских прав


Struct route

West = 4

Enum orientation : byte

Do

Class Class1

{

static void Main (string [] args)

{

route myRoute;

int myDirection = -1;

double myDistance;

Console.WriteLine(“1) North\n2) South\n3) East\n4) West”);

{

Console. WriteLine ("Select a direction:'') ;

myDirection = Convert.ToInt32(Console.ReadLine());

}

while ((myDirection < 1)׀׀(myDirection > 4));

Console.WriteLine(“Input a distance:");

myDistance = Convert .ToDouble (Console.ReadLine ()) ;

myRoute.direction = (orientation)myDirection;

myRoute. distance = myDistance ;

Console.WriteLine("myRoute specifies a direction of {0} and a “ +

"distance of {1}", myRoute.direction, myRoute.distance);

}

}

}

Структуры, так же как и перечислимые типы, описываются вне основного тела кода. Мы описали структуру route внутри объявления пространства имен, в том же месте, в котором описывается используемый данной структурой тип orientation:

{

north = 1,

south -2,

east = 3,

}

{

public orientation direction;

public double distance;

}

Основное тело кода имеет схожую структуру с некоторыми примерами, встречавшимся нам ранее: запрос входной информации у пользователя и вывод ее на экран. Выполняется некоторая несложная проверка допустимости вводимой информации, помещая выбор направления внутрь цикла do и отбрасывая любую введенную информацию, не являющуюся целым числом в диапазоне от 1 до 4 (эти значения для упрощения процедуры присваивания соответствуют членам перечислимого типа).

Работа с полями переменной типа route строится точно таким же образом, как если бы мы обращались к переменным того типа, что и эти поля. Присваивание, например, выполняется следующим образом:



myRoute.direction = (orientation)myDirection;

rayRoute.distance = myDistance;

Можно непосредственно присваивать введенное значение полю myRoute.distance без каких бы то ни было нежелательных последствий:

myRoute.distance = Convert.ToDouble(Console.ReadLineO);

Наличие дополнительного шага позволяет проверять вводимые значения, хотя в самом коде такая проверка не осуществляется. Любой доступ к полям структуры организовывается аналогичным образом. Допустимо считать, что выражения типа переменнаяТипаСтруктуры.переменнаяТипаПоля представляют собой переменную типа переменнаяТипаПоля.

Все типы переменных, которые мы рассматривали до сих пор, обладают одним общим свойством: в них хранится единственное значение (или — в случае структур — единственный набор значений). Но в ситуациях, когда необходимо хранить большое количество однородных данных, такой подход может оказаться не совсем удобным. В таких случаях более приемлемым было бы одновременное хранение нескольких значений одного типа без использования отдельной переменной для каждого значения. Предположим, к примеру, что вам необходимо выполнить вычисления, в которых задействованы имена всех ваших друзей. Для этого можно воспользоваться обычными переменными типа string, например, так:

string friendName1 = “ Robert Barwell";

string friendName2 = "Mike Parry";

string friendName3 = "Jeremy Beacock";

Однако в этом случае вам потребуется затратить много усилий, особенно по мере написания кода для обработки каждой переменной в отдельности. Отсутствует и возможность пройти по всему этому списку строк в цикле. Альтернативной возможностью является использование массивов. Массив представляет собой список индексированных переменных. Допустим, что у нас имеется массив, в котором хранятся все три имени, приведенные выше, и который называется friendNames. Тогда мы получаем доступ к отдельным элементам этого массива, просто указывая их индекс в квадратных скобках, как показано в следующем примере:

friendNames[<индекс>]

Индекс — это целое число, имеющее значение 0 для первого вхождения, 1 - для второго и т. д. Это означает, что у нас появляется возможность пройти все вхождения в цикле, например:

int i;

for (i = 0; i < 3; i++)

{

Console. WriteLine ("Имя с индексом {0}: {1)", i, friendNames [i].) ;

}

Каждый массив обладает единым базовым типом,т. е. все отдельные вхождения в массив имеют один и тот же тип. В данном случае массив friendNames имеет базовый тип string, поскольку он предназначается для хранения переменных типа string. Вхождения массива часто называются элементами.



<== предыдущая лекция | следующая лекция ==>
Summary description for Class1. | Объявление массивов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.