Написать процедуру, осуществляющую ввод с клавиатуры текста, состоящего из неповторяющихся латинских букв - 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.

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

  1. Используется модуль CRT для работы с консолью.
  2. Объявлена переменная st типа string для хранения вводимого текста.
  3. Объявлена переменная Str типа Set of Char для хранения набора символов, которые были введены.
  4. Объявлена переменная k типа Char для хранения текущего вводимого символа.
  5. Str инициализируется пустым набором символов.
  6. В цикле repeat-until происходит считывание каждого символа с клавиатуры с помощью функции ReadKey.
  7. Если символ не содержится в наборе Str, то он добавляется в конец строки st и в конец набора Str.
  8. Введенный символ выводится на экран с помощью функции Write.
  9. Если символ равен #13 (перевод строки), то на экран выводится текущая строка st.
  10. Цикл продолжается до тех пор, пока не будет введен символ #13.

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

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