Билет 56.Массивы и их обработка

Массивы - структурированный тип данных с элементами одного типа. Количество элементов определяет размер массива. Например, массив составляют заработные платы сотрудников подразделения предприятия, здесь число элементов равно числу сотрудников; массив образуют набор чисел, их количество равно числу элементов массива. Номер элемента массива называется его индексом. Массив может иметь не один, а большее число индексов. Число индексов называется размерностью массива, например, массив с двумя индексами называется двумерным массивом. Таким двумерным массивом является, в частности, матрица системы n линейных алгебраических уравнений с n неизвестными. В то же время столбец свободных членов этой системы является одномерным массивом.

Массив должен быть описан либо в разделе переменных VAR, либо в разделе типов TYPE.

TYPE <имя_типа> = ARRAY [ti,t2....,tn] OF <тип_элементов_массива>;

VAR <имя_массива>: <имя_типа>;

или

VAR<имя_массива>: ARRAY [ti,t2,...,tn]OF<тип_элементов_массива>;

где

tl,...,tn - тип индекса (перечислимый или интервальный);

Например:

1) VAR a: ARRAY [1..5] OF real;

Описан массив а действительных чисел, который состоит из 5 элементов.

2) TYPE t = ARRAY[1..3,1..4] OF integer;

VAR b: t;

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

3) TYPE tl = ARRAY [1..4] OF integer;

t = ARRAY [1..5] OF t1;

VAR d: t; к: t1;

В начале описан тип одной строки t1, затем тип всей матрицы t через тип строки t1.

В разделе переменных указано,что d-двумерный массив размером (5,4), a k - одномерный массив k(4).

Пример обработки одномерного массива Дан одномерный массив MAS(12) из вещественных чисел. Найти наибольший элемент массива и его индекс.

program pr4_1;

const n = 12; (*константа n определяет размер массива в описании*)

type m = array [1..n] of real; (* m – тип массива mas *)

var mas: m; i, num: integer;

max: real;

begin

for i:=1 to n do (*ввод элементов массива mas по 1 в строке*)

begin writeln(‘введите элемент массива’, i);

read (mas[i]);

end;

num:=1;

max:= mas [1];

for i: =2 to n do if mas [ i ] > max then

begin max:= mas [i ];

num:= i;

end;

writeln; (* вывод массива в строку*)

for i:=1 to n do

write (mas [ i ]:5:1);

writeln;

writeln (‘максимальный элемент = ‘, max:4:1,‘ его индекс=’,num);

readln;

end.

Переменная max сравнивается с элементами массива, и если элемент массива больше max, то переменной max присваивается значение элемента массива, а переменной num - индекс этого элемента. По окончании цикла переменная max будет иметь значение, равное максимальному элементу массива, а переменная num - значение индекса этого элемента. Пример обработки многомерного массива Как правило, при обработке многомерных массивов используются вложенные циклы, т.е. цикл по столбцам располагается внутри цикла по строкам. Дана матрица A(3,4), и вектор B (4), состоящие из целых чисел. Умножить матрицу А на вектор В.

program pr4-2;

const m=3;

n=4;

var a: array [ 1.. m, 1.. n ] of integer; (* описание матрицы *)

b: array [ 1.. n ] of integer; (* описание вектора *)

c: array [ 1.. m ] of integer; (* описание С *)

i, j: integer;

begin for i:=1 to m do (* ввод матрицы *)

begin writeln (‘введите элементы ‘, i, ‘-той строки’);

for j:=1 to n do read (a [i, j]);

writeln;

end;

writeln (‘введите элементы вектора’);

for j:=1 to n do (* ввод вектора *)

read (b[ j]);

writeln;

for i:=1 to m do begin c [ i ]:=0;

for j:=1 to n do

c[i]:= c[ i ]+ a[i, j]* b[j];

end;

for i:=1 to m do (*форматный вывод матрицы *)

begin for j:=1 to n do write (a [i, j]: 4);

writeln;

end;

for j:=1 to n do write (b [ j ]:4); (* вывод массива B *)

writeln;

for i:=1 to m do write (c [ i ]:4); (* вывод массива С *)

readln;

end.

В программе элементы матрицы вводятся по строкам по одному с подтверждением клавишей Enter. А выводятся в общепринятом виде: каждая строка матрицы с новой строки экрана (цикл i по строкам внешний, а цикл j – внутренний).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: