Написать процедуру, осуществляющую ввод с клавиатуры текста, состоящего из неповторяющихся латинских букв - PascalABC.NET
Формулировка задачи:
Добрый день! Проверьте пожалуйста решение задачи.
Задание.
Обязательным условием является использование множеств в решении задачи. Написать процедуру, осуществляющую ввод с клавиатуры текста, состоящего из неповторяющихся латинских букв. Программа работает, а как сделать решение с использованием множеств?
Решение задачи: «Написать процедуру, осуществляющую ввод с клавиатуры текста, состоящего из неповторяющихся латинских букв»
textual
Листинг программы
uses crt; var st: string; Str: Set of Char; k: Char; begin Str:=[]; repeat k:=ReadKey;//обрабатываем нажатую клавишу if not (k in Str) then begin st:=st+k; Str:=Str+[k]; Write(k); end; if k=#13 then writeln(st); until k=#13;//вводим до конца строки end.
Объяснение кода листинга программы
- Используется модуль CRT для работы с консолью.
- Объявлена переменная st типа string для хранения вводимого текста.
- Объявлена переменная Str типа Set of Char для хранения набора символов, которые были введены.
- Объявлена переменная k типа Char для хранения текущего вводимого символа.
- Str инициализируется пустым набором символов.
- В цикле repeat-until происходит считывание каждого символа с клавиатуры с помощью функции ReadKey.
- Если символ не содержится в наборе Str, то он добавляется в конец строки st и в конец набора Str.
- Введенный символ выводится на экран с помощью функции Write.
- Если символ равен #13 (перевод строки), то на экран выводится текущая строка st.
- Цикл продолжается до тех пор, пока не будет введен символ #13.