Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
2 / 2 / 4
Регистрация: 02.12.2013
Сообщений: 151
1

точка остановки

31.05.2016, 04:22. Показов 1625. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
программа может создать таблицу умножения и сохранить ее в файл.но сейчас нужно сделать так чтоб она загружала созданный ею файл и удалила все записи кроме нужной.проблема в том что предикат del удаляет все записи,то есть точка остановки не срабатывает.

я догадываюсь,что надо было просто rectalом пройти,но не получается.помогите пожалуйста.если можно сразу кусок кода отвечающий за удаление всех записей кроме одной например 5 5 25

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
domains
  list= integer*
database
    mult(integer, integer, integer).
predicates
    genTable(integer)
    getMult(integer, integer)
    del()
clauses
    genTable(0).
    genTable(L):-L>0, L1=L-1, genTable(L1), getMult(L, 10).
 
    getMult(_, 0).
    getMult(N, K):-N>0, K1=K-1, getMult(N, K1),M=N*K, assert(mult(N, K, M)).
        
del():-mult(5,5,25).    
del():-
                 retractall(mult(_,_,_)).
 
 
 
goal
  retractall(mult(_,_,_)),consult("mult.txt"),del(),save("multt.txt").
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2016, 04:22
Ответы с готовыми решениями:

Определите, на каких маршрутах можно добраться от остановки X до остановки Y
Я новичок в прологе. Пытаюсь что-то сделать, но ничего не компилится) Скоро сдавать. Задание:...

Точка остановки
Для отладки кода ставлю точку остановки. Но при компиляции (?) программы эта точка зачёркивается и...

Точка остановки по условию
Приветствую всех. Подскажите, возможно ли в C++Builder в режиме отладки сделать точку остановки,...

Не работает точка остановки
Здравствуйте. Проверял свой код построчно и в один прекрасный момент точка остановки стала...

9
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
31.05.2016, 17:18 2
Цитата Сообщение от GROM32RUS Посмотреть сообщение
кусок кода отвечающий за удаление всех записей кроме одной например 5 5 25
А не проще ли удалить все, а потом добавить нужную?
Prolog
1
2
retractall(mult(_, _, _)),
assert(mult(5, 5, 25)).
0
2 / 2 / 4
Регистрация: 02.12.2013
Сообщений: 151
31.05.2016, 19:42  [ТС] 3
нет,надо как то так:
но этот код если добавить сравнение y и х станет выводить бред
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
domains
  list= integer*
database
    mult(integer, integer, integer).
predicates
    genTable(integer)
    getMult(integer, integer)
    del(integer,integer,integer)
clauses
    genTable(0).
    genTable(L):-L>0, L1=L-1, genTable(L1), getMult(L, 10).
 
    getMult(_, 0).
    getMult(N, K):-N>0, K1=K-1, getMult(N, K1),M=N*K, assert(mult(N, K, M)).
            
del(X, Y, Z):-mult(X1,Y1,Z1),Z1<>Z, retract(mult(X1, Y1, Z1)),fail. 
del(X1, Y1,Z1).
goal
  retractall(mult(_,_,_)),consult("mult.txt"),del(_,_,9),save("multt.txt").
0
794 / 598 / 156
Регистрация: 07.10.2013
Сообщений: 1,327
31.05.2016, 20:38 4
Лучший ответ Сообщение было отмечено GROM32RUS как решение

Решение

Цитата Сообщение от GROM32RUS Посмотреть сообщение
del удаляет все записи,то есть точка остановки не срабатывает
она срабатывает, только не так , собственно, словами прочитайте, что делает предикат del (в первом варианте), он не делает того, что сказано в задании... может так
Prolog
1
2
del() :- mult(X,Y,Z), not( (X=5, Y=5, Z=25) ), retract( mult(X,Y,Z) ), fail.
del().
1
2 / 2 / 4
Регистрация: 02.12.2013
Сообщений: 151
31.05.2016, 20:41  [ТС] 5
спасибо))но я уже решил.вот так:
Prolog
1
2
del(X, Y, Z):-mult(X1,Y1,Z1),Z1<>Z,retract(mult(X1, Y1, Z1)),Y<>Y1,X<>X1,fail.
del(_,_,_).
0
794 / 598 / 156
Регистрация: 07.10.2013
Сообщений: 1,327
31.05.2016, 20:52 6
Цитата Сообщение от GROM32RUS Посмотреть сообщение
но я уже решил.вот так
ну да, не успел написать, что второй вариант сработает, только X и Y лишние
Цитата Сообщение от GROM32RUS Посмотреть сообщение
Y<>Y1,X<>X1
а это зачем уже после retract

Добавлено через 1 минуту
проверять так уже или Z или все
0
2 / 2 / 4
Регистрация: 02.12.2013
Сообщений: 151
01.06.2016, 16:13  [ТС] 7
если поставить до программа выведет все значения
да,для того чтоб проверять все значения)ведь только z не даст 100% точности))

я позже попробую ваш вариант.про нот я знаю,но как то опыта использования нет

Добавлено через 18 часов 53 минуты
а ваш код ,кстати,не работает
0
794 / 598 / 156
Регистрация: 07.10.2013
Сообщений: 1,327
01.06.2016, 17:58 8
Цитата Сообщение от GROM32RUS Посмотреть сообщение
а ваш код ,кстати,не работает
В Прологе работает, у вас трудно сказать
Миниатюры
точка остановки  
1
2 / 2 / 4
Регистрация: 02.12.2013
Сообщений: 151
03.06.2016, 06:56  [ТС] 9
у меня на локальном турбо прологе 2.0 не работает)
0
794 / 598 / 156
Регистрация: 07.10.2013
Сообщений: 1,327
03.06.2016, 17:58 10
Цитата Сообщение от GROM32RUS Посмотреть сообщение
на локальном турбо прологе 2.0 не работает)
скриншот приведите, может Black Fregat поможет...
0
03.06.2016, 17:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2016, 17:58
Помогаю со студенческими работами здесь

Не срабатывает точка остановки в Дельфи 2007
При нажатии на F7 открывается окно CPU. Подскажите в чем может быть проблема? Добавлено через 2...

Моделирование остановки
Суть задачи такова: на остановку приезжает автобус, из которого выходят/садятся пассажиры. Проблема...

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

Дана точка М (x, y). Присвоить z = 1, если точка внутри эллипса и z = 0, если точка вне эллипса
задачу паскаль абс Данная точка М (x, y). Присвоить z = 1, если точка внутри эллипса (смотрите...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru