Определить, сколько разных букв встречается в тексте - Pascal ABC

Формулировка задачи:

Пожалуйста помогите решить задачу с помощью рекурсивной функции: Слова в тексте разделены пробелами. Сколько разных букв встречается в тексте?
var
  m: set of char;
  s: string;
  i, k: byte;
 
begin
  write('Введите строку: ');
  readln(s);
  m := [' ' ];
  k := 0;
  i := 1;
  while i <= length(s) do
  begin
    if not (s[i] in m) then begin m := m + [s[i] ];k := k + 1 end;
    i := i + 1
  end;
  writeln('разных букв: ', k)
end.

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

14   голосов, оценка 3.571 из 5


СОХРАНИТЬ ССЫЛКУ