Ребят, я уже просила помощи по этой задаче, но до конца её так и не довели. Помогите, пожалуйста! Программа работает не так, как нужно!
Вот условие задачи:
Написать подпрограмму для вставки m элементов в одномерный массив на указанное место
Program Zad_1;
type a=array [1..100] of real;
var l:a;
k, m,n,i: integer;
procedure Vstavka (var l:a; var n:integer; k,m:integer );
var i:integer;
begin
for i:= k+m to n do
l[i+m]:=l[i];
n:=n+m;
end;
begin
writeln('Vvedite razmer massiva');
readln(n);
writeln ('Vvedite poziciu nachala vstavki i kol-vo vstavlaemih elementov');
readln(k,m);
for i:=1 to n do begin
l[i]:=random(40)+10;
writeln(l[i] :4 :1);
end;
Vstavka(l,n,k,m);
writeln('Rezultat vstavki ');
for i:=1 to n do
writeln (l[i]1);
end.
Цикл в процедуре нужно делать обратный (downto), иначе ты затираешь сам массив при передвижении:
for i:=n downto k do l[i+m]:=l[i];
for i:=1 to m do l[k+i-1]:=V
Я не могу дать V несколько значений? То есть будет всегда вставляться одно и то же число?
можешь, конечно
просто внутри цикла каждый раз спрашивай новое V
то есть
for i:=1 to m do
begin
readln(V);
l[k+i-1]:=V;
end
Спасибо. Очень помогли!!!