Задача 10 Урок 15

Задача 10 Урок 15 :

Заполните массив из 5 элементов случайными числами из любого диапазона.
Далее пользователь вводит в цикле значения от 1 до 5 -- удаляйте из массива очередной элемент с позиции очередного введенного пользователем числа, сдвигая оставшиеся элементы массива влево, заполняя то, что справа нулями. Распечатывайте промежуточной состояние массива, после каждого удаления.
Цикл должен работать до тех пор, пока в массиве не останется ненулевых элементов или пока пользователь не введет число большее чем 5 или меньшее чем 1.

type myArr  = array[1..5] of integer;

procedure writeArr(arr: myArr; msg:string);
var i:integer;
begin
  writeln(msg);
  for i:=low(arr) to high(arr) do
    write(arr[i], ' ');
  writeln();
end;
var   a,b: myArr;
   i,n: integer;
   r:integer;
begin
  randomize;
  for i:=1 to high(a) do
    a[i]:= random(5);
  writeArr(a,'original array: ');
  repeat
    writeln('vvedite chislo');
    readln(r);
    writeln('chislo',' ', r);
    for i:=r to high(a) do
      a[i]:= a[i+1];
    a[high(a)]:=0;
    b:=a;
    writeArr(b,'array modify: ');
  until (r>5) or (r<=-1) or (a[1]=0);
  writeln ('End');
  readln();
end.  

Вывод консоли:

original array:
4 3 3 0 4
vvedite chislo
1
chislo 1
array modify:
3 3 0 4 0
vvedite chislo
2
chislo 2
array modify:
3 0 4 0 0
vvedite chislo
3
chislo 3
array modify:
3 0 0 0 0
vvedite chislo
1
chislo 1
array modify:
0 0 0 0 0
End