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

Программа

Program Problem3;

const

n = 4; m = 5;

type

s = array[1..m] of integer;

t = array[1..n] of s;

st = array[1..n] of integer;

var

a : t;

b : st;

{----------------------------------------------------------------------------------------}

Procedure create_two(n, m : integer; var a : t);

var

i, j : integer;

begin

writeln('Заданный двумерный массив целых чисел');

randomize;

for i := 1 to n do

begin

for j := 1 to m do

begin

a[i, j] := random(201) - 100;

write(a[i, j]:6, ' ')

end;

writeln

end

end;

{----------------------------------------------------------------------------------------}

Procedure maxim_line(n, m : integer; a : t; var b : st);

var

i, j : integer;

begin

for i := 1 to n do

begin

b[i] := a[i, 1];

for j := 1 to m do

if a[i, j] > b[i] then b[i] := a[i, j];

end;

writeln('Наибольшие элементы каждой строки массива');

for i := 1 to n do write(b[i]:6, ' ');

writeln

end;

{----------------------------------------------------------------------------------------}

begin

create_two(n, m, a);

maxim_line(n, m, a, b)

end.

Задание 1

1. Составьте программу, которая бы находила наименьшие элементы строк, а затем из них определяла наименьший элемент всего двумерного массива.

2. Составьте программу нахождения наибольших элементов каждого столбца двумерного массива.

Пример 4. Составьте программу преобразования матрицы в одномерный массив (вектор).

Разберем решение этой задачи на частном примере.

Пусть задана матрица целых чисел:

Ее надо преобразовать в одномерный массив, который назовем B. Число элементов этого массива должно быть равно числу элементов матрицы, т. е. Для этого в начале программы надо зарезервировать не только двумерный массив, но и одномерный.

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

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

k := 1, b[1] := a[1, 1] = 3, k := k + 1 = 2; b[2] := a[1, 2] = -12 и т. д.

В конечном итоге мы должны получить одномерный массив, который и надо вывести на экран. Для матрицы из рассматриваемого примера этот одномерный массив будет таким: 3, -12, 45, 9, 6, 8, -10, 52, 7, 4, 25, -2

Вот процедура, а затем и программа, выполненная по этому алгоритму:

Procedure sprain(n, m : integer; a : t; var b : u);

var

k, i, j : integer;

begin

k := 0;

for i := 1 to n do

for j := 1 to m do

begin

k := k + 1;

b[k] := a[i, j]

end

end;