sintax1
/* sintax1.pro */ /* esempio sintassi prolog */
nowarnings
domains N = integer Reale = real L = char Stringa1,Stringa2,Tolta = string
include "menu.pro"
predicates fine pulisci finestra elabora1(integer) elabora2(integer) elabora3(integer) termine1(integer) termine2(integer) termine3(integer) scelta(integer) scelta1(integer) scelta2(integer) scelta3(integer) elabora(integer) azione1 azione2 azione3 azione4 azione5 azione6 azione finestra1 termine(integer) goal finestra,azione.
clauses finestra:- makewindow(1,5,1,"",1,1,17,60), makewindow(2,7,1,"",15,40,5,40).
pulisci:- shiftwindow(2),beep, write("premi ENTER per proseguire"), readchar(_),clearwindow,shiftwindow(1), clearwindow.
finestra1:-shiftwindow(1),clearwindow. azione:- menu(2,40,[funzioni_matematiche, richiesta_dati,funzioni_stringa, funzioni_conversione, funzioni_scrittura, funzioni_schermo,fine],Scelta), elabora(Scelta), termine(Scelta),!. elabora(0). elabora(1):-Scelta(1). elabora(2):-Scelta(2). elabora(3):-Scelta(3). elabora(4):-Scelta(4). elabora(5):-Scelta(5). elabora(6):-Scelta(6). termine(7). termine(0). Scelta(1):-azione1. Scelta(2):-azione2. Scelta(3):-azione3. Scelta(4):-azione4. Scelta(5):-azione5. Scelta(6):-azione6. Scelta(7):-fine.
azione1:- clearwindow, menu(2,30,[funzioni_matematiche, menu_principale],Scelta), elabora1(Scelta), termine1(Scelta),!. elabora1(0). elabora1(1):-scelta1(1). elabora1(2):-scelta1(2). termine1(2). termine1(0). scelta1(1):- finestra1, write("funzioni matematiche\n"), X=10,Y=4, Somma=X+Y,Differenza=X-Y,Prodotto=X*Y, Quoziente=X/Y,Divisione=X div Y, Resto=X mod Y, write("numeri da elaborare:",X,"..",Y),nl, write("somma.......+........",Somma),nl, write("differenza..-........",Differenza),nl, write("prodotto....*........",Prodotto),nl, write("quoziente.../........",Quoziente),nl, write("divisione...div........",Divisione),nl, write("resto.......mod........",Resto),nl, write("-------------------------------"),nl, Radice=sqrt(100),Quadrato=X*X, Cubo=Quadrato*X,Esponenziale=exp(Y), Arrotondamento=round(77.98), Assoluto=abs(-6), write("sqrt(100).........",Radice),nl, write("quadrato 10*10....",Quadrato),nl, write("cubo=quadrato*X...",Cubo),nl, write("esponenz. exp(4)..",Esponenziale),nl, write("round(77.98)......",Arrotondamento),nl, write("assoluto abs(-6) .",Assoluto),nl, Random(R), write("random(reale).....",R),nl, pulisci, Loga10=log(100)/log(10), Lona=Ln(100),Seno=sin(30*3.14/180), Coseno=cos(30*3.14/180), Tangente=tan(30*3.14/180), Arcotangente=arctan(1), write("log(100)/log(10)..",Loga10),nl, write("ln(100)...........",Lona),nl, write("sin(30*3.14/180)..",Seno),nl, write("cos(30*3.14/180)..",Coseno),nl, write("tan(30*3.14/180)..",Tangente),nl, write("arctan(1).........",Arcotangente),nl, pulisci, azione1. scelta1(2):-write("ritorno a menu principale\n"), azione.
azione2:- clearwindow, menu(5,50,[richiesta_dati, torna_a_menu_principale], Scelta), elabora2(Scelta), termine2(Scelta),!. elabora2(0). elabora2(1):-scelta2(1). elabora2(2):-scelta2(2). termine2(2). termine2(0). scelta2(1):- finestra1, write("richiesta di dati\n"), write("readint(Intero)\n"),readint(Intero), write("readreal(Reale)\n"),readreal(Reale), write("readln(Stringa)\n"),readln(Stringa), write("readchar(Carattere)\n"),readchar(C), write(C), pulisci, beep,azione2. scelta2(2):-write("ritorno a menu principale\n "), beep,azione.
azione3:- clearwindow, menu(6,40,[funzioni_stringa,menu_principale],Scelta), elabora3(Scelta), termine3(Scelta),!. elabora3(0). elabora3(1):-scelta3(1). elabora3(2):-scelta3(2). termine3(2). termine3(0). scelta3(1):- finestra1, write("funzioni stringa \n"), Stringa1="padovano", write("frontchar(Stringa1,CHAR,Stringa2 "),nl, frontchar(Stringa1,Carattere,Stringa2), write(Stringa1,"\t",Carattere,"\t",Stringa2),nl, write("-------------------------"),nl, write("str_len(Stringa,Integer) "),nl, str_len(Stringa1,N), write(Stringa1,"\t",N),nl, write("------------------------"),nl, S1="maria",S2="rosa", write("concat(S1,S2,S3) "),nl, concat(S1,S2,S3), write(S1,"\t",S2,"\t",S3),nl, write("------------------------"),nl, Nome1=maria, isname(Nome1), write("isname(nome1) "),write(Nome1),nl, Nome2="asia", isname(Nome2), write("isname(nome2) "),write(Nome2),nl, write("------------------------"),nl, write("frontstr(numero,SQ,Tolta,Residua)"),nl, SQ=americano, frontstr(3,SQ,Tolta,Residua), write(SQ,"\t",Tolta,"\t",Residua), pulisci, beep,azione3. scelta3(2):-write("torna a menu principale\n"), beep,azione.
azione4:- finestra1, write(" funzioni_conversione,menu_principale "),nl, char_int('A',N), write("char_int(char,integer)..A..N....."), write(N),nl, str_int("65",M), write("str_int(string,integer)..65..M.."), write(N),nl, str_char(a,Carattere), write("str_char(string,char)..a..Carat..."), write(Carattere),nl, str_real("123.456",Reale), write("str_real(string,Real)..123.456..R..."), write(Reale),nl, upper_lower("AMERICA",Sm), write("upper_lower(string,string)..AMERICA.Sm.."), write(Sm),nl, pulisci, beep,azione. azione5:- finestra1, write("funzioni scrittura \n"), write("write(6)...... "),write(6),nl, X=10, write("write(X)...10.."),write(X),nl, S="America e asia", write("write(S)..America e asia .."), write(S),nl, pulisci, azione.
azione6:- finestra1, write("funzioni video e cursore \n"), write("scr_char(3,4,'a'..."),scr_char(3,4,'a'),nl, scr_char(3,10,'A'),readchar(_), write("scr_attr(3,10,4)...."),scr_attr(3,10,4),nl, cursor(6,6),write("asiatica"),nl, field_str(6,6,3,S), cursor(6,46),write(S),nl, write("field_str(6,6,3,asiatica "),nl, cursor(8,6),write("america e asia"),nl, field_attr(8,6,4,3), write("field_attr(8,6,4,3).."),nl, pulisci, write("cursor(riga,colonna).."), cursor(10,10), write("cursorform(1,6)..."),nl, cursorform(1,6),nl, write("attribute(2) "),nl, attribute(2),write("colore assegnato"),nl, pulisci, attribute(6), cursorform(4,4), pulisci, write("attivazione sonora"),nl, write("sound(Durata,Altezza)..sound(100,500)"),nl, sound(100,500), write("segnale con BEEP "),beep,beep,nl, write("luce pulsante 128+codice colore "),nl, attribute(132), write("rosso pulsante 132" ),nl, attribute(4),write("rosso normale 4"),nl, write("date(Anno,Mese,Giorno)..."),nl, date(Anno,Mese,Giorno), write(Anno,"\t",Mese,"\t",Giorno),nl, write("time(Ora,Minuti,Secondi,Centesimi)"),nl, time(Ora,Minuti,Secondi,Centesimi), write(Ora,"\t",Minuti,"\t",Secondi,"\t",Centesimi),nl, pulisci, write("edit(Stringa1,Stringa2).."),nl, write("premi ENTER "), beep,readchar(_), Sa="stringa originaria:premi ESC", edit(Sa,Sb), pulisci, write("display(Stringa).."),nl, Sc="stringa per display:premi ESC", display(Sc), pulisci, write("dir(A:,*.*,INDICE).."),nl, write("premi ENTER ora e dopo la DIR "), readchar(_), disk("A:"), dir("A:","*.*",INDICE), pulisci, azione. fine:- clearwindow, write("fine prove\n"),beep.