Структура данных - массив. Часть 1 - 23 стр.

UptoLike

23
Для того, чтобы добиться эффективности, необходимо вместо вызова
процедуры
Delete(i+1,n,a,a[i],k);
подставить ее тело, заменяя в нем формальные параметры на фактические.
Опишем полученный алгоритм в виде процедуры, назовем ее
Pack (сжа-
тие).
const n_max=20;
type Tip= integer;
vect=array[1..n_max] of Tip;
Procedure Pack(var n:integer; var a:vect);
var i,j,k:integer;
x:Tip;
begin
i:=1;
while (i< n) do
begin { Delete(i+1,n,a,a[i],k);}
k:=i; x:=a[i];
for j:=i+1 to n do
if a[j]<>x then
begin
k:=k+1; a[k]:=a[j]
end;
n:=k;
i:=i+1
end;
end;
3.4. Обработка элементов массива
Остановимся на некоторых, часто использующихся задачах.
Задача 13. Найти максимальный элемент в массиве.
Постановка задачи.
Входные данные
: n количество элементов массива,
a[1..n] Z (множеству целых чисел).
Выходные данные
: k- индекс максимального элемента.