Ласло Краус |
ПЈМП Први парцијални испит 7. 3. 1998. |
---|
lecenje(
Lekar,
Pacijent,
Bolest)
,
lek(
Bolest,
Lek)
и
pacijent(
Pacijent,
Alergija)
,
где Alergija
представља лек који пацијент не сме да узима.
Саставити правила на Prolog-у помоћу којих могу да се добију одговори на
питања
Који је лек прописао неки лекар? и
Који лек узима неки пацијент?.[L,P,D]
,
где су P
податак у корену стабла, L
лево
подстабло чији чворови садрже само податке који су мањи од P
,
а D
десно подстабло чији чворови садрже само податке који су
већи од P
. Саставити правила на Prolog-у за одређивање на
ком се нивоу у стаблу налази неки податак. Корен стабла је на нивоу 0.
#include <math.h>
double urng ();
double rng () {
double u=urng();
return u<0.5 ? -2 + sqrt (2*u) :
2 - sqrt (2-2*u);
}
Резултујући код: 0110 1000 0000 1010 1000 1101 000
#include <gks.h>
void main ()
int rs_tip=GWS_VT340, i, j;
Gpoint polje[4];
Glimit prozor = {0, 8, 0, 8}, slika = (0, 0.6, 0, 0.6};
gopengks (0, 0);
gopenws (10, "tt:", &rs_tip);
gactivatews (10);
gsetwindow (1, &prozor);
gseltran (1);
for (i=0; i<8; i++) {
polje[0].x = polje[1].x = i;
polje[2].x = polje[3].x = i+1;
for (j=0; j<8; j++) {
polje[0].y=polje[3].y=j;
polje[1].y=polje[2].y=j+1;
gsetfillcolourind(1+(i+j)%2);
gfillarea (4, polje);
}
}
gdeactivatews (10);
gclosews (10);
gclosegks ();
}
propisao(Lekar,Lek) :-
lecenje(Lekar,_,Bolest),
lek(Bolest,Lek).
uzima(Pacijent,Lek) :-
lecenje(_,Pacijent,Bolest),
lek(Bolest,Lek),
not(pacijent(Pacijent,Lek)).
nivo([[],P,[]],P,0).
nivo([L,K,D],P,N) :-
K < P, nivo(L,P,N1), N is N1+1.
nivo([L,K,D],P,N) :-
K > P, nivo(D,P,N1), N is N1+1.
(⇒ почетак)
Copyright © 1999, Laslo Kraus
Последња ревизија: 23.10.1998.