Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
StayDi
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 13
#1

задачка по прологу

28.05.2014, 15:21. Просмотров 420. Ответов 5
Метки нет (Все метки)

ребят помогите решить задачу
Задание таково: убрать элемент H при этом чтобы программа работала и выполняла те же операции что и с H

Prolog
1
2
3
4
5
6
7
8
9
10
11
domains
int=integer
list=int*
Predicates
count_member(list,int,int,int)
clauses
count_member([],_,M,M):-!.
count_member([H|T],N,K,M):-H=N,K1=K+1,count_member(T,N,K1,M).
count_member([_|T],N,K,M):-count_member(T,N,K,M).
Goal
count_member([1,2,3,4,3,5,3],3,0,L),write(L),nl.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2014, 15:21
Ответы с готовыми решениями:

Задача по прологу
man('Alexandr'). man('Anatole'). man('Nikolay'). man('Efim'). man('Egor'). woman('Inga')....

Задание по Прологу
Добрый день, уважаемые. В прологе ни бум-бум. Нужно написать программу: на входе имеется список,...

Литература по Прологу
Здравствуйте! Посоветуйте, пож-та, книгу по Прологу для начинающего. Желательно,чтоб было коротко и...

Задания по Прологу
В каких случаях выполнено верное представление словочетания «красная линия» в виде Пролог...

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

5
Catstail
Модератор
23575 / 11676 / 2043
Регистрация: 12.02.2012
Сообщений: 19,049
28.05.2014, 15:54 #2
Цитата Сообщение от StayDi Посмотреть сообщение
убрать элемент H при этом чтобы программа работала и выполняла те же операции что и с H
- человеку, который так формулирует свои мысли, трудно будет с Прологом...

Добавлено через 3 минуты
Код работает. Что все-таки нужно?
0
StayDi
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 13
28.05.2014, 16:19  [ТС] #3
немного не корректно изложил суть задания.
нужно создать альтернативу, при которой программа будет работать без сего действия H=N
0
Black Fregat
2447 / 1253 / 339
Регистрация: 31.05.2009
Сообщений: 4,915
29.05.2014, 19:00 #4
Prolog
1
count_member([N|T],N,K,M):-K1=K+1,count_member(T,N,K1,M).
Добавлено через 5 минут
Только там еще отсечение нужно поставить обязательно, а вот в первом правиле совсем не нужно:
Prolog
1
2
3
count_member([],_,M,M).
count_member([N|T],N,K,M):-!,K1=K+1,count_member(T,N,K1,M).
count_member([_|T],N,K,M):-count_member(T,N,K,M).
1
Catstail
Модератор
23575 / 11676 / 2043
Регистрация: 12.02.2012
Сообщений: 19,049
30.05.2014, 11:15 #5
Black Fregat, я понял ТС, что нужно исхитриться решить задачу без использования шаблонов списка [H|T] (как бы ни называлась голова списка).
0
Black Fregat
2447 / 1253 / 339
Регистрация: 31.05.2009
Сообщений: 4,915
30.05.2014, 15:12 #6
Я понял, что нужно исключить именно последующую унификацию. Что достигается унификацией прямо в голове предиката. Это, собственно, и в первом посте прозвучало - H убрать, оставить только X

Милая сердцу преподавателя маленькая оптимизация - работает, но некрасиво, можно сделать лучше

Но я, конечно, могу и ошибаться
1
30.05.2014, 15:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2014, 15:12

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

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

Помогите решить головоломку по Прологу
Помогите решить задачу головоломку по Turbo Prolog. Заранее Спасибо!


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

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

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