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

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

18.04.2011, 13:37. Просмотров 1977. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

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

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

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

Написать программу реализующую сборку пазла
В шарпе не особо сильно шарю, но появилась необходимость написать программу ...

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


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

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

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