Построить матрицу, которая образуется из исходной добавлением к ней строки максимальных значений по столбцам - Pascal
Формулировка задачи:
Обработка двумерных массивов (матриц)
Разработать программу, в которой предусмотреть:
- ввод размерности NxM двумерного массива А,
- задание элементов массива двумя способами: ввод с клавиатуры и формирование значений с помощью функции RANDOM(K) генерирования случайных чисел в диапазоне [0..К-1].
ВАРИАНТ ЗАДАНИЯ :
Построить новую матрицу, которая образуется из исходной добавлением к ней строки максимальных значений по столбцам.
Решение задачи: «Построить матрицу, которая образуется из исходной добавлением к ней строки максимальных значений по столбцам»
textual
Листинг программы
const
n=5;m=4;k=10;
var
a:array[1..n,1..m] of integer;
b:array[1..n+1,1..m] of integer;
i,j,z:integer;
begin
randomize;
repeat
writeln('Матрица[',n,'x',m,']:');
writeln('1. Ручной ввод матрицы');
writeln('2. Автоматический ввод');
write('Ваш выбор:');
readln(i);
until i in [1,2];
if i=1 then begin
writeln('Вводите строки матрицы:');
for i:=1 to n do begin
writeln('Строка ',i,':');
for j:=1 to m do read(a[i,j]);
end;
end
else
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random(k);
write(a[i,j]:4);
end;
writeln;
end;
for j:=1 to m do begin
b[n+1,j]:=a[1,j];
for i:=1 to n do begin
if a[i,j]>b[n+1,j] then b[n+1,j]:=a[i,j];
b[i,j]:=a[i,j];
end;
end;
writeln('Полученная матрица:');
for i:=1 to n+1 do begin
for j:=1 to m do write(b[i,j]:4);
writeln;
end;
end.
Объяснение кода листинга программы
- Объявление констант:
nсо значением 5mсо значением 4kсо значением 10
- Объявление переменных:
aкак целочисленный массив размерности 5х4bкак целочисленный массив размерности 6х4i,j,zкак целочисленные переменные
- Начало выполнения программы, использующей генератор случайных чисел.
- Цикл, который выполняется, пока пользователь не выберет 1 или 2:
- Вывод на экран информации о матрице и доступных вариантах ввода (1. Ручной ввод матрицы, 2. Автоматический ввод)
- Запрос у пользователя выбора варианта
- Если пользователь выбрал ввод вручную, то:
- Вывод сообщения о вводе строк матрицы
- Цикл для ввода значений элементов матрицы
- В противном случае, если пользователь выбрал автоматический ввод, то:
- Генерация случайных значений для элементов матрицы
- Вывод на экран сгенерированной матрицы
- Заполнение массива
bстрокой, содержащей максимальные значения по столбцам:- Проход циклом по столбцам матрицы
a - Нахождение максимального значения в столбце
- Присвоение этого значения элементу
b[n+1,j] - Заполнение элементов
b[i,j]значениями изa[i,j]
- Проход циклом по столбцам матрицы
- Вывод на экран полученной матрицы
b, содержащей исходную матрицуaс добавленной строкой максимальных значений по столбцам. - Конец программы.