All pastes #2077283 Raw Edit

Something

public text v1 · immutable
#2077283 ·published 2011-06-09 12:53 UTC
rendered paste body
code=5000
domains
	Name,Socket=string
	Pcie,Sata,Usb,Ddr2,Ddr3,Price=integer
	key,y,z,A,B,C,D,E,F,G=integer
	
database -db1
	motheboard(Name,Socket,Pcie,Sata,Usb,Ddr2,Ddr3,Price)

Predicates
	rpt
	menu
	saves(integer)
	clearb
%=====================================
	key_menu1(key,y)
	key_menu2(key,y)
	key_menu41(key,y,A,B,C,D,E,F)
	key_menu42(key,y,A,B,C,D,E,F,G)
	
	key_menu10(key,y)
	key_menu11(key,y,string)
	key_menu12(key,y,string,string)
	key_menu13(key,y,string,string,integer)
	key_menu14(key,y,string,string,integer,integer)
	key_menu15(key,y,string,string,integer,integer,integer)
	key_menu16(key,y,string,string,integer,integer,integer,integer)
	key_menu17(key,y,string,string,integer,integer,integer,integer,integer)
%=====================================
	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,string)
	find3(integer,string,string)
	find4(integer,string,string,integer)
	find5(integer,string,string,integer,integer)
	find6(integer,string,string,integer,integer,integer)
	find7(integer,string,string,integer,integer,integer,integer)
	find8(integer,string,string,integer,integer,integer,integer,integer)

	find_menu1(string)
	find_menu2(string,string)
	find_menu3(string,string,integer)
	find_menu4(string,string,integer,integer)
	find_menu5(string,string,integer,integer,integer)
	find_menu6(string,string,integer,integer,integer,integer)
	find_menu7(string,string,integer,integer,integer,integer,integer)
	find_menu8(string,string,integer,integer,integer,integer,integer,integer,integer)
%=====================================
	seeFind1(string)
	seeFind2(string,string)
	seeFind3(string,string,integer)
	seeFind4(string,string,integer,integer)
	seeFind5(string,string,integer,integer,integer)
	seeFind6(string,string,integer,integer,integer,integer)
	seeFind7(string,string,integer,integer,integer,integer,integer)
%=====================================
	see
%	interval(integer,integer,integer)
%	seeFind(string,string,integer,integer,integer,integer,integer,integer,integer,integer)
	del(string,string,integer,integer,integer,integer,integer)
%	seePoisk(integer,integer,integer,integer,integer,integer,integer)
	
clauses
	rpt.
	rpt:-!,rpt.
	
	saves(1):- save("1.txt",db1),clearb.
	saves(0):- save("1.txt",db1),clearb,consult("1.txt",db1).
	
	clearb:-retract(motheboard(_,_,_,_,_,_,_,_)),fail;true.
	
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	key_menu1(0,Y) :- inkey(Key), key_menu1(Key,Y).
	key_menu1(72,Y) :- field_attr(Y,0,16,75),
					Y>0,!,
					Z=Y-1,
					cursor(Z,0)
					;
					cursor(4,0).
	key_menu1(80,Y) :- field_attr(Y,0,16,75),
					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,75),
                   Y>0,!,
                   Z=Y-1,
                   cursor(Z,0)
                   ;
                   cursor(2,0).
    key_menu2(80,Y) :- field_attr(Y,0,23,75),
                   Y<2,!,
                   Z=Y+1,
                   cursor(Z,0)
                   ;
                   cursor(0,0).
    key_menu2(13,Y) :-removewindow,go2(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,75),
                   Y>0,!,
                   Z=Y-1,
                   cursor(Z,0)
                   ;
                   cursor(2,0).
   key_menu41(80,Y,A,B,C,D,E,F) :- field_attr(Y,0,23,75),
                   Y<2,!,
                   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,75),
                   Y>0,!,
                   Z=Y-1,
                   cursor(Z,0)
                   ;
                   cursor(2,0).
   key_menu42(80,Y,A,B,C,D,E,F,G) :- field_attr(Y,0,23,75),
                   Y<2,!,
                   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_menu10(0,Y):-inkey(Key), key_menu10(Key,Y).
	key_menu10(72,Y):-field_attr(Y,0,23,75),
					Y>0,!,
					Z=Y-1,
					cursor(Z,0)
					;
					cursor(2,0).
	key_menu10(80,Y):-field_attr(Y,0,23,75),
					Y<2,!,
					Z=Y+1,
					cursor(Z,0)
					;
					cursor(0,0).
	key_menu10(13,Y):-removewindow, find1(Y).
%-----------------------------------------------------
	key_menu11(0,Y,COM):-inkey(Key), key_menu11(Key,Y,COM).
	key_menu11(72,Y,COM):-field_attr(Y,0,23,75),
					Y>0,!,
					Z=Y-1,
					cursor(Z,0)
					;
					cursor(4,0).
	key_menu11(80,Y,COM):-field_attr(Y,0,23,75),
					Y<4,!,
					Z=Y+1,
					cursor(Z,0)
					;
					cursor(0,0).
	key_menu11(13,Y,COM):-removewindow, find2(Y,COM).
%-----------------------------------------------------
	key_menu12(0,Y,COM,CHIP):-inkey(Key), key_menu12(Key,Y,COM,CHIP).
	key_menu12(72,Y,COM,CHIP):-field_attr(Y,0,23,75),
					Y>0,!,
					Z=Y-1,
					cursor(Z,0)
					;
					cursor(4,0).
	key_menu12(80,Y,COM,CHIP):-field_attr(Y,0,23,75),
					Y<4,!,
					Z=Y+1,
					cursor(Z,0)
					;
					cursor(0,0).
	key_menu12(13,Y,COM,CHIP):-removewindow, find3(Y,COM,CHIP).
%-----------------------------------------------------
	key_menu13(0,Y,COM,CHIP,PC):-inkey(Key), key_menu13(Key,Y,COM,CHIP,PC).
	key_menu13(72,Y,COM,CHIP,PC):-field_attr(Y,0,23,75),
					Y>0,!,
					Z=Y-1,
					cursor(Z,0)
					;
					cursor(6,0).
	key_menu13(80,Y,COM,CHIP,PC):-field_attr(Y,0,23,75),
					Y<6,!,
					Z=Y+1,
					cursor(Z,0)
					;
					cursor(0,0).
	key_menu13(13,Y,COM,CHIP,PC):-removewindow, find4(Y,COM,CHIP,PC).
%-----------------------------------------------------
	key_menu14(0,Y,COM,CHIP,PC,SAT):-inkey(Key), key_menu14(Key,Y,COM,CHIP,PC,SAT).
	key_menu14(72,Y,COM,CHIP,PC,SAT):-field_attr(Y,0,23,75),
					Y>0,!,
					Z=Y-1,
					cursor(Z,0)
					;
					cursor(5,0).
	key_menu14(80,Y,COM,CHIP,PC,SAT):-field_attr(Y,0,23,75),
					Y<5,!,
					Z=Y+1,
					cursor(Z,0)
					;
					cursor(0,0).
	key_menu14(13,Y,COM,CHIP,PC,SAT):-removewindow, find5(Y,COM,CHIP,PC,SAT).
%-----------------------------------------------------
	key_menu15(0,Y,COM,CHIP,PC,SAT,US):-inkey(Key), key_menu15(Key,Y,COM,CHIP,PC,SAT,US).
	key_menu15(72,Y,COM,CHIP,PC,SAT,US):-field_attr(Y,0,23,75),
					Y>0,!,
					Z=Y-1,
					cursor(Z,0)
					;
					cursor(6,0).
	key_menu15(80,Y,COM,CHIP,PC,SAT,US):-field_attr(Y,0,23,75),
					Y<6,!,
					Z=Y+1,
					cursor(Z,0)
					;
					cursor(0,0).
	key_menu15(13,Y,COM,CHIP,PC,SAT,US):-removewindow, find6(Y,COM,CHIP,PC,SAT,US).
%-----------------------------------------------------
	key_menu16(0,Y,COM,CHIP,PC,SAT,US,DD2):-inkey(Key), key_menu16(Key,Y,COM,CHIP,PC,SAT,US,DD2).
	key_menu16(72,Y,COM,CHIP,PC,SAT,US,DD2):-field_attr(Y,0,23,75),
					Y>0,!,
					Z=Y-1,
					cursor(Z,0)
					;
					cursor(6,0).
	key_menu16(80,Y,COM,CHIP,PC,SAT,US,DD2):-field_attr(Y,0,23,75),
					Y<6,!,
					Z=Y+1,
					cursor(Z,0)
					;
					cursor(0,0).
	key_menu16(13,Y,COM,CHIP,PC,SAT,US,DD2):-removewindow, find7(Y,COM,CHIP,PC,SAT,US,DD2).
%-----------------------------------------------------
	key_menu17(0,Y,COM,CHIP,PC,SAT,US,DD2,DD3):-inkey(Key), key_menu17(Key,Y,COM,CHIP,PC,SAT,US,DD2,DD3).
	key_menu17(72,Y,COM,CHIP,PC,SAT,US,DD2,DD3):-field_attr(Y,0,23,75),
					Y>0,!,
					Z=Y-1,
					cursor(Z,0)
					;
					cursor(4,0).
	key_menu17(80,Y,COM,CHIP,PC,SAT,US,DD2,DD3):-field_attr(Y,0,23,75),
					Y<4,!,
					Z=Y+1,
					cursor(Z,0)
					;
					cursor(0,0).
	key_menu17(13,Y,COM,CHIP,PC,SAT,US,DD2,DD3):-removewindow, find8(Y,COM,CHIP,PC,SAT,US,DD2,DD3).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
go1(0):-cursorform(2,2),rpt,makewindow(2,75,75,"Company",0,5,17,25),

	write("ASRock"),nl,
	write("ASUS"),nl,
	write("Gigabyte"),
			cursor(0,0),
			rpt,
			cursor(Y,_),
			field_attr(Y,0,23,112),
			inkey(Key),key_menu2(Key,Y),
			fail.
go1(1):-makewindow(10,75,75,"Delete from base",0,5,20,30),
	write("Vvedite Company: "), readln(A),nl,
	write("Vvedite Socket: "), readln(B),nl,
	write("Vvedite Pci_e: "), readint(C),nl,
	write("Vvedite Sata: "), readint(D),nl,
	write("Vvedite Usb: "), readint(E),nl,
	write("Vvedite DDR-2: "), readint(F),nl,
	write("Vvedite DDR-3: "), readint(G),nl,
	removewindow,
	del(A,B,C,D,E,F,G).
go1(2):-makewindow(6,75,75,"Company",0,5,17,25),
	beeP,
	write("ASRock"),nl,
	write("ASUS"),nl,
	write("Gigabyte"),
			cursor(0,0),
			rpt,
			cursor(Y,_),
			field_attr(Y,0,23,112),
			inkey(Key),key_menu10(Key,Y),
			fail.
			
go1(3):-see().
go1(4):-saves(1),exit.
%-----------------------------------------------------
go2(A):-makewindow(3,75,75,"Kolichestvo Pci-E",0,5,17,25),
		write("Pci-e: "),readint(X),removewindow,
		go3(A,X).
%-----------------------------------------------------
go3(A,B):-makewindow(4,75,75,"Kolichestvo Sata",0,5,17,25),
		write("Sata: "),readint(X),removewindow,
		go4(A,B,X).
%-----------------------------------------------------
go4(A,B,C):-makewindow(5,75,75,"Kolichestvo Usb",0,5,17,25),
		write("Usb: "),readint(X),removewindow,
		go5(A,B,C,X).
%-----------------------------------------------------
go5(A,B,C,D):-makewindow(6,75,75,"Kolichestvo DDR-2",0,5,17,25),
		write("DDR-2: "),readint(X),removewindow,
		go6(A,B,C,D,X).
%-----------------------------------------------------
go6(A,B,C,D,E):-makewindow(7,75,75,"Kolichestvo DDR-3",0,5,17,25),
		write("DDR-3: "),readint(X),removewindow,
		go7(A,B,C,D,E,X).
%-----------------------------------------------------
go7(A,B,C,D,E,F):-makewindow(8,75,75,"Company",0,5,17,25),
		write("ASRock"),nl,
		write("ASUS"),nl,
		write("Gigabyte"),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(9,75,75,"Socket",0,5,17,25),
		write("AM3"),nl,
		write("AM2"),nl,
		write("775"),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,assert(motheboard("ASRock","AM3",A,B,C,D,E,F)),saves(0),menu;
		Y=0,G=1,assert(motheboard("ASUS","AM3",A,B,C,D,E,F)),saves(0),menu;
		Y=0,G=2,assert(motheboard("Gigabyte","AM3",A,B,C,D,E,F)),saves(0),menu;
		Y=1,G=0,assert(motheboard("ASRock","AM2",A,B,C,D,E,F)),saves(0),menu;
		Y=1,G=1,assert(motheboard("ASUS","AM2",A,B,C,D,E,F)),saves(0),menu;
		Y=1,G=2,assert(motheboard("Gigabyte","AM2",A,B,C,D,E,F)),saves(0),menu;
		Y=2,G=0,assert(motheboard("ASRock","775",A,B,C,D,E,F)),saves(0),menu;
		Y=2,G=1,assert(motheboard("ASUS","775",A,B,C,D,E,F)),saves(0),menu;
		Y=2,G=2,assert(motheboard("Gigabyte","775",A,B,C,D,E,F)),saves(0),menu.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find1(0):-COM="ASRock",find_menu1(COM).
find1(1):-COM="ASUS",find_menu1(COM).
find1(2):-COM="Gigabyte",find_menu1(COM).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find2(0,COM):-CHIP="AM3",find_menu2(COM,CHIP).
find2(1,COM):-CHIP="AM2",find_menu2(COM,CHIP).
find2(2,COM):-CHIP="775",find_menu2(COM,CHIP).
find2(3,COM):-go1(2).
find2(4,COM):-seeFind1(COM).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find3(0,COM,CHIP):-PC=0,find_menu3(COM,CHIP,PC).
find3(1,COM,CHIP):-PC=1,find_menu3(COM,CHIP,PC).
find3(2,COM,CHIP):-PC=2,find_menu3(COM,CHIP,PC).
find3(3,COM,CHIP):-find_menu1(COM).
find3(4,COM,CHIP):-seeFind2(COM,CHIP).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find4(0,COM,CHIP,PC):-SAT=0,find_menu4(COM,CHIP,PC,SAT).
find4(1,COM,CHIP,PC):-SAT=1,find_menu4(COM,CHIP,PC,SAT).
find4(2,COM,CHIP,PC):-SAT=2,find_menu4(COM,CHIP,PC,SAT).
find4(3,COM,CHIP,PC):-SAT=3,find_menu4(COM,CHIP,PC,SAT).
find4(4,COM,CHIP,PC):-SAT=4,find_menu4(COM,CHIP,PC,SAT).
find4(5,COM,CHIP,PC):-find_menu2(COM,CHIP).
find4(6,COM,CHIP,PC):-seeFind3(COM,CHIP,PC).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find5(0,COM,CHIP,PC,SAT):-US=0,find_menu5(COM,CHIP,PC,SAT,US).
find5(1,COM,CHIP,PC,SAT):-US=1,find_menu5(COM,CHIP,PC,SAT,US).
find5(2,COM,CHIP,PC,SAT):-US=2,find_menu5(COM,CHIP,PC,SAT,US).
find5(3,COM,CHIP,PC,SAT):-US=3,find_menu5(COM,CHIP,PC,SAT,US).
find5(4,COM,CHIP,PC,SAT):-find_menu3(COM,CHIP,PC).
find5(5,COM,CHIP,PC,SAT):-seeFind4(COM,CHIP,PC,SAT).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find6(0,COM,CHIP,PC,SAT,US):-DD2=0,find_menu6(COM,CHIP,PC,SAT,US,DD2).
find6(1,COM,CHIP,PC,SAT,US):-DD2=1,find_menu6(COM,CHIP,PC,SAT,US,DD2).
find6(2,COM,CHIP,PC,SAT,US):-DD2=2,find_menu6(COM,CHIP,PC,SAT,US,DD2).
find6(3,COM,CHIP,PC,SAT,US):-DD2=3,find_menu6(COM,CHIP,PC,SAT,US,DD2).
find6(4,COM,CHIP,PC,SAT,US):-DD2=4,find_menu6(COM,CHIP,PC,SAT,US,DD2).
find6(5,COM,CHIP,PC,SAT,US):-find_menu4(COM,CHIP,PC,SAT).
find6(6,COM,CHIP,PC,SAT,US):-seeFind5(COM,CHIP,PC,SAT,US).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find7(0,COM,CHIP,PC,SAT,US,DD2):-DD3=0,find_menu7(COM,CHIP,PC,SAT,US,DD2,DD3).
find7(1,COM,CHIP,PC,SAT,US,DD2):-DD3=1,find_menu7(COM,CHIP,PC,SAT,US,DD2,DD3).
find7(2,COM,CHIP,PC,SAT,US,DD2):-DD3=2,find_menu7(COM,CHIP,PC,SAT,US,DD2,DD3).
find7(3,COM,CHIP,PC,SAT,US,DD2):-DD3=3,find_menu7(COM,CHIP,PC,SAT,US,DD2,DD3).
find7(4,COM,CHIP,PC,SAT,US,DD2):-DD3=4,find_menu7(COM,CHIP,PC,SAT,US,DD2,DD3).
find7(5,COM,CHIP,PC,SAT,US,DD2):-find_menu5(COM,CHIP,PC,SAT,US).
find7(6,COM,CHIP,PC,SAT,US,DD2):-seeFind6(COM,CHIP,PC,SAT,US,DD2).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find8(0,COM,CHIP,PC,SAT,US,DD2,DD3):-M1=1000,M2=1500,find_menu8(COM,CHIP,PC,SAT,US,DD2,DD3,M1,M2).
find8(1,COM,CHIP,PC,SAT,US,DD2,DD3):-M1=1500,M2=2000,find_menu8(COM,CHIP,PC,SAT,US,DD2,DD3,M1,M2).
find8(2,COM,CHIP,PC,SAT,US,DD2,DD3):-M1=2000,M2=2500,find_menu8(COM,CHIP,PC,SAT,US,DD2,DD3,M1,M2).
find8(3,COM,CHIP,PC,SAT,US,DD2,DD3):-M1=2500,M2=3000,find_menu8(COM,CHIP,PC,SAT,US,DD2,DD3,M1,M2).
find8(4,COM,CHIP,PC,SAT,US,DD2,DD3):-find_menu6(COM,CHIP,PC,SAT,US,DD2).
find8(5,COM,CHIP,PC,SAT,US,DD2,DD3):-seeFind7(COM,CHIP,PC,SAT,US,DD2,DD3).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
seeFind1(COM):-makewindow(20,75,75,"Current",0,10,25,60),
		write("Company  |Socket|Pcie|Sata|Usb|Ddr2|Ddr3|Price\n"),
		write("--------------------------------------------\n"),
		motheboard(COM,B,C,D,E,F,G,H),
		writef("%9|%6|%4|%4|%3|%4|%4|%5",COM,B,C,D,E,F,G,H),nl,fail;true,
		readln(HHH),removewindow,find_menu1(COM).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
seeFind2(COM,CHIP):-makewindow(21,75,75,"Current",0,10,25,60),
		write("Company  |Socket|Pcie|Sata|Usb|Ddr2|Ddr3|Price\n"),
		write("--------------------------------------------\n"),
		motheboard(COM,CHIP,C,D,E,F,G,H),
		writef("%9|%6|%4|%4|%3|%4|%4|%5",COM,CHIP,C,D,E,F,G,H),nl,fail;true,
		readln(HHH),removewindow,find_menu2(COM,CHIP).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
seeFind3(COM,CHIP,PC):-makewindow(21,75,75,"Current",0,10,25,60),
		write("Company  |Socket|Pcie|Sata|Usb|Ddr2|Ddr3|Price\n"),
		write("--------------------------------------------\n"),
		motheboard(COM,CHIP,PC,D,E,F,G,H),
		writef("%9|%6|%4|%4|%3|%4|%4|%5",COM,CHIP,PC,D,E,F,G,H),nl,fail;true,
		readln(HHH),removewindow,find_menu3(COM,CHIP,PC).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
seeFind4(COM,CHIP,PC,SAT):-makewindow(10,75,75,"Current",0,10,25,60),
		write("Company  |Socket|Pcie|Sata|Usb|Ddr2|Ddr3|Price\n"),
		write("--------------------------------------------\n"),
		motheboard(COM,CHIP,PC,SAT,E,F,G,H),
		writef("%9|%6|%4|%4|%3|%4|%4|%5",COM,CHIP,PC,SAT,E,F,G,H),nl,fail;true,
		readln(HHH),removewindow,find_menu4(COM,CHIP,PC,SAT).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
seeFind5(COM,CHIP,PC,SAT,US):-makewindow(10,75,75,"Current",0,10,25,60),
		write("Company  |Socket|Pcie|Sata|Usb|Ddr2|Ddr3|Price\n"),
		write("--------------------------------------------\n"),
		motheboard(COM,CHIP,PC,SAT,US,F,G,H),
		writef("%9|%6|%4|%4|%3|%4|%4|%5",COM,CHIP,PC,SAT,US,F,G,H),nl,fail;true,
		readln(HHH),removewindow,find_menu5(COM,CHIP,PC,SAT,US).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
seeFind6(COM,CHIP,PC,SAT,US,DD2):-makewindow(10,75,75,"Current",0,10,25,60),
		write("Company  |Socket|Pcie|Sata|Usb|Ddr2|Ddr3|Price\n"),
		write("--------------------------------------------\n"),
		motheboard(COM,CHIP,PC,SAT,US,DD2,G,H),
		writef("%9|%6|%4|%4|%3|%4|%4|%5",COM,CHIP,PC,SAT,US,DD2,G,H),nl,fail;true,
		readln(HHH),removewindow,find_menu6(COM,CHIP,PC,SAT,US,DD2).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
seeFind7(COM,CHIP,PC,SAT,US,DD2,DD3):-makewindow(10,75,75,"Current",0,10,25,60),
		write("Company  |Socket|Pcie|Sata|Usb|Ddr2|Ddr3|Price\n"),
		write("--------------------------------------------\n"),
		motheboard(COM,CHIP,PC,SAT,US,DD2,DD3,H),
		writef("%9|%6|%4|%4|%3|%4|%4|%5",COM,CHIP,PC,SAT,US,DD2,DD3,H),nl,fail;true,
		readln(HHH),removewindow,find_menu7(COM,CHIP,PC,SAT,US,DD2,DD3).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find_menu1(COM):-makewindow(6,75,75,"Socket",0,5,17,25),
			write("AM3"),nl,
			write("AM2"),nl,
			write("775"),nl,
			write("Back"),nl,
			write("Pred prosmotr"),
			cursor(0,0),
			rpt,
			cursor(Y,_),
			field_attr(Y,0,23,112),
			inkey(Key),key_menu11(Key,Y,COM),
			fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find_menu2(COM,CHIP):-makewindow(6,75,75,"PCI-E",0,5,17,25),
			write("0"),nl,
			write("1"),nl,
			write("2"),nl,
			write("Back"),nl,
			write("Pred prosmotr"),
			cursor(0,0),
			rpt,
			cursor(Y,_),
			field_attr(Y,0,23,112),
			inkey(Key),key_menu12(Key,Y,COM,CHIP),
			fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find_menu3(COM,CHIP,PC):-makewindow(6,75,75,"SATA",0,5,17,25),
			write("0"),nl,
			write("1"),nl,
			write("2"),nl,
			write("3"),nl,
			write("4"),nl,
			write("Back"),nl,
			write("Pred prosmotr"),
			cursor(0,0),
			rpt,
			cursor(Y,_),
			field_attr(Y,0,23,112),
			inkey(Key),key_menu13(Key,Y,COM,CHIP,PC),
			fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find_menu4(COM,CHIP,PC,SAT):-makewindow(6,75,75,"USB",0,5,17,25),
			write("0"),nl,
			write("1"),nl,
			write("2"),nl,
			write("3"),nl,
			write("Back"),nl,
			write("Pred prosmotr"),
			cursor(0,0),
			rpt,
			cursor(Y,_),
			field_attr(Y,0,23,112),
			inkey(Key),key_menu14(Key,Y,COM,CHIP,PC,SAT),
			fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find_menu5(COM,CHIP,PC,SAT,US):-makewindow(6,75,75,"DDR-2",0,5,17,25),
			write("0"),nl,
			write("1"),nl,
			write("2"),nl,
			write("3"),nl,
			write("4"),nl,
			write("Back"),nl,
			write("Pred prosmotr"),
			cursor(0,0),
			rpt,
			cursor(Y,_),
			field_attr(Y,0,23,112),
			inkey(Key),key_menu15(Key,Y,COM,CHIP,PC,SAT,US),
			fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find_menu6(COM,CHIP,PC,SAT,US,DD2):-makewindow(6,75,75,"DDR-3",0,5,17,25),
			write("0"),nl,
			write("1"),nl,
			write("2"),nl,
			write("3"),nl,
			write("4"),nl,
			write("Back"),nl,
			write("Pred prosmotr"),
			cursor(0,0),
			rpt,
			cursor(Y,_),
			field_attr(Y,0,23,112),
			inkey(Key),key_menu16(Key,Y,COM,CHIP,PC,SAT,US,DD2),
			fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find_menu7(COM,CHIP,PC,SAT,US,DD2,DD3):-makewindow(6,75,75,"Price",0,5,17,25),
			write("1k..1,5k"),nl,
			write("1,5k..2k"),nl,
			write("2k..2,5k"),nl,
			write("2,5k..3k"),nl,
			write("Back"),
			cursor(0,0),
			rpt,
			cursor(Y,_),
			field_attr(Y,0,23,112),
			inkey(Key),key_menu17(Key,Y,COM,CHIP,PC,SAT,US,DD2,DD3),
			fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
find_menu8(COM,CHIP,PC,SAT,US,DD2,DD3,M1,M2):-makewindow(6,75,75,"Price",0,5,25,60),
		write("Company  |Socket|Pcie|Sata|Usb|Ddr2|Ddr3|Price\n"),
		write("--------------------------------------------\n"),
		motheboard(COM,CHIP,PC,SAT,US,DD2,DD3,H),
		H>=M1,H<=M2,
		writef("%9|%6|%4|%4|%3|%4|%4|%5",COM,CHIP,PC,SAT,US,DD2,DD3,H),nl,fail;true,
		readln(HHH),removewindow,menu.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
menu :- makewindow(1,75,75,"Motheboards",0,0,8,18),
		clearwindow,
		write("Add to base"),nl,
		write("Del from dase"),nl,
		write("Find in base"),nl,
		write("See base"),nl,
		write("Exit"),nl,
		cursor(0,0),
		rpt,
		cursor(Y,_),
		field_attr(Y,0,16,112),
		inkey(Key),key_menu1(Key,Y),
		fail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
see():-makewindow(10,75,75,"All base",0,10,25,60),
		write("Company  |Socket|Pcie|Sata|Usb|Ddr2|Ddr3|Price\n"),
		write("--------------------------------------------\n"),
		motheboard(A,B,C,D,E,F,G,H),
		writef("%9|%6|%4|%4|%3|%4|%4|%5",A,B,C,D,E,F,G,H),nl,fail;true,
		readln(HHH),removewindow,menu.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
del(A,B,C,D,E,F,G):-retract(motheboard(A,B,C,D,E,F,G,_)),fail;true,saves(0).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
goal
		consult("1.txt",db1),
		menu.