Помощь - Поиск - Пользователи - Календарь
Полная версия: Матрица
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Anastacia Adesso
Хммм я кажется тут чтото не то делаю.
Вроде надо проверить, являются ли все числа в строках матрицы в убывающей последовательности.

Процедуры работают очень хорошо..А вот в самом теле какая то фигня. Выдаёт ошибку в цикле while Нажмите для просмотра прикрепленного файла
klem4
Код
for j:=1 to m do i:=1; // < ---- ТУТ Do Begin видимо нужно :)
while (i<=n-1) and a[i]>a[succ(i)] do inc(i);
end;writeln;


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.
мисс_граффити
Я думаю, ошибку выдает из-за отсутствия скобочек при сравнении эл-тов массива.
klem4
Цитата
Я думаю, ошибку выдает из-за отсутствия скобочек при сравнении эл-тов массива.


Anastacia Adesso, + Ты обращаешься к эелементу матрица как к элнементу массива (a[i] вместо a[i, j]), да и циклы по i и j у тебя помоему перепутаны местами в проверке, надо идти по строками (внешний цикл)
Anastacia Adesso
Нажмите для просмотра прикрепленного файла Да да..Это я поняла что там двумерный масив..
Поставила 2 координаты, но сейчас всё ещё не компилирует никак..
volvo
Цитата(Anastacia Adesso @ 12.10.2006 11:10)
сейчас всё ещё не компилирует никак..
Я бы тоже отказался ЭТО компилировать:
    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;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.