Вопрос по программиованию на Паскале.

паскаль

uses crt;
var a:array [1..10000] of longint;
i,q,n,k,t,:longint;

BEGIN
randomize;
clrscr;
readln(n,k);
for i:=1 to n do a[i]:=random(2*k)-k;
for i:=1 to n do write(a[i],' ');
writeln;
i:=1;
repeat
if a[i]>=0 then begin
t:=a[i];
writeln(i,' i');
for q:=i to n-1 do a[q]:=a[q+1];
a[n]:=t;
end
else i:=1+1;
until i=n;
for i:=1 to n do write(a[i],' ');
writeln;
readkey;


END.
код стабильно зависает при исполнении, где ошибка?

Примечание:
uses crt;
var a:array [1..10000] of longint;
i,q,n,k,t,y:longint;

BEGIN
randomize;
clrscr;
readln(n,k);
for i:=1 to n do a[i]:=random(2*k)-k;
for i:=1 to n do write(a[i],' ');
writeln;
i:=1;
y:=1;
repeat
if a[i]<0 then begin
t:=a[i];
writeln(i,' i');
for q:=i-1 to y do a[q+1]:=a[q];
a[y]:=t;
y:=y+1;
end
else i:=i+1;
until i=n;
for i:=1 to n do write(a[i],' ');
writeln;
readkey;


END.
правильный код
Ответы:
Если какое-то a[i] оказалось >=0, то i больше никогда не увеличится.
Вернее, не совсем так, но почти.


15 лет назад

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

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

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