Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОП Конспект лекций - Паскаль.doc
Скачиваний:
20
Добавлен:
30.11.2018
Размер:
1.46 Mб
Скачать

Тема 14: Багатомірні масиви

Ми розглянули масиви в яких кожен елемент містив один індекс. Але дуже часто приходиться мати справу з багатомірними масивами, тобто з масивами масивів, серед яких найбільше поширення одержали двовимірні масиви, що називають матрицями. Матриця являє собою числа, зображені в кілька рядків, наприклад:

A(3,4) =

Дана матриця має розмір 3 на 4, тобто вона складається з трьох рядків і чотирьох стовпців. Матриця позначається ім'ям, а кожен її елемент має два індекси, наприклад, А[i,j], де перший індекс “i” позначає номер рядка, а другий індекс “j” – номер стовпця. Опис матриці має вид.

type massiv = array[1..3] of array[1..4] of integer;

var a:massiv;

або

type massiv = array[1..3,1..4] of integer;

var a:massiv;

де в першому варіанті спочатку описується один тип індексу 1..3, потім указується складний базовий тип Array[1..4] Of Integer, що у свою чергу містить опис другого типу індексу і простого базового типу Integer. В другому випадку описується кожен тип індексу, потім указується простий базовий тип елементів масиву Integer.

Якщо в програмі потрібно виділити окремі рядки матриці, опис буде мати вид

type

massiv1= array[1..4] of integer;

massiv = array[1..3] of massiv1;

var

a : massiv; b : massiv1;

тут спочатку описується тип одного рядка Massiv1, а потім, через тип рядка Massiv1 описується тип усієї матриці Massiv; у розділі Var “A” є двовимірним масивом, а “B” – одномірним масивом.

Типи індексів матриці можуть бути різними, що дозволяє описувати дані в більш природному виді. Наприклад, опис шахівниці, де поля позначаються як цифрами, так і буквами, може бути таким:

type bukva = ( a, b, c, d, e, f, g, h, );

type doska = array[bukva, 1…8] of figural;

Введення елементів матриці виконується за допомогою процедури Read, що розташовують усередині циклу, наприклад,

writeln(`Введення елементів матриці:`);

for i := 1 to n do

for j :=1 to m do

read(a[ i, j ]);

Виведення елементів матриці виконується за допомогою процедури Write, розташованої усередині циклу.

writeln(`Виведення елементів матриці:`);

for i :=1 to n do

begin

for j :=1 to m do

write(a[ i, j ]);

writeln;{ця процедура потрібна для порядкового виведення матриці}

end;

Приклад. Дано матрицю дійсних чисел А.

А(3,5)=

Одержати матрицю В, значення якої дорівнюють подвоєним значенням матриці А.

const n=3;{кількість рядків}

m=5;{кількість стовпців}

type massiv = array[1..n,1..n] of real;

var

a,b : massiv;{масиви типу massiv}

i : integer; {індекс рядка}

j : ineger; {індекс стовпця}

begin

writeln(`введіть значення матриці А :`);

for i := 1 to n do

for j := 1 to m do

read(a[i,j]);

{обчислення значень матриці В:`);

for i := 1 to n do

for j :=1 to m do

b[i,j]:=a[i,j]*2;

writeln(‘виведення значень матриці В :’);

for i:=1 to n do

begin

for j:=1 to m do

write (b[ i, j ]:3:1,’ ’:2 );

writeln;

end;

end.

Питання для контролю.

1.Багатомірний масив і його опис.

2.Позначення елементів матриці.

3.Якими можуть бути типи індексів матриці?

4.Організація введення елементів матриці.

5.Організація виведення елементів матриці.