Напечатать первые вхождения букв в текст, сохраняя их взаимный порядок - Free Pascal (4)
Формулировка задачи:
Дана строка из строчных латинских букв. Напечатать первые вхождения букв в текст, сохраняя их взаимный порядок.
Указание: формируйте множество, в которое очередной элемент добавляется после первой печати.
Примечание: Программы должны быть написаны в рамках структурного программирования. В частности, запрещается использовать операторы перехода и метки.
Решение задачи: «Напечатать первые вхождения букв в текст, сохраняя их взаимный порядок»
textual
Листинг программы
var s:string; m:set of char; //само множество i:byte; begin writeln('Введите строку из строчных латинских букв'); readln(s); //ввод строки m:=[]; //грубо говоря обнуляем множество writeln('Первые вхождения букв'); for i:=1 to length(s) do //повтор цилка от одного до кол-ва букв в строке if not(s[i] in m) then //если буквы нет в множестве то begin write(s[i]); //вывести её m:=m+[s[i]]; //и добавить в множество end; end.
Объяснение кода листинга программы
- Объявлены переменные: s (строка), m (множество), i (булевый тип).
- Выводится запрос на ввод строки.
- Считывается строка и сохраняется в переменной s.
- Множество m инициализируется пустым значением.
- Выводится сообщение
Первые вхождения букв
. - Запускается цикл от 1 до длины строки (длину строки определяет функция length(s)).
- В каждой итерации цикла проверяется, есть ли текущая буква из строки в множестве m с помощью оператора in.
- Если текущая буква не найдена в множестве m, то она выводится на экран с помощью функции write(s[i]).
- После вывода буквы, она добавляется в множество m с помощью оператора
+=
, который добавляет элемент в множество и возвращает новое множество. - Цикл завершается, когда все буквы из строки будут проверены.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д