Удаление из строки одинаковых символов. - Pascal

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

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

С помощью какого алгоритма можно допустим из строки: asaa sas dd ertt. Получить строку: asdert ?

Решение задачи: «Удаление из строки одинаковых символов.»

textual
Листинг программы
uses crt;
var s:string;
    i,j:byte;
    c:char;
begin
clrscr;
write('Stroka: ');
readln(s);
i:=1;
while i<=length(s) do
 begin
  c:=s[i];
  for j:=length(s) downto i+1 do
  if s[j]=c then delete(s,j,1);
  i:=i+1;
 end;
write(s);
readln
end.

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

  1. В начале кода используется директива uses, которая подключает стандартную библиотеку Pascal.
  2. Переменная s объявлена как строка (string).
  3. Переменные i и j объявлены как байты (byte).
  4. Переменная c объявлена как символ (char).
  5. Строка clrscr; очищает экран.
  6. Функция readln(s) считывает ввод пользователя и сохраняет его в переменной s.
  7. Переменная i инициализируется значением 1.
  8. Запускается цикл while i<=length(s) который выполняется до тех пор, пока значение переменной i меньше или равно длине строки s.
  9. Внутри цикла считывается символ из строки s и сохраняется в переменной c.
  10. Запускается вложенный цикл for j:=length(s) downto i+1 do, который начинается с индекса j равного длине строки s и продолжается до индекса i увеличенного на 1.
  11. Внутри вложенного цикла сравниваются символы в строке s с символом c. Если они совпадают, то вызывается функция delete(s,j,1), которая удаляет символ c из строки s в позиции j.
  12. После завершения вложенного цикла значение переменной i увеличивается на 1.
  13. После завершения внешнего цикла значение переменной s выводится на экран с помощью функции write(s).
  14. Вызывается функция readln(), чтобы пользователь мог ввести следующую команду.

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

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