/* ori4.mar */

nowarnings
domains
 nome=symbol
 voti,N=integer
predicates
 studente(nome,voti,voti,voti,voti,voti)
 azione
 elabora(integer)
 bocciato
 promosso
 respinto
 archivio
 somma
 opera
 aiutato
 goal azione.
clauses
 azione:-
 makewindow(1,5,1,"",1,1,20,78),opera.
 opera:-
 write("-----------------------"),nl,
 write("scrivi 1:archivio"),nl,
 write("scrivi 2:promossi in ogni materia"),nl,
 write("scrivi 3:bocciati in qualche materia"),nl,
 write("scrivi 4:somma e media voti"),nl,
 write("scrivi 5:promosso con aiuto"),nl,
 write("scrivi 6:respinto"),nl,
 write("scrivi 0:fine"),nl,
 readint(N),
 clearwindow,
 elabora(N).
 elabora(1):-archivio.
 elabora(2):-promosso.
 elabora(3):-bocciato.
 elabora(4):-somma.
 elabora(5):-aiutato.
 elabora(6):-respinto.
 elabora(0):-exit.
 archivio:-
 write("stampa archivio dati completo"),nl,
 studente(X,A,B,C,D,E),
 write(X,"\t",A,"\t",B,"\t",C,"\t",D,"\t",E),
 nl,fail;opera.
 promosso:-
 write("stampa nomi studenti promossi"),nl,
 studente(X,A,B,C,D,E),
 A>5,B>5,C>5,D>5,E>5,
 write("promosso:",X),nl,fail;opera.
 bocciato if
  studente(X,A,B,C,D,E),A<6,write(X,"\t",A),nl,fail;
  studente(X,A,B,C,D,E),B<6,write(X,"\t",B),nl,fail;
  studente(X,A,B,C,D,E),C<6,write(X,"\t",C),nl,fail;
  studente(X,A,B,C,D,E),D<6,write(X,"\t",D),nl,fail;
  studente(X,A,B,C,D,E),E<6,write(X,"\t",E),nl,fail;
  opera.
 somma:-
 write("stampa somma voti e media arrotondata"),nl,
 studente(X,A,B,C,D,E),
 S=A+B+C+D+E,
 M=(S/5),
 Q=round(M),
 write(X,"\t",S,"\t",M,"\t",Q),nl,fail;opera.
 
 aiutato:-
 write("alunni promossi con aiuto"),nl,
 studente(X,A,B,C,D,E),
 S=A+B+C+D+E,
 M=S/5,
 M<6,
 Q=round(M),
 Q>5,
 write(X,"\t",M,"\t",Q,"\tpromosso"),nl,
 fail;opera.

 respinto:-
 write("alunni respinti"),nl,
 studente(X,A,B,C,D,E),
 S=A+B+C+D+E,
 M=S/5,
 M<6,
 Q=round(M),
 Q<=5,
 write(X,"\t",M,"\t",Q,"\trespinto"),nl,
 fail;opera.

 studente(mario,5,6,7,6,6).
 studente(carlo,8,9,8,7,6).
 studente(anna,8,7,6,8,8).
 studente(luigi,4,5,6,7,7).
 studente(aldo,6,7,4,6,3).  

+------------------------------------------
¦+-----------------------------------------
+¦-----------------------
+¦scrivi 1:archivio
¦¦scrivi 2:promossi in ogni materia
¦¦scrivi 3:bocciati in qualche materia
¦¦scrivi 4:somma e media voti
¦¦scrivi 5:promosso con aiuto
¦¦scrivi 6:respinto
¦¦scrivi 0:fine
¦¦
¦¦
¦¦
+-----------------------------------------------
¦+----------------------------------------------
+¦stampa archivio dati completo
+¦mario   5       6       7       6       6
¦¦carlo   8       9       8       7       6
¦¦anna    8       7       6       8       8
¦¦luigi   4       5       6       7       7
¦¦aldo    6       7       4       6       3
¦¦-----------------------
¦¦scrivi 1:archivio
¦¦scrivi 2:promossi in ogni materia
¦¦scrivi 3:bocciati in qualche materia
¦¦scrivi 4:somma e media voti
¦¦scrivi 5:promosso con aiuto
¦¦scrivi 6:respinto
¦¦scrivi 0:fine
¦¦
+¦
+------------------------------------------
¦+-----------------------------------------
+¦stampa nomi studenti promossi
+¦promosso:carlo
¦¦promosso:anna
¦¦-----------------------
¦¦scrivi 1:archivio
¦¦scrivi 2:promossi in ogni materia
¦¦scrivi 3:bocciati in qualche materia
¦¦scrivi 4:somma e media voti
¦¦scrivi 5:promosso con aiuto
¦¦scrivi 6:respinto
¦¦scrivi 0:fine
¦¦
¦¦
+-----------------------------------------
¦+----------------------------------------
+¦mario   5
+¦luigi   4
¦¦luigi   5
¦¦aldo    4
¦¦aldo    3
¦¦-----------------------
¦¦scrivi 1:archivio
¦¦scrivi 2:promossi in ogni materia
¦¦scrivi 3:bocciati in qualche materia
¦¦scrivi 4:somma e media voti
¦¦scrivi 5:promosso con aiuto
¦¦scrivi 6:respinto
¦¦scrivi 0:fine
¦¦
¦¦
+¦
+-------------------------------------------
¦+------------------------------------------
+¦stampa somma voti e media arrotondata
+¦mario   30      6       6
¦¦carlo   38      7.6     8
¦¦anna    37      7.4     7
¦¦luigi   29      5.8     6
¦¦aldo    26      5.2     5
¦¦-----------------------
¦¦scrivi 1:archivio
¦¦scrivi 2:promossi in ogni materia
¦¦scrivi 3:bocciati in qualche materia
¦¦scrivi 4:somma e media voti
¦¦scrivi 5:promosso con aiuto
¦¦scrivi 6:respinto
¦¦scrivi 0:fine
¦¦
+¦
+--------------------------------------------
¦+-------------------------------------------
+¦alunni promossi con aiuto
+¦luigi   5.8     6       promosso
¦¦-----------------------
¦¦scrivi 1:archivio
¦¦scrivi 2:promossi in ogni materia
¦¦scrivi 3:bocciati in qualche materia
¦¦scrivi 4:somma e media voti
¦¦scrivi 5:promosso con aiuto
¦¦scrivi 6:respinto
¦¦scrivi 0:fine
¦¦
¦¦
¦¦
+-------------------------------------------
¦+------------------------------------------
+¦alunni respinti
+¦aldo    5.2     5       respinto
¦¦-----------------------
¦¦scrivi 1:archivio
¦¦scrivi 2:promossi in ogni materia
¦¦scrivi 3:bocciati in qualche materia
¦¦scrivi 4:somma e media voti
¦¦scrivi 5:promosso con aiuto
¦¦scrivi 6:respinto
¦¦scrivi 0:fine
¦¦
¦¦
¦¦
¦¦

ritorna