Основная заморочка возникает, когда нужно определить, упорядочена ли строка, и при сравнении первого элемента со вторым, оказывается что они равны!
Тогда приходится идти по строке дальше, и еще хлеще, если ВСЕ элементы равны. Тогда это уже отдельная ветка условия. Вобщем, я сделал так, что если все элементы строки равны, то они считаются упорядоченными (например, по неубыванию). Это можно изменить, я оставил комментарий. Весьма громоздко, зато надежно.
Код
Program Zadacha_2;
Uses
Crt;
Const
n = 3;
Var
a: Array [1..n,1..n] of Byte;
i,j: Byte;
b,f: Boolean;
{****************************************************************************}
Begin
Randomize;
ClrScr;
for i:=1 to n
do begin
for j:=1 to n
do begin
a[i,j]:=Random(5);
Write(a[i,j]:3)
end;
WriteLn
end;
WriteLn;
for i:=1 to n
do begin
Write('Stroka #', i, ': ');
j:=1;
repeat
if a[i,1] > a[i,2]
then f:=false
else f:=true;
Inc(j)
until (a[i,1] <> a[i,2])or(j = n);
if j = n
then Write(a[i,n]) {<---------- если все елем. равны, и считается, что они НЕ упорядоч., }
{вместо a[i,n] вставить 'не упорядочена' }
else begin
b:=true;
while (j <= n-1)and(b)
do begin
if (f = (a[i,j] > a[i,j+1]))and(f <> (a[i,j] < a[i,j+1]))
then b:=false;
Inc(j)
end;
if b
then if f
then Write(a[i,n])
else Write(a[i,1])
else Write('ne uporyadochena')
end;
WriteLn('.')
end;
ReadLn
End.