.


:




:

































 

 

 

 





 

򳺿 . .

findall (_). . :

findall (Variable, Predicat_expression, List_name),

List_name ' , Predicat_expression , ; VariablePredicat_expression, List_name.

( 4.7).

/* 4.7 */

domains

number, salary=integer

name=string

list_worker=name*

predicates

work (name, number, salary)

clauses

work (, 101. 500).

work (, 211,400).

work (, 101,300).

work (, 101,200).

work (), . , , , , .. .

.

. domains findall :

findall (Name, work (Name, 101, _), List_Name),

Name , work (Name, 101, _). , Name , List_Name . findall List_Name 101 .

4.7 , findall , , . , , .

, , .

work () . 4.8 .

/* 4.8 */

domains

number,salary=integer

name=string

list_salary=salary*

predicates

work (name,number,salary)

sum_list (list_salary,salary,integer)

show_sum

find_sum (number)

clauses

show_sum:-makewindow (1,7,15, ":",5, 10, 12, 30), cursor (2,1), write (" -> "), readint (Otd), find_sum (td), readchar (_).

find_sum (td) :- findall (Many, work (_, Otd, Many), Lmany), sum_list (Lmany, Sum, Member), write ( :, Sum), nl, write (: , Member), nl, Ave=Sum/Member, write ( /: , Ave), nl.

sum_list ([] ,0,0).

sum_list ([ H|T ], Sum, Num) :- sum_list (T, S, N), Sum=H+S, Num=N+1.

work (, 101. 500).

work (, 211,400).

work (, 101,300).

work (, 101,200).

show_sum , find_sum ().

find_sum () work () Lmany, , .

sum_list. ³ .

sum_list , , .

 





:


: 2015-11-05; !; : 332 |


:

:

, ,
==> ...

1701 - | 1687 -


© 2015-2024 lektsii.org - -

: 0.01 .