
- •Двумерные массивы. Наибольший и наименьший элементы. Матрицы, строк, столбцов
- •1. Двумерные массивы
- •2. Ввод и вывод элементов двумерных массивов
- •Первый способ
- •Второй способ
- •Третий и четвертый способы
- •Алгоритм
- •Программа
- •Программа
- •Задание 1
- •Программа
- •Алгоритм
- •Программа
- •Задание 2
- •Программа
- •Программа
Программа
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;