Показать сообщение отдельно
Старый 07.11.2019, 20:29   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от 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.
Ввод матрицы лучше сделать как у меня, с подсказками, а не "слепым", как у Вас. Вывод матрицы на экран желательно форматный, тогда столбцы не будут "разъезжаться" при разном количестве знаков в элементах матрицы. Но это так, к слову.
Изображения
 
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070