Кто может обьяснить алгоритм подсчета различных букв в слове? - Pascal ABC
Формулировка задачи:
Обьясните пожалуйста алгоритм:
{ Составить программу подсчета различных букв в слове. }
Листинг программы
- var s:string;
- r:real;
- i,j,n:integer;
- begin
- r:=0;
- readln(s);
- for i:=1 to length(s) do begin
- n:=0;
- for j:=1 to length(s) do begin
- if s[i]=s[j] then inc(n);
- end;
- r:=r+1/n;
- end;
- writeln('количество различных букв = ', r:1:0);
- end.
Решение задачи: «Кто может обьяснить алгоритм подсчета различных букв в слове?»
textual
Листинг программы
- var s:string;
- m:set of char;
- i,n,k:integer;
- begin
- readln(s);
- m:=[];//множемтво символов, пока пустое
- k:=0;//крличество разных символов
- for i:=1 to length(s) do
- if not(s[i] in m) then //если символа нет в множестве
- begin
- inc(k);//считаем +1
- m:=m+[s[i]]; //добавляем в множество
- end;
- writeln('количество различных букв = ',k);
- end.
Объяснение кода листинга программы
- В начале программы объявляются переменные: s - строка, m - множество символов, i, n, k - целые числа.
- Затем происходит чтение строки s с помощью функции readln().
- Множество m инициализируется как пустое.
- Переменная k инициализируется как количество различных символов, которое будет считываться.
- Затем идет цикл for, который выполняется от 1 до длины строки s.
- Внутри цикла проверяется, есть ли текущий символ в множестве m.
- Если символа нет в множестве, то увеличивается значение переменной k на единицу и добавляется символ s[i] в множество m.
- После завершения цикла выводится сообщение с количеством различных символов.
- Программа заканчивается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д