ВУЗ:
Составители:
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- индекс максимального элемента.
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »