Разработка информационно справочной системы Сводка погоды
Domains
N,i,n,y,m,d,t,v,p=integer
database -svod1
svod1(n,y,m,d,t,v,p)
database -lolo
lolo(n,y,m,d,t,v,p)
database -kuku
kuku(n,y,m,d,t,v,p)
database
svod(n,y,m,d,t,v,p)
Predicates
start
patch
load
select(i)
sel(i,i)
process(i)
procedure(i)
sve(i)
lod(i)
repeat
goal
start.
Clauses
/*Процедура созданЃE ъBыMвньBЃEЃEЃE ЃEзагрузЃE базы даыLых*/
start:- makewindow(1,2,7,"C
В О Д К А П О Г О Д Ы ",0,0,25,80),
clearwindow,
load,
patch.
/*Процедура управленЃE ъBыMвным ЃEЃE*/
patch:-
repeat,
cursor(7,0),
write("
0 - О ЃEьBpамЃE... "),nl,
write("
1 - ЃEррекция даыLых"),nl,
write("
2 - удаление даыLых"),nl,
write("
3 - ЃEъBЃEтр базы"),nl,
write("
4 - загрузЃE базы"),nl,
write("
5 - сохранение базы"),nl,
write("
6 - создание ыMвоЃEбазы"),nl,
write("
7 - ввьC ыMвыЃEдаыLых"),nl,
write("
8 - ЃEъBЃEтр-добавление"),nl,
write("
9 - выхоЃEиз ЃEьBраЃEЃE),nl,
write("
=>"),
readint(Choice),
Choice >= 0,
Choice < 10,
clearwindow,
process(Choice), clearwindow,
Choice = 9,
retractall(_),
removewindow.
/*Процедура ЃEисЃE ЃEзагрузЃE файлЃEсодержащегЃEбазу даыLых*/
load:-
existfile("lesha.dat"),
consult("lesha.dat"),
cursor(1,2), write("БазЃEзагруженЃE).
load:-
cursor(1,2),
write("Нет базы ъь дискЃE).
/*ПpъGедуpЃEввьCЃEыMвыЃEдаыLых*/
process(7):-
makewindow(1,2,7,"ВвоЃEыMвыЃEдаыLых",0,0,25,80),
nl,
write("Введите ЃEЃEдкьAый ыMЃEЃE:"),readint(N),nl,
write("Введите ГьC
:"),readint(Y),nl,
write("Введите МесяЃE
:"),readint(M),nl,
write("Введите ЧисЃE
:"),readint(D),nl,
write("Введите ТемЃEратуру :"),readint(T),nl,
write("Введите ВЃEжнъBть :"),readint(V),nl,
write("Введите ДавЃEыGЃE :"),readint(P),nl,
assertz(svod(N,Y,M,D,T,V,P)),
removewindow,
fail.
/*Процедура ЃEъBЃEтрЃEдобавленЃE*/ process(8):- makewindow(1,2,7,"ПросмъCЃEдобавление",0,0,25,80), nl, write("Введите ыMЃEЃEзаЃEси:"),readint(A),nl,nl,
svod(A,Y,M,D,T,V,P), write("НьKер заЃEси :"),write(A),nl, write("ГьC
:"),write(Y),nl, write("МесяЃE :"),write(M),nl, write("ЧисЃE :"),write(D),nl, write("ТемЃEратура
:"),write(T),nl, WRITE("ВЃEжнъBть
:"),write(V),nl, write("ДавЃEыGЃE
:"),write(P),nl,nl,nl, write("НажЃEте ъь ЃEбую ЃEавишЃE), readchar(_), removewindow, !. process(8):-
write("Этого ыMЃEра заЃEси ыDЃEЃEбазе."),
write("ПьAторите введеныZЃEыMЃEЃEзаЃEси ЃEЃEьCьJжайтЃEввьC даыLых"),nl,nl,nl, write("Введите ыMЃEЃE"), readint(N),nl, write("Введите ГьC
:"),readint(Y),nl, write("Введите МесяЃE :"),readint(M),nl, write("Введите ЧисЃE :"),readint(D),nl, write("Введите ТемЃEратуру
:"),readint(T),nl, write("Введите ВЃEжнъBть
:"),readint(V),nl, write("Введите ДавЃEыGЃE
:"),readint(P),
assertz(svod(N,Y,M,D,T,V,P)), removewindow, fail. process(0):-
makewindow(1,2,7,"О ЃEьBpамЃE...",0,0,25,80),
write("
ИыSыЌЃEциЃEыM-спpавъHъья системЃE),nl,nl,
write("
ЃEЃEгнoзе ЃEгоды "),nl,nl,
write("
ЯзыЃETURBO-PROLOG v.2.0. "),nl,nl,
write("
автоp:МъAгуЃEА.В.
"),nl,nl,
write("
МГИРЭА, гp.ИИ-1-95
(ЃE 1996 ЃE "),nl,nl,nl,nl,
write("НажЃEте ъь ЃEбую ЃEавишЃE), readchar(_), removewindow.
/*Процедура изЃEыDыGя содержимьBЃEзаЃEсеЃEбазы даыLых*/
process(1):-
makewindow(1,2,7,"КыЌpекция даыLых",0,0,25,80),
nl,
select(N),
X=N,
svod(X,Y,M,D,T,V,P),
write("НьKер заЃEси :"),write(N),nl, write("ГьC
:"),write(Y),nl,
write("МесяЃE
:"),write(M),nl,
write("ЧисЃE
:"),write(D),nl,
write("ТемЃEратура
:"),write(T),nl,
write("ВЃEжнъBть
:"),write(V),nl,
write("ДавЃEыGЃE
:"),write(P),nl,nl,nl,
write("Введите ГьC
:"),readint(Y1),nl,
write("Введите МесяЃE :"),readint(M1),nl,
write("Введите ЧисЃE :"),readint(D1),nl,
write("Введите ТемЃEратуру :"),readint(T1),nl,
write("Введите ВЃEжнъBть :"),readint(V1),nl,
write("Введите ДавЃEыGЃE :"),readint(P1),nl,
X1=X,
retract(svod(X,Y,M,D,T,V,P)),
assert(svod(X1,Y1,M1,D1,T1,V1,P1)), !,
removewindow.
/*Процедура удаленЃE заЃEсеЃEиз базы даыLых*/
process(2):-
makewindow(1,2,7,"УдаЃEыGЃEзаЃEсеЃE,0,0,25,80),
nl,
select(N),
X=N,
svod(X,Y,M,D,T,V,P),
retract(svod(X,Y,M,D,T,V,P)),!,
removewindow.
/*Процедура ЃEъBЃEтрЃEсодержимьBЃEбазы даыLых*/
process(3):-
makewindow(1,2,7,"ПросмъCp базы",0,0,25,80),
nl,
write("ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»"),nl,
write("є
СВОДКА
ПОГОДЫ
"),nl,
write("є
"),nl,
write("МНННННННЛНННННННННННННННННННННННЛННННННННННЛННННННННННННЛНННННННННННН№"),nl,
write("є є
ДатЃE є ТемЃEурЃEє
ВЃEжнъBть єДавЃEыGЃE є"),nl,
write("є МНННННННЛННННННННЛННННННОННННННННННОННННННННННННОНННННННННННН№"),nl,
write("є НьKер є гоЃE єЃEЃEЃE єчислЃEє є є є"),nl,
write("є є є є є є є є"),nl,
write("є є є є є є є є"),nl,
nl,
svod(N,Y,M,D,T,V,P),
cursor(Z,_),
cursor(Z,2),write(N), cursor(Z,11),write(Y),
cursor(Z,20),write(M),
cursor(Z,29),write(D),
cursor(Z,36),write(T),
cursor(Z,47),write(V),
cursor(Z,60),write(P),
cursor(Z,66),write("|"), nl,
fail.
process(3):-
write("----------------------------------------------------------------------"),
nl,
write("НажЃEте ъь ЃEбую ЃEавишЃE),
readchar(_),
removewindow.
/*Процедура загрузЃE ЃEЃEЃEть базы даыLых*/
process(4):-
nl,
makewindow(2,15,4,"ЗагрузкЃE,5,5,20,70),
write("1 - БазЃEбудеЃEзагруженЃEиз указаныMго файлЃE),nl,
write("2 - БазЃEбудеЃEзагруженЃEиз файлЃElesha.dat"),nl,
write("3 - ВыхьC ЃEъBыMвньD ЃEЃE"),nl,
write("==>"), readint(C),
C>0,C<4,
lod(C),
!,
removewindow.
/*Процедура сохраненЃE базы даыLых*/
process(5):-
nl,
makewindow(2,15,4,"ЗаписЃE,5,5,20,70),
write("1 - БазЃEбудеЃEзаЃEсаъь ЃEуказаныZЃEфайл"),nl,
write("2 - БазЃEбудеЃEзаЃEсаъь ЃEфайл lesha.dat"),nl,
write("3 - ВыхьC ЃEъBыMвньD ЃEЃE"),nl,
write("==>"),
readint(I),
I>0,I<4,
sve(I),!,
removewindow.
/*Процедура выбора созданЃE
ыMвоЃEбазы*/
process(6):-
nl,
makewindow(3,2,7,"СьFдаыGЃEыMвоЃEбазы",0,0,25,80),
write("1 - БазЃEбудеЃEсозданЃEЃE ГьCЃE),nl,
write("2 - БазЃEбудеЃEсозданЃEЃE Месяцу"),nl,
write("3 - БазЃEбудеЃEсозданЃEЃE ЧисЃE"),nl,
write("4 - ВыхьC ЃEъBыMвньD ЃEЃE"),nl,
write("==>"),
readint(O),
O>0,O<5,
procedure(O),
removewindow.
process(_).
/*Процедура созданЃE ыMвоЃEбазы даыLых ЃEее сохраненЃE*/
procedure(1):- makewindow(1,2,7,"СьFдаыGЃEыMвоЃEбазы ЃE ГьCЃE,0,0,25,80),
nl,
cursor(7,10),
retractall(_,svod1),
nl,
write("ЕслЃEвы хотите узъьть свьCЃE ЃEгоды , то"),
nl,
write("Введите ГьC:"),
readint(X), svod(N,Y,M,D,T,V,P),
S=Y,
S=X,
N1=N,M1=M,D1=D,T1=T,V1=V,P1=P,
assert(svod1(N1,Y,M1,D1,T1,V1,P1)),
fail.
procedure(1):-
write("БазЃEсозданЃE),nl,
write("ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»"),nl,
write("є
СВОДКА
ПОГОДЫ
"),nl,
write("є
"),nl,
write("МНННННННЛНННННННННННННННННННННННЛННННННННННЛННННННННННННЛНННННННННННН№"),nl,
write("є є
ДатЃE є ТемЃEурЃEє
ВЃEжнъBть єДавЃEыGЃE є"),nl,
write("є МНННННННЛННННННННЛННННННОННННННННННОННННННННННННОНННННННННННН№"),nl,
write("є НьKер є гоЃE єЃEЃEЃE єчислЃEє є
"),nl,
write("є є є є є є є є"),nl,
write("є є є є є є є є"),nl,
nl,
svod1(N,S,M,D,T,V,P),
cursor(Z,_),
cursor(Z,2),write(N),
cursor(Z,11),write(S),
cursor(Z,20),write(M),
cursor(Z,29),write(D),
cursor(Z,36),write(T),
cursor(Z,47),write(V),
cursor(Z,60),write(P),
nl,
fail.
procedure(1):-
write("-------------------------------------------------------------------"),
save("not.dat",svod1),
nl,
write("БазЃEсохраненЃEЃEфайлЃEnot.dat"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
removewindow,
!.
procedure(1):-
write("-------------------------------------------------------------------"),
nl,
write("НевьFЃEжнЃEсохранитЃEсозданыRю базу"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
makewindow(1,2,7,"С В О Д К А П О Г О Д Ы",0,0,25,80).
procedure(2):-
makewindow(1,2,7,"СьFдаыGЃEыMвоЃEбазы ЃE Месяцу",0,0,25,80), nl,
cursor(7,10),
retractall(_,lolo),
nl,
write("ЕслЃEвы
хотите узъьть свьCЃE ЃEгоды то, введитЃEМесяЃE),nl,
readint(X),
svod(N,Y,M,D,T,V,P),
S=M,
S=X,
N1=N,Y1=Y,D1=D,T1=T,V1=V,P1=P,
assert(lolo(N1,Y,S,D,T,V,P)),
fail.
procedure(2):-
write("БазЃEсозданЃE),nl,
write("ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»"),nl,
write("є
СВОДКА
ПОГОДЫ
"),nl,
write("є
"),nl,
write("МНННННННЛНННННННННННННННННННННННЛННННННННННЛННННННННННННЛНННННННННННН№"),nl,
write("є є
ДатЃE є ТемЃEурЃEє
ВЃEжнъBть єДавЃEыGЃE є"),nl,
write("є МНННННННЛННННННННЛННННННОННННННННННОННННННННННННОНННННННННННН№"),nl,
write("є НьKер є гоЃE єЃEЃEЃE єчислЃEє є є є"),nl,
write("є є є є є є є є"),nl,
write("є є є є є є є є"),nl,
nl,
lolo(N,Y,M,D,T,V,P),
cursor(Z,_),
cursor(Z,2),write(N),
cursor(Z,11),write(Y),
cursor(Z,20),write(M),
cursor(Z,29),write(D),
cursor(Z,36),write(T),
cursor(Z,47),write(V),
cursor(Z,60),write(P),
nl,
fail.
procedure(2):-
write("-----------------------------------------------------------------------------"),
save("not1.dat",lolo),
nl,
write("БазЃEсохраненЃEЃEфайлЃEnot1.dat"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
removewindow,
!.
procedure(2):-
write("-------------------------------------------------------------------"),
nl,
write("НевьFЃEжнЃEсохранитЃEсозданыRю базу"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
makewindow(1,2,7,"С В О Д К А П О Г О Д Ы
",0,0,25,80).
procedure(3):-
makewindow(1,2,7,"СьFдаыGЃEбазы даыLых ЃE ЧисЃE",0,0,25,80),
nl,
cursor(7,10),
retractall(_,kuku),
nl, write("ЕслЃEвы хотите узъьть даыLые ЃEсвьCЃE ЃEгоды , то"),
nl,
write("Введите ЧисЃE :"),
readint(X),
svod(N,Y,M,D,T,V,P),
S=D,
S=X,
N1=N,Y1=Y,M1=M,T1=T,V1=V,P1=P,
assert(kuku(N1,Y1,M1,S,T1,V1,P1)),
fail.
procedure(3):-
write("БазЃEсозданЃE),nl,
write("ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»"),nl,
write("є
СВОДКА
ПОГОДЫ
"),nl,
write("є
"),nl,
write("МНННННННЛНННННННННННННННННННННННЛННННННННННЛННННННННННННЛНННННННННННН№"),nl,
write("є є
ДатЃE є ТемЃEурЃEє
ВЃEжнъBть єДавЃEыGЃE є"),nl,
write("є МНННННННЛННННННННЛННННННОННННННННННОННННННННННННОНННННННННННН№"),nl,
write("є НьKер є гоЃE єЃEЃEЃE єчислЃEє є є є"),nl,
write("є є є є є є є є"),nl,
write("є є є є є є є є"),nl,
nl,
kuku(N,Y,M,D,T,V,P),
cursor(Z,_),
cursor(Z,2),write(N),
cursor(Z,11),write(Y),
cursor(Z,20),write(M),
cursor(Z,29),write(D),
cursor(Z,36),write(T),
cursor(Z,47),write(V),
cursor(Z,60),write(P),
nl,
fail.
procedure(3):-
write("-------------------------------------------------------------------"),
save("not2.dat",kuku),
nl,
write("БазЃEсохраненЃEЃEфайлЃEnot.dat"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
removewindow,
!.
procedure(3):-
write("-------------------------------------------------------------------"),
nl,
write("НевьFЃEжнЃEсохранитЃEсозданыRю базу"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
makewindow(1,2,7," С В О Д К А П О Г О Д Ы",0,0,25,80).
/*Процедура заЃEси ъь диск*/
sve(1):-
write("Введите имя файлЃE:"),
readln(N),
save(N),
write("Все ЃEЃEЃEдкЃE),
beep,
!.
sve(1):-
write("ОшибкЃEь@ЃEъь, ъьжмитЃEЃEбую ЃEавишЃE),
readchar(_).
sve(2):-
save("lesha.dat").
sve(3).
/*Процедура чтенЃE ЃEдискЃE/
lod(1):-
retractall(_),
write("Введите имя файлЃE:"),
readln(N),
existfile(N),
consult(N),
write("Все ЃEЃEЃEдкЃE),
beep,
!.
lod(1):-
nl,
write("ДаныMго файлЃEыDЃEъь дискЃE),nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_). lod(2):-
retractall(_),
existfile("lesha.dat"),
consult("lesha.dat"),
write("Все ЃEЃEЃEдкЃE),
beep,
!.
lod(2):-
write("ФайЃE lesha.dat ыDЃEъь дискЃE),nl, write("ъьжмитЃEЃEбую
ЃEавишЃE),
readchar(_).
lod(3).
repeat.
repeat:- repeat.
/*ВыбъA заЃEси*/
select(N):-
nl,
write("1 - известен HoЃEЃEзаЃEси"),nl,
write("2 - известен ГьC"),nl,
write("3 - известен МесяЃE),nl,
write("4 - известыM ЧисЃE"),nl,
write("5 - известъь ТемЃEратура"),nl,
write("==>"),
readint(X),
sel(X,N).
sel(1,N):-
nl,
write("Введите ыMЃEЃEзаЃEси
:"),
readint(N),
svod(M,_,_,_,_,_,_),
M=N.
sel(1,N):-
N=0.
sel(2,N):-
nl,
write("Введите ГьC:"),
readint(L),
svod(Z,L,_,_,_,_,_),
N=Z.
sel(2,N):-
N=0.
sel(3,N):-
nl,
write("Введите МесяЃE "),
readint(F),
svod(Z,_,F,_,_,_,_),
N=Z.
sel(3,N):-
N=0.
sel(4,N):-
nl,
write("Введите ЧисЃE:"),
readint(Q),
svod(Z,_,_,Q,_,_,_),
N=Z.
sel(4,N):-
N=0.
sel(5,N):-
nl,
write("Введите ТемЃEратуру:"),
readint(W),
svod(Z,_,_,_,W,_,_),
N=Z.
svod(2,2,3,4,5,6,7)
svod(3,2,3,4,5,6,7)
svod(4,2,3,4,5,6,7)
svod(5,2,3,4,5,6,7)
svod(6,2,3,4,5,6,7)
svod(7,2,3,4,5,6,7)
svod(8,2,3,4,5,6,7)
svod(9,2,3,4,5,6,7)
svod(10,2,3,4,5,6,7)
svod(2,677,6,77,887,88,9)
svod(1,1996,12,25,-20,60,700)
svod(12,1889,12,22,12,80,766)
|