prolo18
iterazione e cicli vari
/* ciclo1.pro */ /* stampa numeri crescenti e decrescenti */
domains Contatore ,Contatore1 = integer predicates calcola(Contatore) calcola1(Contatore)
goal makewindow(1,7,7,"stampa numeri da 10 a 1",1,1,20,70), calcola(10), sound(400,600), clearwindow(), removewindow(), makewindow(1,6,2,"numeri da 1 a 14",1,1,20,60), calcola1(1).
clauses calcola(Contatore) :- Contatore>0,!, write(Contatore),nl, Contatore2=Contatore-1, calcola(Contatore2). calcola(0).
calcola1(Contatore1):- Contatore1<15,!, write(Contatore1),nl, Contatore3=Contatore1+1, calcola1(Contatore3). calcola1(0).
/* ciclo2.pro */ /* stampa numeri pari e dispari */
domains Contatore ,Contatore1 = integer predicates calcola(Contatore) calcola1(Contatore)
goal makewindow(1,7,7,"stampa numeri pari",1,1,20,70), calcola(2), sound(400,600), clearwindow(), removewindow(), makewindow(1,6,2,"numeri dispari",1,1,20,60), calcola1(1).
clauses calcola(Contatore) :- Contatore<20,!, write(Contatore),nl, Contatore2=Contatore+2, calcola(Contatore2). calcola(_).
calcola1(Contatore1):- Contatore1<20,!, write(Contatore1),nl, Contatore3=Contatore1+2, calcola1(Contatore3). calcola1(0).
/* ciclo3.pro */ /* richiesta numeri ed esecuzione prodotto */
domains Contatore,N = integer predicates calcola(Contatore)
goal makewindow(1,7,7,"esegue prodotto",1,1,20,70), calcola(1), sound(400,600).
clauses calcola(Contatore) :- Contatore<6,!, write("scrivi numero intero:"),readint(N), Prodotto=Contatore*N, write("contatore..",Contatore,"..prodotto=", Prodotto),nl, write("--------------------------"),nl, Contatore2=Contatore+1, calcola(Contatore2). calcola(_).
/* ciclo4.pro */ /* richiesta dati tipo stringa */
domains Contatore = integer Nome = string
predicates calcola(Contatore)
goal makewindow(1,7,7,"richiesta dati",1,1,20,70), calcola(1), sound(400,600).
clauses calcola(Contatore) :- Contatore<6,!, write("scrivi nome persona:"),readln(Nome), write("contatore..",Contatore,"..nome=", Nome),nl, write("--------------------------"),nl, Contatore2=Contatore+1, calcola(Contatore2). calcola(_).