Напечатать первые вхождения букв в текст, сохраняя их взаимный порядок - 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 с помощью оператора
+=
, который добавляет элемент в множество и возвращает новое множество. - Цикл завершается, когда все буквы из строки будут проверены.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д