Pascal. Массивы

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

Размер массива (количество элементов) задается при объявлении в блоке var. Например, объявляем массив с именем massiv из 10 элементов, каждый из которых - целое число:


var
  massiv : array[1..10] of integer;

Обычно индекс массива начинается с 1, хотя это необязательно. В PascalABC 0 в индексе статического массива не используется. Статический массив - это массив, размер которого определяется при объявлении и который не может быть изменен в процессе выполнения программы.

Присвоим пятому элементу этого массива значение 14:


  massiv[5] := 14;

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

Например, введем 10 целых чисел в массив, а затем выведем его:


const
 N = 10; // Для размера массива удобно ипользовать константу
var
  massiv : array[1..N] of integer;
begin
  for var i:= 1 to N do readln(massiv[i]);
  for var i:= 1 to N do write(massiv[i],' ');
  writeln;
end.

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

Введем числа в двухмерный массив, состоящий из двух строк и пяти столбцов, а затем выведем его построчно:


var
  table : array[1..2,1..5] of integer;
begin
  for var i:= 1 to 2 do 
    for var j := 1 to 5 do readln(table[i,j]);
  for var i:= 1 to 2 do
    begin
      for var j:= 1 to 5 do write(table[i,j],' ');
      writeln;
    end;
end.

Начальные значения элементам массива можно присваивать непосредственно при объявлении. Например:


type
  months = (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec);
var
  temperature: array[months] of real = (-5, -12, 2, 15, 16.5, 18.5, 20.8, 20.4, 17.3, 13.2, 3.3, -4.5);
begin
  writeln(temperature[may]);
end.

В блоке type мы определили перечисляемый тип данных months, который использовали для индекса массива. Значения элементам присвоили при объявлении массива.

 

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

Если иное не указано, то в условии задач следует считать массив из 10 целочисленных значений.

Задачи для самостоятельного решения