Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 48

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 42 43 44 45 46 47 < 48 > 49 50 51 52 53 54 .. 404 >> Следующая


>

III <summary>

III Sumnary description for Classl.

Ill </suimary> class Classl (

static void Main(string!] args)

route щ out'

int myDirection “ -lj

double myDi»tancaj

Console.WriteLine(*1) North\n2) South\n3) East\n4) West'); do -

(

- Console.WriteLine ('Select a direction:') j

myDirection * Convert.Tolnt32(Console.ReadLineO );

}

while ((myDirection < 1) II (oyDirection > 4)) I Console.WriteLine ('Input a distanc ; *) i myDiatance “ Convert .ToDouble (Console.ReadLine О) j щуRoute.direction * (orientation)myDirection; myRoute. dietance = и ¦,'Distance,¦

Console.WriteLine('nyRoute specifies a direction of (0) and a * + 'distance of {1] *, nyRoute.direction, nyRoute.distance);

)

)

3. Запустите программу, выберите направление и введите расстояние:
92

Глава 5

Как это работает

Структуры, так же как и перечислимые типы, описываются вне основного тела

кода. Мы описали структуру route внутри объявления пространства имен, в том же

месте, в котором описывается используемый данной структурой тип orientation:

enum orientation ; byte

(

north = 1, south = 2, east = 3, west = 4,

>

struct route

С

public orientation direction; public double distance;

)

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

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

щуRoute.direction = (orientation)myDirection;

myRoute.distance - myDistance;

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

myRoute.distance = Convert,ToDouble{Console.ReadLine)));

Наличие дополнительного шага позволяет проверять вводимые значения, хотя в самом коде такая проверка не осуществляется.

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

Массивы

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

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

93

string friendMamel ' 'Robert Barwell';

String friendNanie2 * 'Hike Parry' J string friendName3 *= 'Jereray Seacock' i

Однако в этом случае вам потребуется затратить много усилий, особенно по мере написания кода для обработки каждой переменной в отдельности. Отсутствует и возможность пройти по всему этому списку строк в цикле.

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

fr iendNames 1<инде*о]

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

int 1;

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

<

Console.WriteLinel'JlHH e индексом (011 {1}', i, friendNames(i]) ;

>

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

базовый тип string, поскольку он предназначается для хранения переменных типа

string.

Вхождения массива часто называются элементами.

Объявление массивов

Массивы объявляются следующим образом:

<базовийПш>1] <иыя>! '

В данном случае <базоаыйтип> может быть произвольным типом, в том числе

перечислимым или структурой.

Прежде чем получить доступ к массиву, его необходимо инициализировать. Но получить доступ илн присвоить значение элементу массива следующим образом нельзя:
Предыдущая << 1 .. 42 43 44 45 46 47 < 48 > 49 50 51 52 53 54 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.