В чём ошибка?

Компьютеры программирование C++ Delphi cpp

Переводил код с C++ на Delphi:
//C++
for (i = 1; 3*i+1<n; i++)
{
for (j = 1; (k = i+j+2*i*j)<n && j<=i; j++)
{
a[k] = 0;
}
}

//Delphi
Begin
i:=1;
j:=1;
While (3*i+1)<n Do
Begin
k:=i+j+2*i*j;
inc(i);
While ((k < n) and (j <= i)) Do
begin
inc(j);
a[k]:=0;
end;
end;
end;

Но код на Делфи работает не правильно. В чём ошибка и как её исправить?
Ответы:
Begin
i:=1;
j:=1;
While (3*i+1)<n Do
Begin
  repeat
    k:=i+j+2*i*j;
    a[k]:=0;
    inc(j);
  until ((k >= n) or (j > i));
  inc(i);
end;
end;


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.