PROGRAM PRPV1;
const n=3;m=3;
type Tarr = Array[1..n,1..m] of real;
var
A:Tarr;
i,j:BYTE;
q:real;
BEGIN
FOR i:=1 TO n DO
FOR j:=1 TO m DO
A[i,j]:=30*(n+1-j)+0.2*i; {закон изменения элементов}
FOR i:=1 TO n DO {вывод массива на печать}
BEGIN
FOR j:=1 TO m DO
WRITE(A[i,j]:0:2,' ');
WRITELN;
END;
WRITELN('Enter Q'); {ввод значения для поиска}
READLN(q); {до сюда все работает идеально}
i:=1;
j:=1;
WHILE((i<=n) and (A[i,j]<>q)) do {проблемы начинаются тут}
begin
WHILE((i<=m) and (A[i,j]<>q)) do
j:=j+1;
IF j>m then
i:=i+1;
end;
IF (i > n) AND (j > m) THEN {вывод на печать найденного элемента или сообщение об отсутствии элемента}
WRITELN('not found')
ELSE
WRITELN('found A[',i,',',j,']');
END.
Программа работает идеально, ищет элементы выводит их индексы. Но когда задаешь элемент, которого нет в массиве программа зависает.
Сообщение отредактировано: dog -