prova11
/* prova16.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 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, write("somma=",Somma).
richiesta(3):- write("scrivi due numeri interi"),nl, readint(X),readint(Y),Prodotto=X*Y, write("prodotto=",Prodotto).
fine:- write("......fine prova").