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

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

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

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

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

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

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

var a : array [1..9] of integer;
i,n: integer;
procedure arr(b:integer);
var n1: integer;
begin
for i:= low(a[b]) to high(a) do
begin
  n1:=b+1;
  a[b]:=a[n1];
  b:=b+1;
end;
end;

begin
for i:= low(a) to high(a) do
begin
  a[i]:=random(10);
  write(a[i], ' ');
end;

n:=random(10);
writeln();
write('N = ',n);
arr(n);
writeln();

for i:= low(a) to high(a) do
  write(a[i], ' ');

readln();
end.
vedro-compota's picture

форматирование

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

var a : array [1..9] of integer;
    i,n: integer;
procedure arr(b:integer);
var n1: integer;
begin
  for i:= low(a[b]) to high(a) do
  begin
    n1:=b+1;
    a[b]:=a[n1];
    b:=b+1;
  end;
end;

begin
  for i:= low(a) to high(a) do
  begin
    a[i]:=random(10);
    write(a[i], ' ');
  end;
  n:=random(10);
  writeln();
  write('N = ',n);
  arr(n);
  writeln();
  for i:= low(a) to high(a) do
    write(a[i], ' ');
  readln();
end.
5 5 7 8 6 8 5 8 4
N = 6
5 5 7 8 6 5 8 4 0
vedro-compota's picture

for i:= low(a[b])

-- уточнить какой тут смысл?

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

var a : array [1..9] of integer;
    i,n: integer;
procedure arr(b:integer);
var n1: integer;
begin
  for i:= b to high(a) do
  begin
    n1:=b+1;
    a[b]:=a[n1];
    b:=b+1;
  end;
end;

begin
  for i:= low(a) to high(a) do
  begin
    a[i]:=random(10);
    write(a[i], ' ');
  end;
  n:=random(10);
  writeln();
  write('N = ',n);
  arr(n);
  writeln();
  for i:= low(a) to high(a) do
    write(a[i], ' ');
  readln();
end.
vedro-compota's picture

убрать глобальные переменные, перейти на локальные и на те, что передаются на вход

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

type marr = array[1..9] of integer;
var a : marr;
    i,n: integer;

procedure del(b:integer;var a1: marr);
var n1,i1: integer;
begin
  for i1:= b to high(a) do
  begin
    n1:=b+1;
    a1[b]:=a1[n1];
    b:=b+1;
  end;
end;

begin
  for i:= low(a) to high(a) do
  begin
    a[i]:=random(10);
    write(a[i], ' ');
  end;
  n:=random(10);
  writeln();
  write('N = ',n);
  del(n,a);
  writeln();

  for i:= low(a) to high(a) do
    write(a[i], ' ');
  readln();
end.