Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
mistersquier
0 / 0 / 0
Регистрация: 09.11.2011
Сообщений: 8
#1

Найти букву среди цифр в списке с подсписками и вывести уровень ее вложенности - Prolog

09.11.2011, 20:11. Просмотров 1279. Ответов 8
Метки нет (Все метки)

Помогите, пожалуйста, со следующим заданием:
Написать предикат, который ищет букву среди цифр в списке с подсписками и выводит уровень ее вложенности. [1, [2, 4, [5, z, 7]], 9, 8]
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2011, 20:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти букву среди цифр в списке с подсписками и вывести уровень ее вложенности (Prolog):

Сума чисел в списке с подсписками
Помогите решить задачку: дан список, к примеру: ,1],1,1]. И нужно посчитать...

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

Функция: найти самое большое по модулю число, содержащееся в списке с подсписками
сделать ф-цию, находящую наибольшее по модулю число, содержащееся в списке с...

Функция: найти самое большое по модулю число, содержащееся в списке с подсписками
Написать фун-цию, которая находит самое большое по модулю число, содержащееся в...

В заданном списке фамилий найти фамилии, начинающиеся на букву «к» и оканчивающиеся на букву «а»
В заданном списке фамилий найти фамилии, начинающиеся на букву «к» и...

В списке найти сумму чисел стоящих на чётных местах и только в подсписках в нечётных степенях вложенности
В списке чисел найти сумму чисел стоящих на чётных местах и только в подсписках...

8
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
09.11.2011, 21:51 #2
Prolog
1
2
3
p([H|Tail],N):-is_list(H),!,(p(H,N1),!,N is N1+1;p(Tail,N)).
p([H|_],1):-not(number(H)),!.
p([_|Tail],N):-p(Tail,N).
?- p([1,[2,4,[5,z,7]],9,8],N).
N = 3.
0
mistersquier
0 / 0 / 0
Регистрация: 09.11.2011
Сообщений: 8
09.11.2011, 23:46  [ТС] #3
Спасибо за помощь, но когда я ввожу строку p([1,[2,4,[5,z,7]],9,8],N)., то выводит N=1, а не N=3.
0
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
10.11.2011, 01:31 #4
Какой у Вас диалект пролога? Там наверно нет предикатов is_list и number.
0
mistersquier
0 / 0 / 0
Регистрация: 09.11.2011
Сообщений: 8
10.11.2011, 02:05  [ТС] #5
У меня JIProlog. Поискал в нете, диалект скорей всего Edinburgh Prolog.
0
Витенька
1 / 1 / 0
Регистрация: 01.11.2011
Сообщений: 15
10.11.2011, 02:08 #6
Предикат number есть. А вот is_list наверное нету. Можно убрать предикат is_list и тогда будет корректно работать.
1
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
10.11.2011, 02:10 #7
Да, он действительно не обязателен.
1
mistersquier
0 / 0 / 0
Регистрация: 09.11.2011
Сообщений: 8
10.11.2011, 02:24  [ТС] #8
Теперь работает. Огромное спасибо.
0
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
10.11.2011, 02:30 #9
Тогда можно еще упростить
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
10.11.2011, 02:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2011, 02:30
Привет! Вот еще темы с решениями:

Ограничение на уровень вложенности
Доброго времени суток. Столкнулся с проблемой при автоматической генерации...

Уменьшить уровень вложенности
Всем доброго вечера. Нужна помощь по Битриксу. Нужно уменьшить уровень...

Изменить уровень вложенности url
Нужна ваша помощь. Тармошил сообщество instantcms, но оно похоже бессильно. В...

Смежное число в списке с подсписками
Добрый день. Интересует способ реализации следующей задачи: есть функция в...


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

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

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