<<
>>

Массив

Массив представляет собой упорядоченную структуру однотипных данных, которые называются элементами массива. Структура данных типа Массив подходит, например, для решения задачи обработки среднесуточных температур, описанной выше.
Доступ к каждому отдельному элементу массива осуществляется с помощью индекса — в общем случае порядкового номера элемента в массиве. Массивы могут быть как одномерными (адрес каждого элемента определяется значением одного индекса), так и многомерными (адрес каждого элемента определяется значением нескольких индексов). Общий синтаксис объявления типа «и-мерный массив»: =Аггау [,,...,3 0£ Из приведенного описания видно, что до объявления массива необходимо объявить типы индексов и элемента. Индексы массива должны принадлежать типу-диапазону, т. е. принимать множество последовательных значений порядкового типа. Элемент массива может принадлежать любому типу данных, в том числе и типу массив. Рассмотрим следующие примеры: Туре Realarray = Array [1..365] C(f Real; Тип Real array (массив из 365 вещественных чисел) можно использовать при решении задачи о среднесуточной температуре, введя, например, переменную Temperature типа Real_array: Var Temperature : Realarray; Доступ к отдельному элементу массива осуществляется через указание имени массива и значения индекса, заключенного в квадратные скобки: Temperature[5] := 5.6; (среднесуточной температуре за 5-й день года присваивается значение 5.6).
Значение индекса может быть задано выражением соответствующего типа: Temperature[п*7] := 10; В зависимости от значения переменной п (предположим, ЧТО п меняется от I до 52) значение 10 будет занесено в 7-, 14-, 21-, ..., 364 -й элементы массива. Рассмотрим фрагмент программы, позволяющий вычислить Среднесуточную температуру за год. Введем переменные Sum_Temp типа Real (для суммирования Всех значений элементов массива), Mid Temp типа Real (для вычисления средней температуры за год) и переменную-параметр ЦИКЛа i типа Integer.
Sum^Temp 0; // первоначальное обнуление // переменной Гог i ;= 1 То 365 Do Sum_JTemp := Sum_Temp + Temperature [i]; // цикл подсчета суммарной // температуры Mid__Temp := Sum_Temp/365; // вычисление среднего значения Для решения подобной задачи, возможно, более наглядным будет введение двумерного массива вещественных чисел, где первый индекс будет меняться от 1 до 12 (в соответствии с количеством месяцев в году), а второй индекс — от 1 до 31 (в соответствии с максимальным количеством дней в месяце): Туре Real_array = Array [1..12, 1..31] Of Real; В этом случае общее количество элементов в массиве — 12-31 = 372, а доступ к отдельному элементу осуществляется через задание двух индексов: Temperature [2,7] — значение среднесуточной температуры 7 февраля. Для вычисления средней температуры за год необходимо объявить две переменные-параметры цикла — i и j, а фрагмент программы будет иметь следующий вид: Sum_Temp ;= 0; //первоначальное обнуление //переменной For i := 1 То 12 Do For j := 1 To 31 Do Sum_Temp := Sum_Temp + Temperature[i, j] ; // вложенные циклы подсчета // суммарной температуры Mid_Temp := Sum_Temp/(12*31); // вычисление среднего значения Задание значений массиву-константе. При определении массива-константы значения элементов массива указываются в круглых скобках и разделяются запятыми. Если массив многомерный, то внешние скобки соответствуют самому левому индексу, вложенные в них — следующему, и т. д. Например, для массивов, типы которых определяется предложениями: Туре Vect_array = Array £1..71 Of Integer; Matr_array = Array [1..3, 1..4] Of Integer; могут быть заданы константы Cl и С2. Const Cl: Vect_array = (1, 3, 5, 7, 9, 11, 13); C2: Matr_array = ((1, 3, 5, 7),(2, 4, 6, 8), (9, 11, 13, 15));

Операции над массивами. Для одномерных массивов символов можно использовать операции сравнения, даже если это массивы не идентичных типов и имеют различный размер, например, для объявленных следующим образом массивов: Var А : Array [1..15] Of Char; В : Array £ 1.

.10] Of Char; можно написать условный оператор вида: If А>В Then Writeln(А) Else Writeln(В); Одному массиву можно присвоить значение другого, но только если они идентичных типов, например, если заданы массивы: Var Al, А2 : Array [1..15] Of Real; В : Array [1..15] Of Real; ТО оператор присваивания допустим только между массивами А1 и А2 (А1 := А2), даже несмотря на то, что размеры и типы элементов совпадают у всех трех массивов. Стандартные функции. Для массивов целых и вещественных Чисел в современных реализациях языка определены некоторые стандартные функции (табл. 3.12).
Таблица 3.12. Стандартные функции над массивами ЯП Pascal

Окончание табл. 3.12

<< | >>
Источник: О. Л. Голицына, Т. Л. Партыка, И. И. Попов. ЯЗЫКИ ПРОГРАММИРОВАНИЯ. 2008

Еще по теме Массив:

  1. 18.5. Права и обязанности держателя (обладателя) по работе с массивами персональных данных
  2. 18.6. Государственное регулирование работы с персональными данными
  3. Частотный анализ и кодировка.
  4. 1.4. Цель настоящего учебника
  5. 18.7. Уполномоченный по правам субъектов персональных данных
  6. 18.3. Правовые основы работы с персональными данными
  7. 18.2. Субъекты и объекты информационных правоотношений
  8. 18.4. Права субъекта персональных данных
  9. Статья 245. Уничтожение или повреждение объектов растительного мира
  10. четвертая коммуникационная революция
  11. 11.1. Интернет и правовая система