Консультация № 195727
27.05.2019, 16:37
0.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Написать программу в Pascal ABC. Дана матрица. Удалите из неё строку и столбец, на пересечении которых расположен минимальный элемент.

Обсуждение

давно
Профессор
401888
1232
27.05.2019, 19:47
общий
это ответ
Здравствуйте, tanya.hryanina!
[code lang=pascal]
var a:array[1..20,1..20] of integer;
n,m,i,j,imn,jmn:integer;
begin
randomize;
repeat
writeln('Введите количество строк и столбцов от 2 до 20');
readln(n,m);
until(n in [2..20])and(m in [2..20]);
writeln('Исходная матрица');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=10+random(90);
write(a[i,j]:3);
end;
writeln;
end;
imn:=1; //пока минимальный первый
jmn:=1;
for i:=1 to n do
for j:=1 to m do
if a[i,j]<a[imn,jmn] then
begin
imn:=i; //номер строки и столбца с минимальным
jmn:=j;
end;
writeln('Минимальный элемент=',a[imn,jmn],' в строке ',imn,' в столбце ',jmn);
//удаление строки
if imn<n then
for i:=imn to n-1 do
for j:=1 to n do
a[i,j]:=a[i+1,j];
n:=n-1;
//удаление столбца
if jmn<m then
for j:=jmn to m-1 do
for i:=1 to n do
a[i,j]:=a[i,j+1];
m:=m-1;
writeln('Удаление этих строки и столбца');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:3);
writeln
end;
end.var a:array[1..20,1..20] of integer;
n,m,i,j,imn,jmn:integer;
begin
randomize;
repeat
writeln('Введите количество строк и столбцов от 2 до 20');
readln(n,m);
until(n in [2..20])and(m in [2..20]);
writeln('Исходная матрица');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=10+random(90);
write(a[i,j]:3);
end;
writeln;
end;
imn:=1; //пока минимальный первый
jmn:=1;
for i:=1 to n do
for j:=1 to m do
if a[i,j]<a[imn,jmn] then
begin
imn:=i; //номер строки и столбца с минимальным
jmn:=j;
end;
writeln('Минимальный элемент=',a[imn,jmn],' в строке ',imn,' в столбце ',jmn);
//удаление строки
if imn<n then
for i:=imn to n-1 do
for j:=1 to n do
a[i,j]:=a[i+1,j];
n:=n-1;
//удаление столбца
if jmn<m then
for j:=jmn to m-1 do
for i:=1 to n do
a[i,j]:=a[i,j+1];
m:=m-1;
writeln('Удаление этих строки и столбца');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:3);
writeln
end;
end.
[/code]
Форма ответа