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