Удалить из массива повторное вхождение букв - PascalABC.NET

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

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

Удалить из массива повторное вхождение символов Вот что у меня получилось...

Решение задачи: «Удалить из массива повторное вхождение букв»

textual
Листинг программы
var a:packed array [1..110] of char;
    i,j,k,t:integer;
begin
k:=10;
for i:=1 to k do
readln(a[i]);
writeln('Исходный массив');
for i:=1 to k do
write(a[i]);
writeln;
i:=1;
while i<k do
 begin
  j:=i+1;
  while j<=k do
  if a[j]=a[i] then 
   begin
    k:=k-1;
    if j<k then
    for t:=j to k-1 do
    a[t]:=a[t+1];
   end
  else j:=j+1;
  i:=i+1;
 end;
writeln('Массив без повторов'); 
for j:=1 to k do
write(a[j]);
end.

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

В этом коде представлен алгоритм удаления повторяющихся элементов из массива в языке программирования PascalABC.Net.

  1. Переменные:
    • a - массив символов, в котором удаляются дубликаты.
    • i, j, k, t - целочисленные переменные, используемые в циклах.
  2. Цикл и чтение данных:
    • Строка k:=10; устанавливает размер массива в 10 элементов.
    • Цикл for i:=1 to k do readln(a[i]); считывает 10 символов из массива.
    • Вывод исходного массива с помощью цикла for i:=1 to k do write(a[i]);.
  3. Удаление дубликатов:
    • Цикл i:=1; инициализирует переменную для обхода массива.
    • Внутренний цикл while i<k do начинается, когда значение i меньше текущего размера массива.
    • Внутренний цикл while j<=k do проверяет каждый элемент массива, начиная с j=i+1, чтобы избежать удаления самого себя.
    • Если элементы a[j] и a[i] совпадают, то выполняется следующий код:
    • Строка k:=k-1; уменьшает размер массива на 1.
    • Если j<k, то используется цикл for t:=j to k-1 do a[t]:=a[t+1];, чтобы сдвинуть все элементы справа от j на одну позицию вправо.
    • Если элементы не совпадают, то j:=j+1; переходит к следующему элементу для проверки.
    • После выхода из внутреннего цикла while j<=k do, значение i увеличивается на 1.
  4. Вывод отработанного массива:
    • Вывод отработанного массива с помощью цикла for j:=1 to k do write(a[j]);. В итоге, данный код считывает 10 символов, удаляет повторяющиеся элементы и выводит окончательный массив.

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


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

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

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