Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
dg91
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 4
1

Индексирование элементов списка

25.11.2011, 23:17. Просмотров 848. Ответов 5
Метки нет (Все метки)

Здравствуйте! Помогите, пожалуйста, написать программу на Прологе. Я более, чем новичок, в этой теме. Задача такая: проиндексировать элементы списка.

вот все, что я написал.

func([], S, l2).
func([x | l1], N, [x, N | l2]) :-M is N+1, func(l1, M, l2);

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

Добавить заданное число в конец списка и найти количество элементов нового списка
Здравствуйте! помогите пожалуйста найти ошибку.... Задача: добавить заданное число в конец списка...

Подсчет количества элементов вложенных списков из списка и создание нового списка из этих значений
Подсчет количества элементов вложенных списков из списка и создание нового списка из этих значений....

Определить предикат Р(List,Х) который истинен если Х состоит из пар элементов списка List,сумма которых больше половины элементов List
Помогите пожалуйста написать программу,буду очень благодарен,заранее спасибо! Определить предикат...

Комбинации элементов списка
Нашла такой код, но хочу понять, что значит натуральное число в предикате comb(il,i,il) и как все...

Произведение элементов списка
Помогите пожалуйста. Мне нужно определить произведение элементов списка на Prolog. (Например:...

5
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
26.11.2011, 01:11 2
Prolog
1
2
func([], _, []).
func([X | L1], N, [N -X| L2]) :-M is N+1, func(L1, M, L2).
0
dg91
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 4
26.11.2011, 14:50  [ТС] 3
Чуть переделал вот так:
Prolog
1
2
func([], _, []).
func([X | L1], N, [[N, X]| L2]) :-M is N+1, func(L1, M, L2).
Спасибо!=)
0
Gliese 581 c
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 3
20.12.2011, 12:38 4
А можно немного пояснить как эта функция работает? и что нужно дописать, чтобы это заработало в клубничном прологе? =)
0
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
20.12.2011, 20:59 5
Prolog
1
2
3
4
func([], _, []). %если список пуст, то и результат тоже пустой список
func([X | L1], N, [[N, X]| L2]) :-%иначе заменяем первый элемент на [Индекс, Элемент]
M is N+1,%увеличиваем индекс
func(L1, M, L2).%и рекурсивно продолжаем с оставшейся частью списка
Дописать надо запрос, например
?- func([3,2,1],1,Ans),write(Ans).
1
Gliese 581 c
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 3
20.12.2011, 21:35 6
Большое спасибо! =)
0
20.12.2011, 21:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2011, 21:35

Перестановка элементов списка
Подскажите, пожалуйста, (или дайте ссылки на) решения следующих задач со списками: 1) Поменять...

Количество элементов списка
Подсчитать количество элементов списка входящих во второй список, например (,)=3

Сумма элементов списка
Доброго времени суток. Прошу помощи! Помогите написать программу. Не представляю даже как ее...


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

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

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