Дана матрица размера 5 на 10ю найти минимальный\максимальный среди тех строк\столбцов, которые упорядочены либо по возрастанию, либо по убыванию. если такие строки\столбцы отсутствуют,то вывести 0.
я конечно чего-й-то написала, но не работают некоторые процедуры.
еще такой вопрос как сократить количество этих самых процедур????
program matrix21;
type matrix=array[1..50,1..50] of integer;
var
a:matrix;
i,j,p,p2,r,r2,s,d,max:integer;
{************************************************}
procedure ybuBaniestroki(a:matrix; var r:integer; var max:integer);
begin
{ystanoBka fla*ka}
r:=0;
for i:=1 to 4 do begin
for j:=1 to 9 do begin
if a[i,j+1]>=a[i,j] then r:=1; {Smena fla*ka} end;
begin if r=0 then writeln('Stroka #',i,' ybuBaet');
end;
end;
end;
{*************************************************}
procedure Bozrastaniestroki(a:matrix; var p:integer);
begin
{ystanoBka fla*ka}
p:=0;
for i:=1 to 4 do begin
for j:=1 to 9 do begin
if a[i,j+1]<=a[i,j] then p:=1; {Smena fla*ka} end;
begin
if p=0 then writeln('Stroka ',i,' Bozrastaet');
end;
for j:=2 to 5 do
max:=a[i,1];
begin if a[i,j]>max then max:=a[i,j];
end;
writeln('max=',max:5);
end;
end;
{**************************************************}
procedure ybuBaniestolbca(a:matrix; var r2:integer);
begin
{ystanoBka fla*ka}
r2:=0;
for i:=1 to 4 do begin
for j:=1 to 9 do begin
if a[i+1,j]>=a[i,j] then r2:=1; {Smena fla*ka} end;
begin
if r2=0 then writeln('Stolbec ',j,' ybuBaet');
end;
end;
end;
{**************************************************}
procedure Bozrastaniestolbca(a:matrix; var p2:integer);
begin
{ystanoBka fla*ka}
p2:=0;
for i:=1 to 4 do begin
for j:=1 to 9 do begin
if a[i+1,j]<=a[i,j] then p:=1; {Smena fla*ka} end;
begin
if p=0 then writeln('Stroka ',j,' Bozrastaet');
end;
end;
end;
{*************************************************}
procedure BuBodnylj(p,r,p2,r2:integer; var s:integer);
begin
s:=0;
if (p=0) and (r=0) and (r2=0) and (p2=0) then writeln('0');
end;
{*************************************************}
begin
{BBod matricu}
writeln('BBedite elementu matricu razmera 5*10');
for i:=1 to 5 do begin
for j:=1 to 10 do begin
write('a[',i,',',j,']=');
readln(a[i,j]) end;
end;
writeln;
{BuBod matricu}
writeln('Bawa matrica');
for i:=1 to 5 do begin
for j:=1 to 10 do write(a[i,j]:5);
writeln;
end;
{Obrawenie k proceduram}
ybuBaniestroki(a,r,max);
Bozrastaniestroki(a,p);
ybuBaniestolbca(a,r2);
Bozrastaniestolbca(a,p2);
BuBodnylj(p,r,p2,r2,s);
end.
М | Теги используем... |