Удалить из массива элементы, встречающиеся ровно два раза - Pascal

Узнай цену своей работы

Формулировка задачи:

Дан целочисленный массив размера N. Удалить из массива все элементы, встречающиеся ровно два раза, и вывести размер полученного массива и его содержимое.решение с процедурами

Решение задачи: «Удалить из массива элементы, встречающиеся ровно два раза»

textual
Листинг программы
program pr;
const max=100;
type
arr=array[1..max] of integer;
var a:arr;
n,i,j,k,g,q:integer;
x:integer;
procedure fill(var v:arr); // процедура заполнения массива
var
i:integer;
begin
for i:=1 to n do
begin
a[i]:=random(10)+1;     // рандомно заполняем массив (диапазон какой надо ставь)
end;
writeln('Исходный массив:');
for i:=1 to n do
write(a[i]:3);
writeln;
writeln;
end;
procedure delete( var v:arr);       // процедура удаления повтор. эл. и вывода массива без них 
var
i,j,k,g,q:integer;
begin
i:=1;
while i<=n do
begin
k:=0;
for j:=i+1 to n do
if a[j]=a[i] then k:=k+1;
if k=1 then
begin
g:=i;
x:=a[i];
while g<=n do
if a[g]=x then
begin
for q:=g to n-1 do
a[q]:=a[q+1];
n:=n-1;
end
else g:=g+1;
end
else i:=i+1;
end;
writeln('Размер массива после сжатия = ' ,n);
writeln('Массив после сжатия:');
for i:=1 to n do
write(a[i]:3);
end;
begin
write('Размер массива n= ');
readln(n);
fill(a);
delete(a);
end.

Объяснение кода листинга программы

  1. Создается программа на языке Pascal с именем pr.
  2. В программе объявляются следующие переменные: max, которая представляет максимальное значение для элементов массива, и arr, которая представляет сам массив.
  3. Также объявляются переменные n, i, j, k, g и q, которые будут использоваться в процедуре удаления повторяющихся элементов.
  4. Создается процедура fill, которая заполняет массив случайными числами от 1 до 100.
  5. Затем вызывается процедура fill для заполнения массива.
  6. После этого выводится исходный массив.
  7. Создается процедура delete, которая удаляет повторяющиеся элементы из массива.
  8. В цикле while проверяется каждый элемент массива.
  9. Если текущий элемент равен предыдущему, то увеличивается счетчик k.
  10. Если k равно 1, то текущий элемент и его индекс сохраняются в переменных g и x.
  11. Затем происходит поиск следующего элемента, который равен x.
  12. Если такой элемент найден, то все элементы с индексами от g до n-1 переставляются, чтобы убрать повторяющийся элемент.
  13. После этого уменьшается значение n на 1.
  14. Если элемент не был найден, то увеличивается значение i.
  15. Если i равно n, то цикл while завершается.
  16. Выводится размер массива после удаления повторяющихся элементов.
  17. Выводится массив после удаления повторяющихся элементов.
  18. Запрашивается размер массива для проверки.
  19. Вызывается процедура fill для заполнения массива.
  20. Вызывается процедура delete для удаления повторяющихся элементов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы