prova12


 

/* prova17.pro */
/* attiva INCLUDE MENU.PRO */
/* attivazione menu e scelta opzioni */
/* con ritorno a menu chiamante */
/* con riduzione opzioni menu */
/* con richiesta dati su input */
nowarnings
include "menu.pro"
domains
Enter    = char
predicates
azione
stampa(integer)
termine(integer)
elabora(integer)
scelta(integer)
richiesta(integer)
fine
goal 
makewindow(1,7,1,"",1,1,20,60),
azione.
clauses 
 azione:-
 write("\n"),
 write("premi enter\n"),
 readchar(Enter),
 clearwindow,
 write("scegli opzione con tasti frecce\n"),
 menu(3,40, [".1.scelta1...informa........",
             ".2.scelta2...somma..........",
             ".3.scelta3...prodotto....",
             ".4.scelta4..fine............"],
             SCELTA),
             elabora(SCELTA),
             termine(SCELTA),!.
 elabora(0).
 elabora(1):-scelta(1).
 elabora(2):-scelta(2).            
 elabora(3):-scelta(3).
 elabora(4):-scelta(4).
 termine(4).
 termine(0).
 scelta(1):-write("scelta1"),nl,
 write("seleziona opzioni da menu.."),
 write("per elaborazione aritmetica "),nl,
 write("su numeri interi da inserire\n"),
 Write("premere ENTER dopo ogni numero\n "),
 azione.
 
 
 scelta(2):-write("scelta2..somma\n"),
 sound(100,600),richiesta(2),
 azione.
 
 
 scelta(3):-write("scelta 3..prodotto\n"),
          sound(100,700),richiesta(3),
          azione.
 
 
 scelta(4):-write("fine chiamate"),
 sound(100,600),fine.
 
 richiesta(2):-
 write("scrivi due numeri interi"),nl,
 write("separandoli con ENTER \n"),
 readint(X),readint(Y),Somma=X+Y,stampa(Somma). 
 
 richiesta(3):-
 write("scrivi due numeri interi"),nl,
 readint(X),readint(Y),Prodotto=X*Y,
 stampa(Prodotto).
 stampa(N):-
 Write("risultato=",N).            
 
 fine:-
 write("......fine prova").