Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Nataren
2 / 2 / 1
Регистрация: 31.10.2013
Сообщений: 15
1

Поиск буквы среди цифр и вывод суммы цифр после буквы

04.11.2013, 01:09. Просмотров 818. Ответов 4
Метки нет (Все метки)

Есть такое задание: написать предикат, который ищет букву в списке с подсписками(!) и выводит сумму цифр, которые расположены после буквы.

Помогите, или объясните хотя б, а то я в прологе не очень.
У меня получилось просто найти сумму цифр. А вот как работать с вложенными списками и как найти там букву для меня загадка =((
Prolog
1
2
summa([],0).
summa([H|T],Res):-summa(T,Res1), Res is Res1+H.

Вот тут нашла у вас на форуме поиск буквы и вывод уровня ее вложености, но при попытке откомпилировать мой пролог завис о_о
Prolog
1
2
3
p([H|Tail],N):-p(H,N1),!,N is N1+1.
p([H|_],1):-not(number(H)),!.
p([_|Tail],N):-p(Tail,N).
Добавлено через 8 минут
вот так не зависает.
Prolog
1
2
3
p([H|Tail],N):-p(H,N1),N is N1+1.
p([H|_],1):-not(number(H)).
p([_|Tail],N):-p(Tail,N).

Помогите мне теперь это в кучу собрать, пожалуйста))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2013, 01:09
Ответы с готовыми решениями:

Вычеркнуть из слова все буквы, стоящие на четных местах после буквы "о"
Помогите, пожалуйста, добрые люди, разобраться в задачах:cry: составьте...

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

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

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

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

4
Грымзик
2478 / 1454 / 35
Регистрация: 14.09.2009
Сообщений: 2,742
05.11.2013, 21:49 2
Prolog
1
2
3
p([X,B|Tail],X,Ans):-!,p(Tail,X,AnsTail),Ans is AnsTail+B.
p(A,_,0):-atomic(A),!.
p([H|Tail],X,Ans):-p(H,X,AnsH),p(Tail,X,AnsTail),Ans is AnsH+AnsTail.
1
Nataren
2 / 2 / 1
Регистрация: 31.10.2013
Сообщений: 15
07.11.2013, 17:27  [ТС] 3
Ого, благодарствую)
Что б я без вас делала) Здесь еще и букву задавать можно)
А эта строчка это точка остановки программы?
Prolog
1
p(A,_,0):-atomic(A),!.
Получается если программа встречает букву, то расщеты прекращаются?

Добавлено через 16 часов 52 минуты
хм, а можете мне обьяснить немного логику и показать каким запросом запускать надо?
я так поняла что с вложеными списками она не работает.. у меня выдает ошибку =(

Запускала я так: p([1,1,1,1,w,1,1,k,1,1],L,X).
0
Грымзик
2478 / 1454 / 35
Регистрация: 14.09.2009
Сообщений: 2,742
08.11.2013, 22:57 4
Prolog
1
2
?- p([a,1,[b,2,3,a,4,[a,5,c]]],a,S).
S = 10.
Цитата Сообщение от Nataren Посмотреть сообщение
А эта строчка это точка остановки программы?
Да. Не если встречает букву, а если остался только атомарный объект (буква, число, пустой список).
Логика
1)если голова является искомой буквой, то считаем хвост и прибавляем к результату число за этой буквой.
2)если объект атомарен, то без разницы чему он равен, в любом случае ответ 0.
3)сюда попадаем только если голова - тоже список, значит надо рекурсивно и голову и хвост считать.
1
Nataren
2 / 2 / 1
Регистрация: 31.10.2013
Сообщений: 15
10.11.2013, 18:36  [ТС] 5
Спасибо большое)
Я обычно на java пишу, а сейчас пролог вот учим и очень сложно понимается логика его работы =(
она как бы приблизительно понимается, но начинаешь копать глубже и снова запутываешься.
Спасибо вам за помощь еще раз)
0
10.11.2013, 18:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 18:36

Ошибка в нахожденнии суммы квадратов цифр натурального числа.
Найти сумму квадратов всех цифр натурального числа. goal...

Поиск самой популярной буквы в заданной строке [SWI]
Подскажите пожалуйста решение этой задачи, буду очень признателен. Желательно...

Слова которые состоят только из цифр преобразуются в сумму цифр этих слов и если слово содержит буквы и цифры то буквы в них заменяются на «*».
Вводится предложение в этом предложении слова которые состоят только из цифр...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru