listati da Prolog2
listati da copiare e incollare su notes e salvare come file.PRO
richiamabili in ambiente Prolog

esci listaprolog.htm

 

 

/* kramer2.mar */
/* soluzione e discussione sistema con kramer*/
/* valori interi o reali */

nowarnings
domains
predicates
azione
opera
tasto
verifica(integer,integer,integer)
elabora(integer)
calcola
goal azione.
clauses
azione:-makewindow(1,5,1,"",1,1,20,78),opera.
opera:-
clearwindow,
write("scrivi 1 per calcolo sistema"),nl,
write("scrivi 0 per finire"),nl,
readint(N),clearwindow,
elabora(N).
elabora(1):-calcola.
elabora(0):-exit.
calcola:-
write("soluzione sistema con 2 equazioni"),nl,
write("a1x + b1y = c1"),nl,
write("a2x + b2y = c2"),nl,
write("scrivi valori interi ,seguiti da enter"),nl,
write("prima equazione:"),nl,
write("a1="),readreal(A1),
write("b1="),readreal(B1),
write("c1="),readreal(C1),
write("seconda equazione:"),nl,
write("a2="),readreal(A2),
write("b2="),readreal(B2),
write("c2="),readreal(C2),
DS=A1*B2-A2*B1,
DX=C1*B2-C2*B1,
DY=A1*C2-A2*C1,
verifica(DS,DX,DY).
verifica(DS,DX,DY):-
DS<>0,
X=DX/DS,
Y=DY/DS,
write("soluzione sistema determinato:"),nl,
write("x=",X),nl,
write("y=",Y),nl,tasto,opera;
DS=0,DX=0,
write("indeterminato"),nl,tasto,opera;
DS=0,DX<>0,
write("impossibile"),nl,tasto,opera.

tasto:-
makewindow(3,3,2,"",20,60,3,15),
write("premi enter"),
readchar(_),removewindow,gotowindow(1).