88 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Prolog
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Prolog
		
	
	
	
	
	
% generated: 17 November 1989
 | 
						|
% option(s): SOURCE_TRANSFORM_1
 | 
						|
%
 | 
						|
%   query
 | 
						|
%
 | 
						|
%   David H. D. Warren
 | 
						|
%
 | 
						|
%   query population and area database to find coun-
 | 
						|
%   tries of approximately equal population density
 | 
						|
 | 
						|
q:-	statistics(runtime,[S|_]), 
 | 
						|
	query,
 | 
						|
	statistics(runtime,[S1|_]), Y is S1-S,
 | 
						|
	write('time : '), write(Y), nl,
 | 
						|
	true.
 | 
						|
 | 
						|
test :- query.
 | 
						|
 | 
						|
query :- query(_), fail.
 | 
						|
query.
 | 
						|
 | 
						|
query([C1,D1,C2,D2]) :- 
 | 
						|
    density(C1,D1), 
 | 
						|
    density(C2,D2),
 | 
						|
    D1 > D2,
 | 
						|
    T1 is 20*D1,
 | 
						|
    T2 is 21*D2,
 | 
						|
    T1 < T2.
 | 
						|
 | 
						|
density(C,D) :- 
 | 
						|
    pop(C,P),
 | 
						|
    area(C,A),
 | 
						|
    D is (P*100)//A.
 | 
						|
 | 
						|
% populations in 100000's
 | 
						|
pop(china,	8250).
 | 
						|
pop(india,	5863).
 | 
						|
pop(ussr,	2521).
 | 
						|
pop(usa,	2119).
 | 
						|
pop(indonesia,	1276).
 | 
						|
pop(japan,	1097).
 | 
						|
pop(brazil,	1042).
 | 
						|
pop(bangladesh,	 750).
 | 
						|
pop(pakistan,	 682).
 | 
						|
pop(w_germany,	 620).
 | 
						|
pop(nigeria,	 613).
 | 
						|
pop(mexico,	 581).
 | 
						|
pop(uk,		 559).
 | 
						|
pop(italy,	 554).
 | 
						|
pop(france,	 525).
 | 
						|
pop(philippines, 415).
 | 
						|
pop(thailand,	 410).
 | 
						|
pop(turkey,	 383).
 | 
						|
pop(egypt,	 364).
 | 
						|
pop(spain,	 352).
 | 
						|
pop(poland,	 337).
 | 
						|
pop(s_korea,	 335).
 | 
						|
pop(iran,	 320).
 | 
						|
pop(ethiopia,	 272).
 | 
						|
pop(argentina,	 251).
 | 
						|
 | 
						|
% areas in 1000's of square miles
 | 
						|
area(china,     3380).
 | 
						|
area(india,     1139).
 | 
						|
area(ussr,      8708).
 | 
						|
area(usa,       3609).
 | 
						|
area(indonesia,  570).
 | 
						|
area(japan,      148).
 | 
						|
area(brazil,    3288).
 | 
						|
area(bangladesh,  55).
 | 
						|
area(pakistan,   311).
 | 
						|
area(w_germany,   96).
 | 
						|
area(nigeria,    373).
 | 
						|
area(mexico,     764).
 | 
						|
area(uk,          86).
 | 
						|
area(italy,      116).
 | 
						|
area(france,     213).
 | 
						|
area(philippines, 90).
 | 
						|
area(thailand,   200).
 | 
						|
area(turkey,     296).
 | 
						|
area(egypt,      386).
 | 
						|
area(spain,      190).
 | 
						|
area(poland,     121).
 | 
						|
area(s_korea,     37).
 | 
						|
area(iran,       628).
 | 
						|
area(ethiopia,   350).
 | 
						|
area(argentina, 1080).
 |