Напечатать первые вхождения букв в текст, сохраняя их взаимный порядок - 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.

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

  1. Объявлены переменные: s (строка), m (множество), i (булевый тип).
  2. Выводится запрос на ввод строки.
  3. Считывается строка и сохраняется в переменной s.
  4. Множество m инициализируется пустым значением.
  5. Выводится сообщение Первые вхождения букв.
  6. Запускается цикл от 1 до длины строки (длину строки определяет функция length(s)).
  7. В каждой итерации цикла проверяется, есть ли текущая буква из строки в множестве m с помощью оператора in.
  8. Если текущая буква не найдена в множестве m, то она выводится на экран с помощью функции write(s[i]).
  9. После вывода буквы, она добавляется в множество m с помощью оператора +=, который добавляет элемент в множество и возвращает новое множество.
  10. Цикл завершается, когда все буквы из строки будут проверены.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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