С Новым годом! Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
wn
1

Подсчитать, сколько раз встречается некоторая буква в строке

06.01.2012, 15:34. Показов 5320. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подсчитать, сколько раз встречается некоторая буква в строке. Строка и буква должны вводиться с клавиатуры. Для разделения строки на символы использовать стандартный предикат frontchar (String, Char, StringRest), позволяющий разделять строку String на первый символ Char и остаток строки StringRest.

P.S.: программу написал с хвостовой рекурсией, все работает. Но вот теперь нужно сделать чтобы рекурсия была не хвостовая Не знаю как это сделать, help me please
Prolog
1
2
3
4
5
6
7
8
9
10
PREDICATES
count(string, char, integer)
CLAUSES
count(Str, Ch, Counter):-Str <> "", frontchar(Str, H, T), H = Ch, NewCounter = Counter + 1, count(T, Ch, NewCounter).
count(Str, Ch, Counter):-Str <> "", frontchar(Str, H, T), H <> Ch, count(T, Ch, Counter).
count(_, Ch, Counter):-write("Symbol: ", Ch, " - ", Counter).
GOAL
write("Input string $ "), readln(Str),
write("Input char $ "), readchar(Ch),
Amount = 0, count(Str, Ch, Amount).
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2012, 15:34
Ответы с готовыми решениями:

Сколько раз встречается буква в строке
Ребята, помогите пожалуйста с задачей. Подсчитать, сколько раз встречается некоторая буква в...

Подсчитать сколько раз в строке встречается некоторая буква, введенная с клавиатуры
1. Написать программу которая преобразует строку таким образом, что цифры, которые находятся в...

Подсчитать, сколько раз в данной строке встречается некоторая буква, вводимая с клавиатуры
Подсчитать,сколько раз в данной строке встречается некоторая буква,вводимая с клавиатуры.

Подсчитать сколько раз в данной строке встречается некоторая буква, введенная с клавиатуры
Подсчитать сколько раз в данной строке встречается некоторая буква, введенная с клавиатуры.

5
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
06.01.2012, 17:03 2
Prolog
1
2
3
4
5
6
7
8
9
10
PREDICATES
count(string, char, integer)
CLAUSES
count(Str, Ch, Counter):-Str <> "", frontchar(Str, H, T), H = Ch, count(T, Ch, NewCounter),Counter = NewCounter + 1.
count(Str, Ch, Counter):-Str <> "", frontchar(Str, H, T), H <> Ch, count(T, Ch, Counter).
count(_, _, 0).
GOAL
write("Input string $ "), readln(Str),
write("Input char $ "), readchar(Ch),
count(Str, Ch, Amount),write(Amount).
1
wn
06.01.2012, 18:35 3
Thank you
71 / 75 / 3
Регистрация: 03.11.2011
Сообщений: 136
06.01.2012, 18:53 4
Prolog
1
2
3
4
5
6
PREDICATES
count(string, char, integer)
CLAUSES
count(Str, Ch, Counter):-Str <> "", frontchar(Str, H, T), H = Ch, count(T, Ch, NewCounter),Counter = NewCounter + 1.
count(Str, Ch, Counter):-Str <> "", frontchar(Str, H, T), H <> Ch, count(T, Ch, Counter).
count(_, _, 0).
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Goal: count("fignya kakayato",'a',Out)
Out=4
Out=4
Out=4
Out=3
Out=3
Out=2
Out=2
Out=1
Out=1
Out=1
Out=0
Out=0
Out=0
Out=0
Out=0
Out=0
16 Solutions
ой-ёй-ёй...
0
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
06.01.2012, 20:48 5

Prolog
1
2
count(Str, Ch, Counter):-Str <> "", frontchar(Str, H, T), H = Ch,!, count(T, Ch, NewCounter),Counter = NewCounter + 1.
count(Str, Ch, Counter):-Str <> "",!, frontchar(Str, H, T), H <> Ch, count(T, Ch, Counter).
1
71 / 75 / 3
Регистрация: 03.11.2011
Сообщений: 136
06.01.2012, 22:40 6
Ага)))
Трудно в начале Января)))

Вы всё больше со SWI, кажется. Там строки "другие".

Prolog
1
2
3
count(Str,Ch,Counter):- frontchar(Str,Ch,T), !, count(T,Ch,NewCounter), Counter=NewCounter+1.
count(Str,Ch,Counter):- frontchar(Str,_,T), !, count(T,Ch,Counter).
count(_,_,0).

А у меня лично паранойя избавляться от лишних фронтчаров(в Трубе это не "голова", в Трубе это экшн)...
Prolog
1
2
3
4
count(A,B,C):- frontchar(A,D,E), !, count(E,B,F), d(B,D,G), C=F+G.
count(_,_,0).
 
d(A,A,1):- !.   d(_,_,0).
0
06.01.2012, 22:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2012, 22:40
Помогаю со студенческими работами здесь

Подсчитать, сколько раз буква встречается в строке
задание на использование функций для работы со строковыми переменными: Подсчитать количество...

Пользователем задана строка. Подсчитать сколько раз встречается буква «а» и буква «с», если чаще встречается буква «а», значит вывести на экран выраж
Пользователем задана строка. Подсчитать сколько раз встречается буква «а» и буква «с», если чаще...

Подсчитать сколько раз в строке встречается заданная буква
Нашел код тут на форуме скоммпилировал в tasm выводит не понятно, что, а долно выводить количество...

Подсчитать, сколько раз в строке встречается введенная буква
Нужно приложение с формой, где подсчитывается сколько раз в строке встречается введенная буква, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru