Цитата:
Сообщение от Gasphord
Я совершенно запутался в ходе решения и не могу разобраться,помогите.
|
Попробую.
Только я, знаете ли, пользую классический допотопный Паскаль, безо всяких Result'ов. Так что уж не взыщите.
Я бы решал задачку так:
Код:
Const n=3;
Type
Matr=array[1..n,1..n] of integer;
Vect=array[1..n] of integer;
Var
i,j,N_of_lns,N_of_col:integer;
a:Matr;
V:Vect;
procedure Getmat;
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
begin
write('a[',i:2,',',j:2,'] = ');
readLn(a[i,j]);
end;
writeln;
writeln;
end;
procedure Vivod;
var i,j:integer;
begin
for i:=1 to n do
begin
for j:= 1 to n do
write(a[i,j]:4);
writeln;
end;
writeln;
end;
function Sign(s1,s2:integer):integer;
begin
if s1>s2 then Sign:=1 else
if s1<s2 then Sign:=-1 else
Sign:=0;
end;
function Monton(S:Vect):boolean;
var
i:integer;
flag:boolean;
begin
flag:=true;
i:=1;
repeat
Inc(i);
if Sign(S[i],S[i+1])<>Sign(S[1],S[2]) then flag:=false;
until (flag=false) or (i=n-1);
Monton:=flag;
end;
Begin
GetMat;
Vivod;
N_of_lns:=0;
for i:=1 to n do
begin
for j:=1 to n do V[j]:=a[i,j];
if Monton(V) then Inc(N_of_lns);
end;
N_of_col:=0;
for j:=1 to n do
begin
for i:=1 to n do V[i]:=a[i,j];
if Monton(V) then Inc(N_of_col);
end;
Writeln('Number of lines = ',N_of_lns);
Writeln('Number of columns = ',N_of_col);
Readln
End.
Ввод матрицы лучше сделать как у меня, с подсказками, а не "слепым", как у Вас. Вывод матрицы на экран желательно форматный, тогда столбцы не будут "разъезжаться" при разном количестве знаков в элементах матрицы. Но это так, к слову.