Форум программистов, компьютерный форум, киберфорум
Наши страницы

Prolog

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Катюлька
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 5
#1

Написать программу, реализующую географический справочник. - Prolog

18.04.2011, 13:37. Просмотров 1955. Ответов 3
Метки нет (Все метки)

Написать программу, реализующую географический справочник. В справочнике содержится следующая информация: названия страны и площади страны, названия рек и длины рек, названия озер и глубины озер. Реализовать вывод всей информации из справочника, поиск по названию. Реализовать поиск по площади, длине или глубине, при этом должна быть возможность ввести некоторое пороговое значение (например, вывести названия всех рек, длина которых не менее 3000 км). Для удобства работы реализовать меню с соответствующими пунктами.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
DOMAINS 
nazv = String 
izmer= Integer
file=f 
DATABASE 
geogr(nazv,izmer)
PREDICATES 
nondeterm m(char) 
nondeterm menu 
output_i_n(izmer)
output_n_i(nazv)
CLAUSES 
 
geogr("Russia",500).
geogr("Tashkent",200).
geogr("Lena",600).
geogr("Irtish",750).
geogr("Ob",100).
geogr("Pol'sha",120).
geogr("Kama",170).
 
menu:-
write("1 - ishem izmer po nazv "),nl,
write("2 - ishem nazv po izmer "),nl,
write("3 - dobavlenie infi "),nl, 
write("4 - izmenenie punkta "),nl, 
write("5 - udalenie zapisi "),nl,
write("6 - vsy baza "),nl, 
write("7 - limit "),nl,
write("0 - vihod "),nl,
readchar(C),
m(C). 
 
m('1'):-
write("vvedi nazv "), nl, 
readln(Nazv),
output_n_i(Nazv),
menu.
 
 
m('2'):-
write("vvedi izmer "),nl,
readint (Izmer),
output_i_n(Izmer),
menu.
 
m('3'):-!, 
write("vvedi nazv "),nl,
readln(Nazv),
write("vvedi izmer "),nl,
readint (Izmer),
assert(geogr(Nazv,Izmer)), 
menu.
 
m('4'):-!,
write("vvedi nazv "),nl,
readln(Nazv),
write("vvedi nov izmer "),nl,
readint (Izmer),
retract(geogr(Nazv,_)), 
assert(geogr(Nazv,Izmer)), 
menu.
 
m('5'):-!,
write("udalyem nazv "), nl, 
readln(Nazv), 
retractall(geogr(Nazv,_)), 
menu.
 
m('6'):-
geogr(Nazv, Izmer),
write(" Nazv: ", Nazv, " Izmer: ",Izmer),nl,
fail,menu.
 
m('7'):-
write("vvedi limit izmer "),nl,
readln(Limit),
geogr(Nazv, Izmer),
Izmer <=Limit,
write(" Nazv: ", Nazv, " Izmer: ",Izmer),nl,
fail,menu.
 
m('0'):-!,
save("avia.ddb"), 
retractall(_).
 
m(_):-!,menu. 
 
output_i_n(Limit):-
geogr(Nazv, Izmer),
Izmer <=Limit,
write("nazv : ",Nazv," izmer=",Izmer),nl,
fail.
 
output_i_n(Limit):-
geogr(Nazv, Izmer),
Izmer > Limit,!.
output_i_n( Izmer):-
write("ne hvatit "),nl,fail.
 
output_i_n(Limit):-
geogr(Nazv,_),!.
output_i_n(_):-
write("net infi o takoi  strane(reke)"),nl,
fail.
 
output_n_i(Nazv):-
geogr(Nazv, Izmer),
write("nazv: ",Nazv," Izmer ",Izmer),nl,
fail.
output_n_i(Nazv):-
geogr(Nazv,_),!.
output_n_i(_):-
write("net infi o strane "),nl,
fail.
 
GOAL 
menu.
Выдает ошибку на этой строчке
write("0 - vihod "),nl,
Помогите пожалуйста разобраться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2011, 13:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Написать программу, реализующую географический справочник. (Prolog):

географический справочник с использованием БД - Prolog
2. Напишите программу, моделирующую компьютерную версию географического справочника, содержащего информацию о столицах стран. Пользователь...

Написать программу, реализующую авиасправочник - Prolog
Здравствуйте! Помогите пожалуйста!!! Текст задачи: Написать программу, реализующую авиасправочник. В справочнике содержится следующая...

Написать программу реализующую конечный автомат, который распознает слова - Prolog
(abc)nd(ef)m, , n≥0, m≥0 желательно с объяснением

Написать программу, реализующую калькулятор на четыре арифметических действия (без скобок) - Prolog
помогите разобраться с задачей!!очень срочно!!Мне нужно описание как работает эта задача по строкам,и что мы пишем в них. Написать...

Напишите программу, реализующую вычисление значения функции Аккермана (Visual Prolog) - Prolog
Напишите программу, реализующую вычисление значения функции Аккермана: Функция Аккермана является функцией быстрого роста. Так,...

Создайте программу, реализующую игру "Угадай число" (Turbo Prolog) - Prolog
ЗДРАВСТВУЙТЕ! Помогите пожалуйсто с решением задачи. Создайте программу, реализующую игру &quot;Угадай число&quot; (компьютер загадывает число,...

3
rrrFer
Заблокирован
19.04.2011, 11:19 #2
Цитата Сообщение от Катюлька Посмотреть сообщение
Выдает ошибку на этой строчке
write("0 - vihod "),nl,
Катюлька, на этой строчке ошибку она не выдает(т.к. ошибок тут нет), зато выдает тут:
Prolog
1
2
3
readln(Limit),
geogr(Nazv, Izmer),
Izmer <=Limit,
readln возвращает строку => Limit имеет тип string
предикат geogr описан так:
Prolog
1
2
3
4
5
DOMAINS 
nazv = String 
izmer= Integer
DATABASE 
geogr(nazv,izmer)
т.е. Izmer - это целое число(тип integer)
Т.о. вы сравниваете строку с целым числом.
1
Катюлька
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 5
19.04.2011, 12:29  [ТС] #3
Уф...ну попробую разобраться,спасибо)
0
Катюлька
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 5
22.04.2011, 12:24  [ТС] #4
Напишите пожалуйста как правильно.Где что исправить нужно не понимаю...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2011, 12:24
Привет! Вот еще темы с ответами:

Написать программу, реализующую разбиение множества A - C++
Я считаю, что это задание очень актуально. На мой взгляд, она немного трудна в реализации, поэтому и прошу помощи. Я понимаю, что такое...

Написать программу, реализующую циклический алгоритм - Java SE
Написать программу, реализующую циклический алгоритм. Вкладчик внес в сберкассу X рублей. Написать программу, вычисляющую, сколько денег...

Написать программу, реализующую вычисление по формуле - Assembler
Написать программу, реализующую данную формулу: Формула x=3A-(7C+1)2 где А, С, X -целые знаковые числа занимающие слово. .modol small ...

Написать программу на Ассемблере, реализующую функцию N1+N2-N3 - Assembler
1)Написать программу на Ассемблере, реализующую функцию N1+N2-N3 и перевести написанную программу в шестнадцатеричные коды N1 = 11 N2 =...


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

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

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