1)Дана матрица размером M * N. В каждой строке матрицы найти минимальный элемент и максимальный из найденного.
2)дана матрица размерами N * N. Поменять местами столбец с максимальным и столбец содержащий минимальное количество нулевых элементов. Использовать три процедуры (заполнение, смена, вывод).

1

Ответы и объяснения

2013-11-14T19:46:09+04:00
1)uses crt;
const m=5;
n=5;
var a:array[1..m,1..n] of integer;
b:array[1..m] of integer;
i,max,min,j,k,p:integer;
begin
randomize;
for i:=1 to m do
for j:=1 to n do
a[i,j]:=random(20);
min:=20;
max:=0;
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
writeln;
k:=1;
repeat
for i:=k to k do
for j:=1 to n do
begin
if (a[i,j]<min) then begin min:=a[i,j]; b[k]:=a[i,j]; end;
end;
inc(k);
min:=20;
until k>n;
for p:=1 to m do
if (b[p]>max) then max:=b[p];
writeln(max);
end.


2)uses crt;
const n=5;
var a:array[1..n,1..n] of integer;
b:array[1..n] of integer;
i,j,k,p,t,min,max:integer;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(5);
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
writeln;
k:=1;
t:=0;
repeat
for i:=1 to n do
for j:=k to k do
if a[i,j]=0 then inc(t);
b[k]:=t;
t:=0;
inc(k);
until k>n;
min:=5;
max:=0;
for p:=1 to n do
begin
if(b[p]>max) then max:=p;
if(b[p]<min) and (b[p]<>0) then min:=p;
end;
k:=1;
repeat
for i:=k to k do
//for j:=1 to n do
begin
a[k,min]:=a[k,min]+a[k,max];
a[k,max]:=a[k,min]-a[k,max];
a[k,min]:=a[k,min]-a[k,max];
inc(k);
end;
until k>n;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
writeln;
end.