ВУЗ:
Составители:
21
Задача 11. Удалить из массива все вхождения заданного значения.
Постановка задачи.
Входные данные
: n − количество элементов массива (n ∈ N),
a[1..n] ∈ Z (множеству целых чисел);
x− заданное значение, которое требуется удалить.
Выходные данные
: k- количество элементов в измененном массиве
a[1..k].
Промежуточные данные:
i– индекс для просмотра элементов массива.
Метод решения.
Идея метода удаления заключается в следующем: если очередной эле-
мент массива
a[i]≠x, то он записывается в массив по индексу k:
a[k]:=a[i].Здесь индекс k является счетчиком элементов в выходном
массиве.
Описание алгоритма.
k:=0;
for i:=1 to n do
if a[i]<>x then
begin
k:=k+1; a[k]:=a[i]
end;
Опишем алгоритм в виде процедуры Delete, считая, что удаление
происходит из массива
a[m..n] (1≤m<n).
const n_max=20;
type Tip= integer;
vect=array[1..n_max] of Tip;
Procedure Delete(m,n:integer; var a:vect;
x:Tip;var k:integer);
var i:integer;
begin
k:=m-1;
for i:=m to n do
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »