Exerciții Model parțial, Exercițiul 8

Angajați pe departament — 3 interogări findall

Fie următoarea bază de cunoștințe, definită de predicatele:

  • employee_info(Name, DepartmentNumber, Scale)
  • department(DepartmentNumber, DepartmentName)
  • salary(Scale, Amount)

a) Determinați toți angajații din departamentul 1 și care au Scale > 2.

?- employee_info(Name, DepartmentNumber, Scale), DepartmentNumber = 1, Scale > 2.

Acum, puneți toate aceste rezultate într-o singură listă.

b) Determinați toți angajații dintr-un anumit departament.

c) Selectați Name și Scale al angajaților din departamentul 1 cu Scale > 3.

Hint: trei apeluri separate la findall/3 cu diferite constrângeri în Goal.

Te-ai blocat?
editor soluție
?-
Tastează o interogare (ex. father_of(sandra, X).) și apasă Enter — sau apasă pe un caz de test de mai jos.
Cazuri de test (3 — apasă pe unul ca să îl rulezi, sau Verifică pentru toate)
?
employees_from_department_eq_1_with_scale_gt_2(R). așteptat: R = [mcardon,cohn,duffy]
?
employees_from_department(1, R). așteptat: R = [mcardon,chapman,cohn,duffy]
?
employees_from_department_eq_1_with_scale_gt_3(R). așteptat: R = [(mcardon,5),(cohn,7),(duffy,9)]