Двумерные массивы

End.

Readln

Begin

Синтаксис записи массива

Массивы

Лекция № 7

 

В математике широко применяются так называемые индексированные переменные: x ,x ,b ,y ,y ,z ,z

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

Эти подстрочные цифры и выражения называются индексами.

В среде Паскаль подстрочных букв и цифр нет. Поэтому индексированные переменные обозначаются следующим образом: x[1], x[2], b[8], y[i], y[i-6], z[i,n], z[i+1,n].

Индексированные переменные очень удобно применять при операциях с числовыми рядами.

Рассмотрим пример: Возьмем бесконечный ряд чисел Фибоначчи 1 1 2 3 5 8 13 21 34….. Эти числа образуются по определенному закону: каждое из чисел, начиная с третьего является суммой двух предыдущих. Попробуем записать это утверждение с помощью языка математики: первое число обозначим f[1], второе - f[2] и т.д. Тогда мы можем записать, что

f[1]=1 f[2]=1 f[3]=2 f[4]=3 f[5]=5 f[6]=8

Очевидно, что

f[3]=f[1]+f[2]

f[4]=f[2]+f[3]

f[5]=f[3]+f[4]

Общая формула для записи суммы двух предыдущих чисел будет выглядеть так:

f[i]=f[i-2]+f[i-1]

Самостоятельно запишите в индексном виде :

1). 14 18 22 26…… a[i]=a[i-1]+4

2). 6 12 24 48….. a[i]=2*a[i-1]

3). 3 5 9 17 33 65….. a[i]=2*a[i-1]-1

 

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

Они и будут называться массивом.

Массив- это сложный (структурированный) тип данных, строящийся из простых.

Var имя: array[1..n] of тип данных

 

Задача: Напишите программу вычисления средней температуры за одну неделю января.

Var t: array[1..7] of integer;

S,i:integer;

t[1]:=-21; t[2]:=-12; t[3]:=0; t[4]:=4; t[5]:=-5; t[6]:=-14; t[7]:=-24;

s:=0;

for i:=1 to 7 do s:=s+t[i];

writeln(‘Средняя температура=’,s/7:6:2);

Мы составили программу для одного ряда данных. Поэтому этот массив можно назвать одномерным.

 

 

Массивы могут быть двумерные, трехмерные, четырехмерные и т.д.

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

 

Номер станции 1 день 2 день 3 день 4 день
-8 -14 -19 -18

Требуется:

1. Вывести на экран температуру на 2-ой метеостанции за 4-ый день и на 3-ей метеостанции за 1 день.

2. Вывести показания термометров всех метеостанций за 2 –ой день.

3. Определить среднюю температуру на 3-ей метеостанции.

4. Вывести на экран всю таблицу.

5. Определить в какие дни и на каких метеостанциях температура была в диапазоне 24-26 градусов тепла.

Для этого обозначим показания термометров индексированной переменной с двумя индексами по следующей схеме:

 

t[1,1] t[1,2] t[1,3] t[1,4]

t[2,1] t[2,2] t[2,3] t[2,4]

t[3,1] t[3,2] t[3,3] t[3,4]

где первый индекс обозначает номер строки таблицы, второй индекс – номер столбца.

Программа:

Var t:array[1..3, 1..4] of integer;

i, k, s:integer;