Работа с массивами

Структурированные типы данных

Структурированные типы данных представляют собой наборы однотипных или разнотипных компонент.

В Паскале существуют следующие структурированные типы:

- тип-массив;

- тип-строка;

- тип-запись;

- тип-множество;

- тип-файл.

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

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

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

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

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

Элементы одномерного массива идентифицируются переменной с одним индексом.

Формат записи:

<имя массива>[<индекс>],

где индекс может быть выражением порядкового типа, кроме типа Longint.

Например: A[6].

Элементы двумерного массива идентифицируются переменными с двумя индексами.

Формат записи:

<имя массива>[<индекс1>, <индекс2>]

Обычно первый индекс связывают с номером строки, второй - с номером столбца матрицы.

Например: М[3, 5].

Описание массива определяет имя, тип индекса и базовый тип.

Формат описания в разделе переменных:

Var

<имя массива>: array [<тип индекса>] of <базовый тип>;

Чаще всего в качестве типа индекса используется интервальный целый тип.

Примеры описания одномерных массивов:

Var

В: array [0..5] of real;

R: array [1..34] of char;

N: array ['A'..'Z'] of integer;

Примеры описания двумерных массивов:

Два следующих описания двумерных массивов тождественны.

Var

M: array[1..10] of array[1..20] of real;

Var

M: array[1..10, 1..20] of real;

Чаще пользуются вторым способом описания.

Ввод и вывод массива производится поэлементно. Обычно для этого используется цикл с параметром, где в качестве параметра применяется индексная переменная.

Пример ввода и вывода одномерных массивов
(вводится десять значений целочисленного массива А и выводятся значения вещественного массива В, содержащего 20 элементов):

var

А:аrrау[1. .10] of integer;

В:array[l. .20] of real;

i:integer;

begin

for i : = 1 to 10 do

begin

write('A[', i, ']=');

readln(A[i])

end;

 

for i := 1 to 50 do

begin

writeln('В[', i, ']=', В[i])

end;

end.

Задача

Сформировать матрицу Пифагора (таблицу умножения в матричной форме) и вывести ее на экран.

Решение

Значения элементов матрицы Пифагора вычисляются следующим образом: P[I, J]=I*J.

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

program pifagor;

var

P:array [1..9, 1..9] of integer;

I, J:integer;

begin

for I: = 1 to 9 do

for J:=l to 9 do

P[I, J]:=I*J;

for I:=l to 9 do

begin

for J: = 1 to 9 do

write(P[I, J]:4);

writeln {Производит перевод печати на новую строку}

end

end.