Работа с массивами
Структурированные типы данных
Структурированные типы данных представляют собой наборы однотипных или разнотипных компонент.
В Паскале существуют следующие структурированные типы:
- тип-массив;
- тип-строка;
- тип-запись;
- тип-множество;
- тип-файл.
Массив — это упорядоченный набор однотипных значений, ссылаться на которые можно с помощью индекса. Тип элементов массива называется базовым типом массива. Массивы могут быть одномерными и многомерными.
Одномерный массив — это массив, у которого элементы — простые переменные. В одномерных массивах хранятся значения линейных таблиц.
Двумерный массив - структура данных, хранящая прямоугольную матрицу. В матрице каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен. В Паскале двумерный массив рассматривается как массив, элементы которого есть одномерные массивы.
Массиву присваивается имя, посредством которого можно ссылаться на него, как на единое целое, так и на любой из его элементов.
К любому элементу массива можно обратиться с помощью индекса, который задается в квадратных скобках, непосредственно следующих за идентификатором переменной массива.
Элементы одномерного массива идентифицируются переменной с одним индексом.
Формат записи:
<имя массива>[<индекс>],
где индекс может быть выражением порядкового типа, кроме типа 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.