Хммм я кажется тут чтото не то делаю.
Вроде надо проверить, являются ли все числа в строках матрицы в убывающей последовательности.
Процедуры работают очень хорошо..А вот в самом теле какая то фигня. Выдаёт ошибку в цикле while
UZD3.PAS ( 1.24 килобайт )
Кол-во скачиваний: 443
uses crt;
const
n = 2;
m = 3;
type
TMx = array [1..n, 1..m] of integer;
procedure ReadMatrix(var mx: TMx);
var
i, j: Integer;
begin
for i := 1 to n do
for j := 1 to m do begin
write('mx[', i, ',', j, ']=');
readln(mx[i, j]);
end;
end;
procedure PrintMatrix(const mx: TMx);
var
i, j: Integer;
begin
for i := 1 to n do begin
writeln;
for j := 1 to m do
write(mx[i, j]:2);
end;
end;
function CheckRow(const mx: TMx; row: Integer): Boolean;
var
i: Integer;
begin
i := 1;
while (i < m) and (mx[row, i] <= mx[row, i + 1]) do inc(i);
CheckRow := (i = m);
end;
function CheckMatrix(const mx: TMx): Boolean;
var
i: Integer;
begin
i := 1;
while (i <= n) and (CheckRow(mx, i)) do inc(i);
CheckMatrix := (i > n);
end;
var
mx: TMx;
begin
clrscr;
ReadMatrix(mx);
PrintMatrix(mx);
writeln;
Writeln(CheckMatrix(mx));
readln;
end.
Я думаю, ошибку выдает из-за отсутствия скобочек при сравнении эл-тов массива.
UZD3.PAS ( 1.48 килобайт )
Кол-во скачиваний: 433
Да да..Это я поняла что там двумерный масив..
Поставила 2 координаты, но сейчас всё ещё не компилирует никак..
procedure printmatrix(a :matrix; n,m: integer);
var i,j: integer;
begin for i:=1 to n do
for j:=1 to m do begin { <--- Внимание !!! Цикл по J }
write(a[i,j]:6);
if j=m then begin writeln;
for j:=1 to m do begin { <--- И вложенный в него - тоже по J ??? }
end; writeln
end end
end;