Удалить в каждом слове повторяющиеся символы (проверьте правильность) - Turbo Pascal

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

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

Вот предложение: "Дана строка. Группы символов, разделенные пробелами и не содержащие пробелы внутри себя, будем называть словами." Написать программу, удаляющую в каждом слове повторяющиеся символы.

Решение задачи: «Удалить в каждом слове повторяющиеся символы (проверьте правильность)»

textual
Листинг программы
var s: string;
    i: integer;
    m: set of char;
begin
  writeln('Введите строку:');
  readln(s);
  m := [];
  i := 1;
  while i <= length(s) do
    if s[i] in m
      then delete(s, i, 1)
      else begin
        if s[i] = ' '
          then m := []
          else include(m, s[i]);
        inc(i)
      end;
  writeln('Результат:');
  writeln(s);
  readln
end.

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

  1. Вводится строка с помощью функции readln.
  2. Создается пустое множество символов m.
  3. Инициализируется переменная i, которая будет использоваться как счетчик символов.
  4. Запускается цикл while, который будет выполняться до тех пор, пока i меньше или равно длине входной строки s.
  5. Внутри цикла проверяется, есть ли текущий символ s[i] в множестве m.
  6. Если символ присутствует в m, то он удаляется из строки s с помощью функции delete.
  7. Если символ отсутствует в m, то он добавляется в m.
  8. После завершения цикла while выводится результат на экран с помощью функции writeln.
  9. Завершается программа вызовом функции readln для чтения следующего ввода.

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

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