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

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

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

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

Сума чисел в списке с подсписками
Помогите решить задачку: дан список, к примеру: ,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

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

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

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


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

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

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