Удалить в каждом слове повторяющиеся символы (проверьте правильность) - Turbo Pascal
Формулировка задачи:
Вот предложение: "Дана строка. Группы символов, разделенные пробелами и не содержащие пробелы
внутри себя, будем называть словами."
Написать программу, удаляющую в каждом слове повторяющиеся символы.
Листинг программы
- uses crt;
- var s:string;
- i,j:byte;
- begin
- clrscr;
- writeln('Vvedite predlojenie');
- readln(s);
- i:=1;
- while i<length(s) do
- if s[i]<>' ' then
- begin
- for j:=length(s) downto i+1 do
- if s[j]=s[i] then delete(s,j,1);
- i:=i+1;
- end
- else i:=i+1;
- write(s);
- readln
- end.
Решение задачи: «Удалить в каждом слове повторяющиеся символы (проверьте правильность)»
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.
Объяснение кода листинга программы
- Вводится строка с помощью функции readln.
- Создается пустое множество символов m.
- Инициализируется переменная i, которая будет использоваться как счетчик символов.
- Запускается цикл while, который будет выполняться до тех пор, пока i меньше или равно длине входной строки s.
- Внутри цикла проверяется, есть ли текущий символ s[i] в множестве m.
- Если символ присутствует в m, то он удаляется из строки s с помощью функции delete.
- Если символ отсутствует в m, то он добавляется в m.
- После завершения цикла while выводится результат на экран с помощью функции writeln.
- Завершается программа вызовом функции readln для чтения следующего ввода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д