rendered paste body%База подозреваемых
domains
rost,vozrast,statia,srok,Pol,volos = integer
key,y,z,A,B,C,D,E,F,G = integer
tatu,Shram = string
database-Prokuratura
zek(Pol,rost,vozrast,volos,statia,srok,tatu,Shram)
Predicates
rpt
menu
saves(integer)
clearb
%-----------------------
key_menu1(key,y)
key_menu2(key,y)
key_menu3(key,y,A,B,C)
key_menu4(key,y,A,B,C,D)
key_menu41(key,y,A,B,C,D,E,F)
key_menu42(key,y,A,B,C,D,E,F,G)
key_menu5(key,y)
key_menu6(key,y,A)
key_menu7(key,y,A,B)
key_menu8(key,y,A,B,C)
%-----------------------
go1(integer)
go2(integer)
go3(integer,integer)
go4(integer,integer,integer)
go5(integer,integer,integer,integer)
go6(integer,integer,integer,integer,integer)
go7(integer,integer,integer,integer,integer,integer)
go8(integer,integer,integer,integer,integer,integer,integer)
go999(integer,integer,integer,integer,integer,integer,integer,integer)
find1(integer)
find2(integer,integer)
find3(integer,integer,integer)
find4(integer,integer,integer,integer)
%-----------------------
see
del(integer,integer)
seePoisk(integer,integer,integer,integer,integer,integer,integer)
clauses
rpt.
rpt:-!,rpt.
saves(1):- save("zek.dat",Prokuratura),clearb.
saves(0):- save("zek.dat",Prokuratura),clearb,consult("zek.dat",Prokuratura).
clearb:-retract(zek(_,_,_,_,_,_,_,_)),fail;true.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
key_menu1(0,Y) :- inkey(Key), key_menu1(Key,Y).
key_menu1(72,Y) :- field_attr(Y,0,16,7),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(4,0).
key_menu1(80,Y) :- field_attr(Y,0,16,7),
Y<4,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu1(13,Y) :-go1(Y).
%-----------------------------------------------------
key_menu2(0,Y) :- inkey(Key), key_menu2(Key,Y).
key_menu2(72,Y) :- field_attr(Y,0,23,7),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(1,0).
key_menu2(80,Y) :- field_attr(Y,0,23,7),
Y<1,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu2(13,Y) :-removewindow,go2(Y).
%-----------------------------------------------------
key_menu3(0,Y,A,B,C) :- inkey(Key), key_menu3(Key,Y,A,B,C).
key_menu3(72,Y,A,B,C) :- field_attr(Y,0,23,7),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(3,0).
key_menu3(80,Y,A,B,C) :- field_attr(Y,0,23,7),
Y<3,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu3(13,Y,A,B,C) :-removewindow,go5(A,B,C,Y).
%-----------------------------------------------------
key_menu4(0,Y,A,B,C,D) :- inkey(Key), key_menu4(Key,Y,A,B,C,D).
key_menu4(72,Y,A,B,C,D) :- field_attr(Y,0,28,7),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(3,0).
key_menu4(80,Y,A,B,C,D) :- field_attr(Y,0,28,7),
Y<3,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu4(13,Y,A,B,C,D) :-removewindow,go6(A,B,C,D,Y).
%-----------------------------------------------------
key_menu41(0,Y,A,B,C,D,E,F) :- inkey(Key), key_menu41(Key,Y,A,B,C,D,E,F).
key_menu41(72,Y,A,B,C,D,E,F) :- field_attr(Y,0,23,7),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(3,0).
key_menu41(80,Y,A,B,C,D,E,F) :- field_attr(Y,0,23,7),
Y<3,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu41(13,Y,A,B,C,D,E,F) :-removewindow,
go8(A,B,C,D,E,F,Y).
%-----------------------------------------------------
key_menu42(0,Y,A,B,C,D,E,F,G) :- inkey(Key), key_menu42(Key,Y,A,B,C,D,E,F,G).
key_menu42(72,Y,A,B,C,D,E,F,G) :- field_attr(Y,0,23,7),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(3,0).
key_menu42(80,Y,A,B,C,D,E,F,G) :- field_attr(Y,0,23,7),
Y<3,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu42(13,Y,A,B,C,D,E,F,G) :-removewindow,
go999(A,B,C,D,E,F,G,Y).
%-----------------------------------------------------
key_menu5(0,Y) :- inkey(Key), key_menu5(Key,Y).
key_menu5(72,Y) :- field_attr(Y,0,23,7),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(1,0).
key_menu5(80,Y) :- field_attr(Y,0,23,7),
Y<1,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu5(13,Y) :-removewindow,find1(Y).
%-----------------------------------------------------
key_menu6(0,Y,A) :- inkey(Key), key_menu6(Key,Y,A).
key_menu6(72,Y,A) :- field_attr(Y,0,23,7),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(4,0).
key_menu6(80,Y,A) :- field_attr(Y,0,23,7),
Y<4,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu6(13,Y,A) :-removewindow,find2(Y,A).
%-----------------------------------------------------
key_menu7(0,Y,A,B) :- inkey(Key), key_menu7(Key,Y,A,B).
key_menu7(72,Y,A,B) :- field_attr(Y,0,28,7),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(4,0).
key_menu7(80,Y,A,B) :- field_attr(Y,0,28,7),
Y<4,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu7(13,Y,A,B) :-removewindow,find3(Y,A,B).
%-----------------------------------------------------
key_menu8(0,Y,A,B,C) :- inkey(Key), key_menu8(Key,Y,A,B,C).
key_menu8(72,Y,A,B,C) :- field_attr(Y,0,28,7),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(3,0).
key_menu8(80,Y,A,B,C) :- field_attr(Y,0,28,7),
Y<3,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu8(13,Y,A,B,C) :-removewindow,find4(Y,A,B,C).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
go1(0):-cursorform(2,2),rpt,makewindow(2,7,7,"Man/Woman",0,5,17,25),
write("Man"),nl,
write("Woman"),
cursor(0,0),
rpt,
cursor(Y,_),
field_attr(Y,0,23,112),
inkey(Key),key_menu2(Key,Y),
fail.
go1(1):-makewindow(10,7,7,"Delete from baze",0,5,20,30),
write("Vvedite vozrast PrestuPnuka: "), readint(L),nl,
write("Vvedite rost PrestuPnuka: "), readint(K),nl,removewindow,
del(K,L).
go1(2):-makewindow(6,7,7,"Man/Woman",0,5,17,25),
beeP,
write("Man"),nl,
write("Woman"),
cursor(0,0),
rPt,
cursor(Y,_),
field_attr(Y,0,23,112),
inkey(Key),key_menu5(Key,Y),
fail.
go1(3):-see().
go1(4):-saves(1),exit.
%-----------------------------------------------------
go2(A):-makewindow(3,7,7,"Kakov rost(sP)?",0,5,17,25),
write("Rost: "),readint(X),removewindow,
go3(A,X).
%-----------------------------------------------------
go3(A,B):-makewindow(4,7,7,"Vvedite vozrast",0,5,17,25),
write("Vozrast(let): "),nl,readint(X),removewindow,
go4(A,B,X).
%-----------------------------------------------------
go4(A,B,C):-makewindow(5,7,7,"Cvet volos?",0,5,17,25),
write("Brunet(ka)"),nl,
write("Blondin(ka)"),nl,
write("Shaten(ka)"),nl,
write("Rusui(aya)"),nl,
cursor(0,0),
rPt,
cursor(Y,_),
field_attr(Y,0,23,112),
inkey(Key),key_menu3(Key,Y,A,B,C),
fail.
%-----------------------------------------------------
go5(A,B,C,D):-makewindow(6,7,7,"Statiya?",0,5,17,30),
write("105 - UK RF (Ybiistvo)"),nl,
write("162 - UK RF (Razboi)"),nl,
write("158 - UK RF (Kraga)"),nl,
write("166 - UK RF (Ugon)"),nl,
cursor(0,0),
rPt,
cursor(Y,_),
field_attr(Y,0,28,112),
inkey(Key),key_menu4(Key,Y,A,B,C,D),
fail.
%-----------------------------------------------------
go6(A,B,C,D,E):-makewindow(7,7,7,"Srok?",0,5,17,25),
write("Vvedite srok: "),readint(F),removewindow,
go7(A,B,C,D,E,F).
%-----------------------------------------------------
go7(A,B,C,D,E,F):-makewindow(5,7,7,"tatu",0,5,17,25),
write("Net"),nl,
write("Na spine"),nl,
write("Na ruke"),nl,
write("Na noge"),nl,
cursor(0,0),
rPt,
cursor(Y,_),
field_attr(Y,0,23,112),
inkey(Key),key_menu41(Key,Y,A,B,C,D,E,F),
fail.
%-----------------------------------------------------
go8(A,B,C,D,E,F,G):-makewindow(5,7,7,"Shram",0,5,17,25),
write("Net"),nl,
write("Na spine"),nl,
write("Na ruke"),nl,
write("Na noge"),nl,
cursor(0,0),
rPt,
cursor(Y,_),
field_attr(Y,0,23,112),
inkey(Key),key_menu42(Key,Y,A,B,C,D,E,F,G),
fail.
%-----------------------------------------------------
go999(A,B,C,D,E,F,G,Y):-
Y=0,G=0,assertz(zek(A,B,C,D,E,F,"Net","Net")),saves(0),menu;
Y=0,G=1,assertz(zek(A,B,C,D,E,F,"Net","Na spine")),saves(0),menu;
Y=0,G=2,assertz(zek(A,B,C,D,E,F,"Net","Na ruke")),saves(0),menu;
Y=0,G=3,assertz(zek(A,B,C,D,E,F,"Net","Na noge")),saves(0),menu;
Y=1,G=0,assertz(zek(A,B,C,D,E,F,"Na spine","Net")),saves(0),menu;
Y=1,G=1,assertz(zek(A,B,C,D,E,F,"Na spine","Na spine")),saves(0),menu;
Y=1,G=2,assertz(zek(A,B,C,D,E,F,"Na spine","Na ruke")),saves(0),menu;
Y=1,G=3,assertz(zek(A,B,C,D,E,F,"Na spine","Na noge")),saves(0),menu;
Y=2,G=0,assertz(zek(A,B,C,D,E,F,"Na ruke","Net")),saves(0),menu;
Y=2,G=1,assertz(zek(A,B,C,D,E,F,"Na ruke","Na spine")),saves(0),menu;
Y=2,G=2,assertz(zek(A,B,C,D,E,F,"Na ruke","Na ruke")),saves(0),menu;
Y=2,G=3,assertz(zek(A,B,C,D,E,F,"Na ruke","Na noge")),saves(0),menu;
Y=3,G=0,assertz(zek(A,B,C,D,E,F,"Na noge","Net")),saves(0),menu;
Y=3,G=1,assertz(zek(A,B,C,D,E,F,"Na noge","Na spine")),saves(0),menu;
Y=3,G=2,assertz(zek(A,B,C,D,E,F,"Na noge","Na ruke")),saves(0),menu;
Y=3,G=3,assertz(zek(A,B,C,D,E,F,"Na noge","Na noge")),saves(0),menu.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
menu :- makewindow(1,7,7,"PrestuPniki",0,0,8,18),
clearwindow,
write("Add to baze"),nl,
write("Del froP baze"),nl,
write("Find in baze"),nl,
write("See baze"),nl,
write("Exit"),nl,
cursor(0,0),
rPt,
cursor(Y,_),
field_attr(Y,0,16,112),
inkey(Key),key_menu1(Key,Y),
fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find1(N):-makewindow(3,7,7,"Kakov rost(sm)?",0,5,17,25),
clearwindow,
write("100 - 120"),nl,
write("120 - 140"),nl,
write("140 - 160"),nl,
write("160 - 180"),nl,
write("180 - 200"),nl,
cursor(0,0),
rPt,
cursor(Y,_),
field_attr(Y,0,23,112),
inkey(Key),key_menu6(Key,Y,N),
fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find2(M,N):-makewindow(6,7,7,"vozrast PrestuPnika?",0,5,17,30),
clearwindow,
write("18 - 30"),nl,
write("31 - 42"),nl,
write("43 - 54"),nl,
write("55 - 72"),nl,
write("73 - 86"),nl,
cursor(0,0),
rPt,
cursor(Y,_),
field_attr(Y,0,28,112),
inkey(Key),key_menu7(Key,Y,N,M),
fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find3(L,N,M):-makewindow(6,7,7,"srok PrestuPnika?",0,5,17,30),
clearwindow,
write("1 - 15"),nl,
write("16 - 30"),nl,
write("31 - 45"),nl,
write("46 - 60"),nl,
cursor(0,0),
rPt,
cursor(Y,_),
field_attr(Y,0,28,112),
inkey(Key),key_menu8(Key,Y,N,M,L),
fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find4(P,N,M,L):-
makewindow(50,100,1,"ProsPotr",0,10,35,60),
writef("%10|%5|%6|%9|%7|%8|%6|","Zek"," Pol "," rost "," vozrast "," volos "," statia "," srok "),
P=0,M=0,L=0,seePoisk(N,1,15,100,120,18,30);
P=0,M=0,L=1,seePoisk(N,1,15,100,120,31,42);
P=0,M=0,L=2,seePoisk(N,1,15,100,120,43,54);
P=0,M=0,L=3,seePoisk(N,1,15,100,120,55,72);
P=0,M=0,L=4,seePoisk(N,1,15,100,120,73,86);
P=0,M=1,L=0,seePoisk(N,1,15,120,140,18,30);
P=0,M=1,L=1,seePoisk(N,1,15,120,140,31,42);
P=0,M=1,L=2,seePoisk(N,1,15,120,140,43,54);
P=0,M=1,L=3,seePoisk(N,1,15,120,140,55,72);
P=0,M=1,L=4,seePoisk(N,1,15,120,140,73,86);
P=0,M=2,L=0,seePoisk(N,1,15,140,160,18,30);
P=0,M=2,L=1,seePoisk(N,1,15,140,160,31,42);
P=0,M=2,L=2,seePoisk(N,1,15,140,160,43,54);
P=0,M=2,L=3,seePoisk(N,1,15,140,160,55,72);
P=0,M=2,L=4,seePoisk(N,1,15,140,160,73,86);
P=0,M=3,L=0,seePoisk(N,1,15,160,180,18,30);
P=0,M=3,L=1,seePoisk(N,1,15,160,180,31,42);
P=0,M=3,L=2,seePoisk(N,1,15,160,180,43,54);
P=0,M=3,L=3,seePoisk(N,1,15,160,180,55,72);
P=0,M=3,L=4,seePoisk(N,1,15,160,180,73,86);
P=0,M=4,L=0,seePoisk(N,1,15,180,200,18,30);
P=0,M=4,L=1,seePoisk(N,1,15,180,200,31,42);
P=0,M=4,L=2,seePoisk(N,1,15,180,200,43,54);
P=0,M=4,L=3,seePoisk(N,1,15,180,200,55,72);
P=0,M=4,L=4,seePoisk(N,1,15,180,200,73,86);
P=1,M=0,L=0,seePoisk(N,16,30,100,120,18,30);
P=1,M=0,L=1,seePoisk(N,16,30,100,120,31,42);
P=1,M=0,L=2,seePoisk(N,16,30,100,120,43,54);
P=1,M=0,L=3,seePoisk(N,16,30,100,120,55,72);
P=1,M=0,L=4,seePoisk(N,16,30,100,120,73,86);
P=1,M=1,L=0,seePoisk(N,16,30,120,140,18,30);
P=1,M=1,L=1,seePoisk(N,16,30,120,140,31,42);
P=1,M=1,L=2,seePoisk(N,16,30,120,140,43,54);
P=1,M=1,L=3,seePoisk(N,16,30,120,140,55,72);
P=1,M=1,L=4,seePoisk(N,16,30,120,140,73,86);
P=1,M=2,L=0,seePoisk(N,16,30,140,160,18,30);
P=1,M=2,L=1,seePoisk(N,16,30,140,160,31,42);
P=1,M=2,L=2,seePoisk(N,16,30,140,160,43,54);
P=1,M=2,L=3,seePoisk(N,16,30,140,160,55,72);
P=1,M=2,L=4,seePoisk(N,16,30,140,160,73,86);
P=1,M=3,L=0,seePoisk(N,16,30,160,180,18,30);
P=1,M=3,L=1,seePoisk(N,16,30,160,180,31,42);
P=1,M=3,L=2,seePoisk(N,16,30,160,180,43,54);
P=1,M=3,L=3,seePoisk(N,16,30,160,180,55,72);
P=1,M=3,L=4,seePoisk(N,16,30,160,180,73,86);
P=1,M=4,L=0,seePoisk(N,16,30,180,200,18,30);
P=1,M=4,L=1,seePoisk(N,16,30,180,200,31,42);
P=1,M=4,L=2,seePoisk(N,16,30,180,200,43,54);
P=1,M=4,L=3,seePoisk(N,16,30,180,200,55,72);
P=1,M=4,L=4,seePoisk(N,16,30,180,200,73,86);
P=2,M=0,L=0,seePoisk(N,31,45,100,120,18,30);
P=2,M=0,L=1,seePoisk(N,31,45,100,120,31,42);
P=2,M=0,L=2,seePoisk(N,31,45,100,120,43,54);
P=2,M=0,L=3,seePoisk(N,31,45,100,120,55,72);
P=2,M=0,L=4,seePoisk(N,31,45,100,120,73,86);
P=2,M=1,L=0,seePoisk(N,31,45,120,140,18,30);
P=2,M=1,L=1,seePoisk(N,31,45,120,140,31,42);
P=2,M=1,L=2,seePoisk(N,31,45,120,140,43,54);
P=2,M=1,L=3,seePoisk(N,31,45,120,140,55,72);
P=2,M=1,L=4,seePoisk(N,31,45,120,140,73,86);
P=2,M=2,L=0,seePoisk(N,31,45,140,160,18,30);
P=2,M=2,L=1,seePoisk(N,31,45,140,160,31,42);
P=2,M=2,L=2,seePoisk(N,31,45,140,160,43,54);
P=2,M=2,L=3,seePoisk(N,31,45,140,160,55,72);
P=2,M=2,L=4,seePoisk(N,31,45,140,160,73,86);
P=2,M=3,L=0,seePoisk(N,31,45,160,180,18,30);
P=2,M=3,L=1,seePoisk(N,31,45,160,180,31,42);
P=2,M=3,L=2,seePoisk(N,31,45,160,180,43,54);
P=2,M=3,L=3,seePoisk(N,31,45,160,180,55,72);
P=2,M=3,L=4,seePoisk(N,31,45,160,180,73,86);
P=2,M=4,L=0,seePoisk(N,31,45,180,200,18,30);
P=2,M=4,L=1,seePoisk(N,31,45,180,200,31,42);
P=2,M=4,L=2,seePoisk(N,31,45,180,200,43,54);
P=2,M=4,L=3,seePoisk(N,31,45,180,200,55,72);
P=2,M=4,L=4,seePoisk(N,31,45,180,200,73,86);
P=3,M=0,L=0,seePoisk(N,46,60,100,120,18,30);
P=3,M=0,L=1,seePoisk(N,46,60,100,120,31,42);
P=3,M=0,L=2,seePoisk(N,46,60,100,120,43,54);
P=3,M=0,L=3,seePoisk(N,46,60,100,120,55,72);
P=3,M=0,L=4,seePoisk(N,46,60,100,120,73,86);
P=3,M=1,L=0,seePoisk(N,46,60,120,140,18,30);
P=3,M=1,L=1,seePoisk(N,46,60,120,140,31,42);
P=3,M=1,L=2,seePoisk(N,46,60,120,140,43,54);
P=3,M=1,L=3,seePoisk(N,46,60,120,140,55,72);
P=3,M=1,L=4,seePoisk(N,46,60,120,140,73,86);
P=3,M=2,L=0,seePoisk(N,22,216,300,160,18,30);
P=3,M=2,L=1,seePoisk(N,22,216,300,160,31,42);
P=3,M=2,L=2,seePoisk(N,22,216,300,160,43,54);
P=3,M=2,L=3,seePoisk(N,22,216,300,160,55,72);
P=3,M=2,L=4,seePoisk(N,22,216,300,160,73,86);
P=3,M=3,L=0,seePoisk(N,46,60,160,180,18,30);
P=3,M=3,L=1,seePoisk(N,46,60,160,180,31,42);
P=3,M=3,L=2,seePoisk(N,46,60,160,180,43,54);
P=3,M=3,L=3,seePoisk(N,46,60,160,180,55,72);
P=3,M=3,L=4,seePoisk(N,46,60,160,180,73,86);
P=3,M=4,L=0,seePoisk(N,46,60,180,200,18,30);
P=3,M=4,L=1,seePoisk(N,46,60,180,200,31,42);
P=3,M=4,L=2,seePoisk(N,46,60,180,200,43,54);
P=3,M=4,L=3,seePoisk(N,46,60,180,200,55,72);
P=3,M=4,L=4,seePoisk(N,46,60,180,200,73,86).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
seePoisk(A,P1,P2,M1,M2,L1,L2):-
zek(A,B,C,D,E,F,G,H),
B>=M1,B<=M2,
C>=L1,C<=L2,
F>=P1,F<=P2,
writef("%-3s|%4|%7|%5|%6|%4|%8|%-7d|",A,B,C,D,E,F,G,H),fail;true,
readln(H),removewindow,menu.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
see():-makewindow(50,100,1,"ProsPotr",0,10,35,60),
writef("%3|%4|%7|%5|%6|%4|%8|%7|","Pol","rost","vozrast","volos","statia","srok","Tatu","Shramb|"),nl;
zek(A,B,C,D,E,F,G,H),
writef("%3|%4|%7|%5|%6|%4|%8|%7|",A,B,C,D,E,F,G,H),nl,fail;true,
readln(HHH),removewindow,menu.
del(K,L):-retract(zek(_,K,L,_,_,_,_,_)),fail;true,saves(0).
goal
consult("zek.dat",prokuratura),
menu.