Данным номером
Пример
Вставить число 100 перед пятым элементом массива.
Решение
Эта задача немного отличается от предыдущей: в предыдущей мы сдвигали вправо все элементы, стоящие после k−го, то есть с (k+1)−го, а на его место записывали новый элемент, в этой − сдвигаем все элементы с k−го, а затем на его место записываем новый.
Пусть дан следующий одномерный массив из N (N=10) элементов:
3, -12, 5, 14, 27, -6, 1, 34, 10, -15.
Надо вставить элемент со значением 100 перед пятым элементом массива. Получим следующий массив:
3, -12, 5, 14, 100, 27, -6, 1, 34, 10, -15.
Program Example_106;
Const n=10; dd=51;
Type myarray=Array[1..n+1] Of Integer;
VarA: myarray;
x, k: Integer;
{x - значение нового элемента, k - номер элемента, после которого вставляем}
Procedure Init2(Var m:myarray);
{Процедура заполнения (инициализации)
массива случайными числами}
...
Procedure Print1(n1: Integer; m: myarray);
{Процедура вывода (распечатки) массива}
...
Procedure Insert2(k1, x1: Integer;
Var m: myarray);
Var i: Integer;
Begin{Сдвиг на одну позицию вправо}
For i:=n Downto k1 Do m[i+1]:=m[i];
m[k1]:=x1; {Вставка x1 на место элемента
с номером k1}
End;
Begin
Init2(А);
Print1(n,А); {вывод начального массива}
Writeln('Номер элемента, перед которым
вставлять, ');
Writeln('и значение нового элемента');
Readln(k,x);
Insert2(k, x, A);
Print1(n+1, A); {Вывод массива после
вставки нового элемента}
Readln;
End.