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

Заполните массив из 5 элементов случайными числами из любого диапазона.

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

Цикл должен работать до тех пор, пока в массиве не останется ненулевых элементов или пока пользователь не введет число большее чем 5 или меньшее чем 1.

Например:

|1|3|7|5|4| // исходный массив
3 // ввод пользователя
|1|3|5|4|0| // промежуточный результат
3 // ввод пользователя
|1|3|4|0|0| // промежуточный результат
2 // ввод пользователя
|1|4|0|0|0| // промежуточный результат
1 // ввод пользователя
|4|0|0|0|0| // промежуточный результат
1 // ввод пользователя
|0|0|0|0|0| // промежуточный результат
// Cообщение о завершении, т.к. все элементы удалены
-- в данном случае программа завершилась, так как удалены все элементы.
Если бы пользователь ввел число 10 или -5 - то это тоже была бы ситуация для завершения, но элементы в массиве ещё бы остались.

Примечание: оформить код сдвига элемента как функцию.

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

function sdvig(a:array of integer; m:integer):MyArray;
var k:integer;
begin
  for k:=m to 4 do
    a[m]:=a[k+1];
  a[5]:=0;
  result:=a;

end;

function schet(a:array of integer):integer;
var j,l:integer;
begin
  l:=0;
  for j:=1 to 5 do
    if (a[j]<>0) then
      l:=l+1;
  result:=l;
end;

begin
  randomize();
  for i:=1 to 5 do
    begin
      a[i]:=random(25);
      write (a[i],' ');
    end;
  writeln();
  repeat
    writeln('Vvedite nomer elementa: ');
    readln(b);
    if(b=10)or(b=-5) then
      break
    else
      begin
        a:=sdvig(a,b);
        for i:=1 to 5 do
          write(a[i],' ');
         writeln();
         l:=schet(a);
       end;
  until(l=0);

end.   

Консоль:

6 4 5 20 15 
Vvedite nomer elementa: 
2
Vvedite nomer elementa: 
5
6 4 0 20 15 
Vvedite nomer elementa: 
1
6 0 0 20 15 
Vvedite nomer elementa: 
vedro-compota's picture

засчитано

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