Урок 15. Задача 9.

Урок 15. Задача 9.

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

type ar = array[1..5] of integer;
var i, a, b : integer;
    Arr : ar;

function shift(a_1 : integer; var Arr_2 : ar) : ar;
var i : integer;
    fl : boolean;
begin
  fl := true;
  for i := 1 to 5 do
    if fl and (a_1 <> i) then // запись массива до числа-ограничителя
      Arr_2[i] := Arr_2[i]
    else
    begin                     // запись массива после числа-ограничителя
      fl := false;
      Arr_2[i] := Arr_2[i + 1];
    end;
  shift := Arr_2;
end;

begin
  randomize;
  for i := 1 to 5 do
    Arr[i] := random(9) + 1; // инициализация массива


  while b < 5 do
  begin
    writeln('Enter an interger (1 - 5) : ');
    readln(a);
    if (a < 1) or (a > 5) then
      break
    else
      if Arr[a] = 0 then
        continue
      else
      begin
        b := b + 1;
        Arr := shift(a, Arr);
        for i := 1 to 5 do // вывод измененного массива
          write(Arr[i], ' ');
      end;
  end;
  readln();
end.       
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)