Определить, сколько разных букв встречается в тексте - Pascal ABC
Формулировка задачи:
Пожалуйста помогите решить задачу с помощью рекурсивной функции: Слова в тексте разделены пробелами. Сколько разных букв встречается в тексте?
Решение задачи: «Определить, сколько разных букв встречается в тексте»
textual
Листинг программы
type mnz=set of char; procedure raz_bukv(s:string;i:byte;var m:mnz;var k:byte); begin if not(s[i] in m)and(s[i]<>' ') then begin inc(k); m:=m+[s[i]]; end; if i<length(s) then raz_bukv(s,i+1,m,k); end; var a:mnz; s:string; k:byte; begin writeln('Введите строку из слов, разделенных пробелами'); readln(s); raz_bukv(s,1,a,k); write('В тексте ',k,' различных букв') end.
Объяснение кода листинга программы
- Создается тип данных mnz, который представляет собой множество символов (set of char).
- Создается процедура raz_bukv, которая принимает на вход строку s, байт i, переменную m типа mnz и переменную k типа byte.
- В начале процедуры проверяется, что символ s[i] отсутствует в множестве m и является разным от пробела.
- Если условие выполняется, то увеличивается значение переменной k на единицу.
- Затем добавляется символ s[i] в множество m.
- Если i меньше длины строки s, то вызывается рекурсивно процедура raz_bukv для символов s[i+1], s[i+2], ..., s[length(s)].
- В конце процедуры выводится сообщение о количестве различных букв в тексте.
- Создается переменная a типа mnz, строка s типа string и переменная k типа byte.
- Выводится сообщение «Введите строку из слов, разделенных пробелами».
- Читается строка s с помощью функции readln.
- Вызывается процедура raz_bukv для строки s, начиная с первого символа, с переменными a, k.
- Выводится сообщение «В тексте k различных букв».
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д