Pasсal - массивы - описание

ПРИМЕЧАНИЕ: урок по массивам в Паскаль доступен здесь.

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

  • каждый элемент массива может быть явно обозначен и к нему имеется прямой доступ;
  • число элементов массива определяется при его описании и в дальнейшем не меняется.

Тип индекса может быть только порядковым (кроме longint). Чаще всего используется интервальный тип (integer).

Описание типа массива задается следующим образом:

type
   имя_типа = array[ список индексов ] of стандарт_тип;

Где:

  1. стандарт_тип - любой стандартный тип данных в Pascal.
  2. имя_типа - новый тип данных, задаваемый программистом на основе существующего типа стандарт_тип;
  3. список индексов - список одного или нескольких индексных типов, разделенных запятыми;

Вводить и выводить массивы можно только поэлементно.

Пример 1. Ввод и вывод одномерного массива.

const  // секция объявления констант
   n = 5; // число элементов
type
   mas = array[1..n] of integer; // новый тип - массив
var
   a: mas; // переменная типа указанного выше 
   i: byte; 
begin
   writeln('введите элементы массива');
   for i:=1 to n do readln(a[i]);
   writeln('вывод элементов массива:');
   for i:=1 to n do write(a[i]:5);
end.

Определить переменную как массив можно и непосредственно при ее описании, без предварительного описания типа массива, например:

var a,b,c: array[1..10] of integer;

Если массивы a и b описаны как:

var
   a = array[1..5] of integer;
   b = array[1..5] of integer;

то переменные a и b считаются разных типов. Для обеспечения совместимости применяйте описание переменных через предварительное описание типа.

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

Вместе с тем, над массивами не определены операции отношения. Сравнивать два массива можно только поэлементно.

Так как тип, идущий за ключевым словом of в описании массива, - любой тип Турбо Паскаль, то он может быть и другим массивом. Например:

type
   mas = array[1..5] of array[1..10] of integer;

Такую запись можно заменить более компактной:

type
   mas = array[1..5, 1..10] of integer;

Таким образом возникает понятие многомерного массива. Глубина вложенности массивов произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничена, однако не может быть более 65520 байт.

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

randomize();
for i:=1 to m do // по 1-ому измерению
begin
  for j:=1 to n do // по  2-оу измерению измерению массива
  begin 
    a[i,j]:=random(10); // получаем значение
  end;
end;

Для "красивого" вывода матрицы на экран используйте такой цикл:

for i:=1 to m do // по строкам
begin
   for j:=1 to n do  // по столбцам
   begin
     write(a[i,j]:5);
   end;
   writeln; // переводим строку
end;

Источник (на основе): pascal.guti.ru/array.html

Key Words for FKN + antitotal forum (CS VSU):