русс | укр

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

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

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

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


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

Многомерные массивы


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


String[] friendNames = {"Robert Harwell", "Mike Parry", "Jeremy

Можно использовать <имя> для доступа к очередному элементу

Циклы foreach

Цикл foreach позволяет обращаться ко всем элементам массива с помощью очень простого синтаксиса:

foreach (<базовыйТип> <имя> in <массив>)

{

}

Этот цикл пройдет по всем элементам массива, последовательно помещая каждый из них в переменную <имя>; при этом опасность выхода за границы массива отсутствует. Нам не придется беспокоиться о том, сколько элементов имеется в массиве, и мы сможем воспользоваться в цикле каждым из них. Для того чтобы применить этот способ, изменим код последнего примера:

static void Main(string[] args)

{

Beacock"};

Console.WriteLine(“Here are {0} of my friends:”, friendNames.Length);

foreach(string friendNames in friendNames)

{

Console.WriteLine(friendName);

}

}

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

foreach (string friendName in friendNames)

{

friendName = "Rupert the bear";

}

При попытке откомпилировать этот код будет выдано сообщение об ошибке.

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



Двумерный массив такого вида объявляется следующим образом:

<базовыйТш1>[,] <имя>;

Описания массивов с большим числом размерностей требуют больше запятых. Например:

<базовыйТип>[,,,] <имя>;

Так объявляется четырехмерный массив.

Для присваивания значений используется аналогичный синтаксис, причем размерности отделяются одна от другой запятыми. Для того чтобы объявить и инициализировать обсуждавшийся выше двумерный массив hillHeight с базовым типом double, размерностью х, равной 3, и размерностью у, равной 4, необходима следующая строка:

double [,]hillHeight = new double [3,4] ;

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

double [ ,] hillHeight = new {{1, 2, 3, 4 } , {2, 3, 4, 5 } , {3, 4, 5, 6}};

Этот массив имеет точно такие же описания размерностей, что и предыдущий, однако в данном случае значения элементов массива задаются явно.

Для того чтобы получить доступ к отдельным элементам многомерного массива, следует указать индексы этого элемента, разделенные запятыми. Например:

hillHeight [2,1]

Теперь над этим элементом можно выполнять действия так же, как и над другими элементами.

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

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

Например:

Double[,] hillHeight = { { 1 , 2 , 3 , 4 } , { 2 , 3 , 4 , 5 } , { 3 , 4 , 5 , 6 } } ;

foreach double height in hillHeight )

{

Console.WriteLine(“{0}”, height;

}

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

hillHeight[0,0]

hillHeight[0,l]

hillHeight[0,2]

hillHeight[0,3]

hillHeight[1,0]

hillHeight[1,1]

hillHeight[1,2]

и т.д..



<== предыдущая лекция | следующая лекция ==>
Объявление массивов | Динамические структуры данных.


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


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

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

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


 


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

 
 

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

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