Найти номер первой строки, все элементы которой кратны 5 - Turbo Pascal

Формулировка задачи:

Здравствуйте, такая задача. Есть матрица (n на 2n) . Найти номер первой строки все элементы которой кратны 5. Использовать только цикл while. Поиск решения сделать с процедурой. Входные данные и результат выписать в текстовый файл. Я написал саму программу. Однако появилась такая проблема. После считывания данных программа не закрывается (остается висеть черным окном). После пошаговой проверки оказалось, что проблема в процедуре. Наверное, нет выхода из цикла. Помогите, пожалуйста найти ошибку.
Type Matrix = array[1..5, 1..10] of integer;
 
Procedure Check(var n : integer; X : matrix; var Result : integer);
var i, j, k, n2 : integer;
    U, Y : boolean;
 
  begin
    i := 1; j := 1; Result := 0; U := true; n2 := 2 * n;
 
    while U = true do
    begin
      Y := true;
      if i < n + 1 then
        begin
          k := 0;
          while Y = true do
            begin
              if j < (n2 + 1) then
                begin
                  if (x[i, j] mod(5) = 0) then
                    k := k + 1;
                  j := j + 1;
                end;
              if j = n2 then Y := false;
            end;
 
          if (k = n2) then
            begin
              Result := i;
              U := false;
            end;
            Y := false;
            i := i + 1;
        end;
      if i = 6 then U := false;
    end;
  end;

Код к задаче: «Найти номер первой строки, все элементы которой кратны 5 - Turbo Pascal»

textual
Type Matrix = array[1..5, 1..10] of integer;
Procedure Check(n:integer;X: matrix;var Result:integer);
var n2,i,j,k:integer;
begin
Result:=0;
n2:=2*n;
i:=1;
while(i<=n)and (Result=0)  do
 begin
  j:=1;
  k:=0;
  while (j<=n2)and(k=0) do
  if X[i,j] mod 5<>0 then k:=1
  else j:=j+1;
  if k=0 then Result:=i
  else i:=i+1;
 end;
writeln('Номер первой строки, элементы которой кратны 5=',Result)
end;
var a:matrix;
    n,nstr,i,j:integer;
begin
while not(n in [1..5]) do
 begin
  write('Количество строк от 1 до 5 n=');
  readln(n);
 end;
writeln('Введите элементы матрицы, в том числе строки с числами, кратными 5');
i:=1;
while i<=n do
 begin
  j:=1;
  while j<=2*n do
   begin
    write('a[',i,',',j,']=');
    readln(a[i,j]);
    j:=j+1;
   end;
  i:=i+1;
 end;
writeln('Матрица');
i:=1;
while i<=n do
 begin
  j:=1;
  while j<=2*n do
   begin
    write(a[i,j]:4);
    j:=j+1;
   end;
  writeln;
  i:=i+1;
 end;
Check(n,a,nstr);
 
end.

14   голосов, оценка 3.857 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы