В квадратной матрице заменить предпоследний столбец первой из строк, в которой находится максимальный элемент - Turbo Pascal
Формулировка задачи:
Дана квадратная матрица. Заменить предпоследний столбец первой из строк, в которой находится максимальный элемент. Использовать подпрограммы.
Решение задачи: «В квадратной матрице заменить предпоследний столбец первой из строк, в которой находится максимальный элемент»
textual
Листинг программы
const n=4;
type t_matr=array[1..n, 1..n] of integer;
procedure read_mas(var a:t_matr);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
readln(a[i,j]);
end;
procedure write_mas(a:t_matr);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:5);
writeln;
end;
end;
procedure search_string(a:t_matr; var c:integer);
var i,j,max:integer;
begin
c:=1;
max:=a[1,1];
for i:=1 to n do
for j:=1 to n do
if max<a[i,j] then
begin
max:=a[i,j];
c:=i;
end;
end;
procedure new_mas(a:t_matr;var b:t_matr; c:integer);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
if j=n-1 then b[i,j]:=a[c,i]
else b[i,j]:=a[i,j];
end;
var a,b:t_matr;
c:integer;
begin
read_mas(a);
writeln(' Исходная матрица*');
write_mas(a);
search_string(a,c);
new_mas(a,b,c);
writeln(' Полученная матрица*');
write_mas(b);
end.
Объяснение кода листинга программы
- В начале объявляются все необходимые переменные.
- Затем идет процедура чтения матрицы, которая считывает каждый элемент матрицы и сохраняет его в соответствующую переменную.
- После этого идет процедура записи матрицы, которая выводит каждый элемент матрицы на экран.
- Далее идет процедура поиска максимального элемента в матрице.
- Затем идет процедура создания новой матрицы на основе старой и переменной c.
- В конце выводится полученная матрица.