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

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

Заполнить массив из 9 элементов случайными числами, далее получить случайное число N
из диапазона от 1 до 9 и затем "удалить" элемент с позиции N
из массива, "сдвинув" значения влево и заполнив все что справа нулями.
Например:

|1|3|4|5|4|7|-8|-9|

Пусть n=2, тогда после работы программы мы должны получить:

|1|4|5|4|7|-8|-9|0|

Примечание: операции сдвига элементов массива оформите в виде подпрограммы.

type
  myArr1 = array[1..9] of integer;
var
  a: myArr1;
  min, max, i, n : integer;
procedure sdvig(var a : myArr1; n : integer);
var i : integer;
begin
  writeln('До операции a[n] = ', a[n]);
  for i := n to high(a) do
  begin
    a[n] := a[n+1];
    n += 1;
  end;

end;

begin
  randomize();
  min := 1;
  max := 9;
  for i:=low(a) to high(a) do
    a[i] := min + random(max - min + 1);
  n := min + random(max - min + 1);
  writeln('n = ', n);
  write('Числа массива a до операции: ');
  for i := low(a) to high(a) do
    write(a[i], ' ');
  writeln;
  sdvig(a, n);
  write('Числа массива a после операции: ');
  for i := low(a) to high(a) do
    write(a[i], ' ');
  readln();readln();
end.   
vedro-compota's picture

здесь разве есть заполнение нулями?
Процедуру надо доработать, по факту тут происходит выход за пределы массива

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

type
  myArr1 = array[1..9] of integer;
var
  a: myArr1;
  min, max, i, n : integer;
procedure sdvig(var a : myArr1; n : integer);
var i : integer;
begin
  writeln('До операции a[n] = ', a[n]);
  for i := n to (high(a) - 1) do
  begin
    a[n] := a[n+1];
    n += 1;
  end;
  a[high(a)] := 0;
end;

begin
  randomize();
  min := 1;
  max := 9;
  for i:=low(a) to high(a) do
    a[i] := min + random(max - min + 1);
  n := min + random(max - min + 1);
  writeln('n = ', n);
  write('Числа массива a до операции: ');
  for i := low(a) to high(a) do
    write(a[i], ' ');
  writeln;
  sdvig(a, n);
  write('Числа массива a после операции: ');
  for i := low(a) to high(a) do
    write(a[i], ' ');
  readln();readln();
end.
vedro-compota's picture

засчитано

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