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

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

  1. Создается тип данных mnz, который представляет собой множество символов (set of char).
  2. Создается процедура raz_bukv, которая принимает на вход строку s, байт i, переменную m типа mnz и переменную k типа byte.
  3. В начале процедуры проверяется, что символ s[i] отсутствует в множестве m и является разным от пробела.
  4. Если условие выполняется, то увеличивается значение переменной k на единицу.
  5. Затем добавляется символ s[i] в множество m.
  6. Если i меньше длины строки s, то вызывается рекурсивно процедура raz_bukv для символов s[i+1], s[i+2], ..., s[length(s)].
  7. В конце процедуры выводится сообщение о количестве различных букв в тексте.
  8. Создается переменная a типа mnz, строка s типа string и переменная k типа byte.
  9. Выводится сообщение «Введите строку из слов, разделенных пробелами».
  10. Читается строка s с помощью функции readln.
  11. Вызывается процедура raz_bukv для строки s, начиная с первого символа, с переменными a, k.
  12. Выводится сообщение «В тексте k различных букв».

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


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

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

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