05. Обработка табличных данных. Массив

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

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

Для представления табличных данных в программах используют специальный тип данных — массив. Он состоит из заранее заданного количества элементов одного типа1) (например, из 100 целочисленных или из 52 символьных). Все они будут обозначаться одним общим именем, а чтобы указать, с каким именно элементом мы работаем в данный момент, к имени добавляется индекс — номер2) элемента внутри массива. Итак, мы будем называть массивом совокупность фиксированного числа элементов одного типа, упорядоченных по индексам.

Массив в языке Pascal

Как и любые переменные, массивы необходимо предварительно описать в разделе var. Тип переменной при этом записывается следующим образом:

array [ начальный_индекс .. конечный_индекс ] of тип_элемента ;

Обратите внимание: диапазон изменения индекса записан через знак, состоящий из двух точек.

Например:

var t: array [1..12] of real;

Здесь описан массив с именем t, состоящий из 12 элементов (их номера от 1 до 12) вещественного типа real.

При обращении к элементу массива его индекс указывается в квадратных скобках после имени массива. Например, t[10] — десятый элемент массива t.

Важно, что индекс может быть не только числом, но и переменной, и даже целым математическим выражением. Именно это (совместно с использованием циклов) позволяет легко и удобно обрабатывать массивы, состоящие из десятков и даже сотен элементов.

Пример программы с использованием массива

program average;

var t: array [1..12] of real;

i: integer; at: real;

begin

for i := 1 to 12 do begin

write('T[', i:2, ']='); {выводим пояснение на экран, например, «T[1]=»}

readln(t[i]); {вводим значение i-го элемента}

end;

at := 0;

for i := 1 to 12 do

at := at + t[i]; {прибавляем к накопленной сумме значение очередного элемента}

at := at / 12; {находим среднее арифметическое, разделив сумму на количество элементов}

writeln('Среднегодовая температура: ', at:6:2, '°C');

end.

Задания

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

2) В Pascal в качестве индекса можно использовать не только числа.