четверг, 18 июня 2009 г.

процедура вставки

Напишите процедуру вставки нового элемента в список целых чисел, реализованного на базе массива. В качестве параметров передать указатель на конец списка и номер позиции, на которую вставляется новый элемент.


const
N = 20;

procedure insert(var a: array [1..N] of integer; var last: integer; pos: integer; value: integer);
var
i: integer;
begin
{смещаем относительно pos часть массива на одну позицию}
for i:=last downto pos do begin
a[i+1]:=a[i];
end;
a[pos]:=value; {теперь вставка нашего элемента}
last:=last+1; {изменяем значение индекса последнего элемента в нашем массиве}
end;

var
a: array [1..N] of integer;
i: integer;
last: integer;
begin
{предположим у нас в массиве 10 чисел}
last:=10;

{заполняем массив числами по порядку}
for i:=1 to last do a[i]:=i;

{выведем значения массива для контроля}
for i:=1 to N do write(a[i]:3);
writeln; {перевод строки}

{вставить '44' в массив 'a' на место второго элемента,
где последний элемент с индексом '10'}
insert(a, last, 2, 44);

{выведем значения массива для контроля}
for i:=1 to N do write(a[i]:3);
writeln; {перевод строки}
end.


отформатированные исходники скачать можно тут

1 комментарий: