Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 34
1

База данных "Солнечная система"

21.10.2014, 17:45. Показов 5469. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание.
База данных "Солнечная система"

Составить базу данных, учитывая измерение по некоторым параметрам в разных единицах.
Ответить на вопросы: Какие планеты ближе к Солнцу, чем Земля? Какие планеты дальше от Солнца, чем Земля? На каких планетах солнечные сутки меньше, чем земные? На каких планетах период обращения измеряется в годах?
Вот что сделал
Prolog
1
2
3
4
5
6
7
8
9
pl(merkuriy,39,88,4224).
pl(venera,72,225,2808).
pl(zemlya,100,365,24).
pl(mars,152,687,25).
pl(jupiter,520,4380,10).
pl(saturn,954,10585,11).
pl(uran,1920,30660,24).
pl(neptun,3010,60225,22).
pl(pluton,3950,90155,144).
Там где период обращение годы перевел в сутки, а средние солнечные сутки в часы.
Составил следующие вопросы:
Prolog
1
2
3
4
5
6
7
8
Какие планеты ближе к Солнцу, чем Земля? 
pl(X,Y,_,_),pl(C,W,_,_), pl(zemlya,Z,_,_), Z>Y,W>Y.
Какие планеты дальше от Солнца, чем Земля?
pl(X,Y,_,_),pl(C,W,_,_),pl(D,Q,_,_),pl(E,R,_,_),pl(A,T,_,_),pl(B,U,_,_), pl(zemlya,Z,_,_),Z<Y,W>Y,Q>W,R>Q,T>R,U>T.
На каких планетах солнечные сутки меньше, чем земные?
pl(X,_,_,Y),pl(C,_,_,W),pl(D,_,_,E),pl(zemlya,_,_,Z), Z>Y,Y>W,W>E.
На каких планетах период обращения измеряется в годах?
pl(X,_,Y,_),pl(C,_,W,_),pl(D,_,Q,_),pl(E,_,R,_),pl(A,_,T,_), pl(mars,_,Z,_),Z<Y,W>Y,Q>W,R>Q,T>R.
Такой способ работает и выдает правильные ответы, но преподавателю не понравилось.
Посдкажите пожалуйста как ее можно сделать каким нибудь другим способом?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2014, 17:45
Ответы с готовыми решениями:

Солнечная система
Всем привет. Задача в том чтобы сделать рабочий макет солнечной системы. С расположением планет и...

солнечная система
прикрепляю архив с проэктом, прога рабочая, но нужно сделать, чтобы солнце тоже вращалось

Солнечная система
Добрый день уважаемые форумчане! Для получения зачета дали задание &quot;Модель Солнечной системы&quot;...

Солнечная система
1. Солнечная система Объектное построение астрономической модели солнечной системы. Модель...

6
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
22.10.2014, 13:47 2
Честно говоря, не понял, зачем нужна такая пропасть запросов к базе.
Или Вы пытаетесь уложить все возможные варианты ответов в один набор переменных?
Этого не нужно делать, список ответов будет выдан на откатах:

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
?- pl(zemlya,Z,_,_), pl(X,Y,_,_), Z>Y.
Z = 100,
X = merkuriy,
Y = 39 ;
Z = 100,
X = venera,
Y = 72 ;
false.
 
?- pl(zemlya,Z,_,_), pl(X,Y,_,_), Z<Y.
Z = 100,
X = mars,
Y = 152 ;
Z = 100,
X = jupiter,
Y = 520 ;
Z = 100,
X = saturn,
Y = 954 ;
Z = 100,
X = uran,
Y = 1920 ;
Z = 100,
X = neptun,
Y = 3010 ;
Z = 100,
X = pluton,
Y = 3950.
Добавлено через 3 минуты
Цитата Сообщение от Lastedl Посмотреть сообщение
Там где период обращение годы перевел в сутки, а средние солнечные сутки в часы.
А вот это - спорное решение. Оно, конечно, правильное с точки зрения практического применения.
И оно облегчает ответы на большинство вопросов задания.
Но на последний вопрос Вы при этом корректно не ответите.
1
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 34
22.10.2014, 13:52  [ТС] 3
Цитата Сообщение от Black Fregat Посмотреть сообщение
Но на последний вопрос Вы при этом корректно не ответите.
А как лучше тогда переделать факты, чтобы пролог понимал, что 247 лет больше 365 суток?
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
22.10.2014, 15:32 4
Лучший ответ Сообщение было отмечено Lastedl как решение

Решение

Я не могу дать абсолютно верный совет.

Не по теме:

Я не знаю, чего именно хочет преподаватель. У всех преподавателей вкусы разные, но почему-то каждый второй считает, что именно его вкус единственно правильный.


Но я бы сделал примерно так:
1) Добавил бы в базу единицы измерения
Prolog
1
2
pl(mars,152,687,d,25).
pl(jupiter,520,12,y,10).
2) Написал отдельный предикат типа
Prolog
1
2
3
4
5
period_days(N, P):-
    pl(N, _, P, d, 10).
period_days(N, P):-
    pl(N, _, PP, y, 10),
    P is PP * 365.
3) Использовал его вместо прямых запросов к базе:
Prolog
1
period_days(zemlya,Z), period_days(X,Y), Z>Y.
1
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 34
22.10.2014, 23:56  [ТС] 5
Цитата Сообщение от Black Fregat Посмотреть сообщение
3) Использовал его вместо прямых запросов к базе:
Сделал как вы посоветовали, но пролог после этого запроса возвращает только false.
Что я сделал неправильно?
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
pl(merkuriy,39,88,d,4224).
pl(venera,72,225,d,2808).
pl(zemlya,100,365,d,24).
pl(mars,152,687,d,25).
pl(jupiter,520,12,y,10).
pl(saturn,954,29,y,11).
pl(uran,1920,84,y,24).
pl(neptun,3010,165,y,22).
pl(pluton,3950,247,y,144).
period_days(N, P):-
    pl(N, _, P, d, 10).
period_days(N, P):-
    pl(N, _, PP, y, 10),
    P is PP * 365.
0
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
23.10.2014, 07:45 6
Я, пока копировал, ошибся. Конечно же, вместо 10 нужно было поставить прочерк:
Prolog
1
2
3
4
5
period_days(N, P):-
    pl(N, _, P, d, _).
period_days(N, P):-
    pl(N, _, PP, y, _),
    P is PP * 365.
1
0 / 0 / 0
Регистрация: 24.10.2017
Сообщений: 47
20.11.2019, 01:42 7
Не понял, напишите пожалуйста код полностью
0
20.11.2019, 01:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2019, 01:42
Помогаю со студенческими работами здесь

Солнечная система Qt
Подскажите как реализовать солнечную систему на Qt. Может есть какие-то наработки? Буду очень...

GLScene Солнечная система
Помогите пжлст. Не могу понять, как сделать, чтобы вокруг земли вращалась луна.(две сферы) Если...

Солнечная система, OpenGL
Добрый вечер! у меня есть проект солнечной системы на opengl. проблема вот в чем: мне нужно ,чтобы...

Солнечная система наша?
Я тут задумался над вопросом: А солнечная система наша? Что вы об этом думаете?

Солнечная система(DirectX)
Собственно не получается реализовать вращение спутника вокруг планеты. Пишу прогу в VC++ на...

Солнечная система (с ошибкой)
Друг принес курсач не могу разобраться выдаешь ошибку( 201 ),буду очень благодарен если поможете с...


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

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