prolo5z
/* grafi5.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* attivazione grafica con TURTLE */
domains intero= integer angolo= integer Predicates disegna(Intero,Intero,Intero,intero) /* inizio linee,numero disegni,angolo */ Goal graphics(1,7,1),attribute(1), disegna(100,100,100,10).
Clauses disegna(Riga1,Colonna1,Contatore,Angolo) :- Contatore>0,!, pendown, pencolor(5), right(Angolo), forward(2000), Colonna2=Colonna1+20, Riga2=Riga1+20, Angolo2=Angolo+10, Contatore2=Contatore-1, disegna(Riga2,Colonna2,Contatore2,Angolo2). Disegna(_,_,0,0) :-sound(100,500),cursor(18,2).
/* grafi6.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* attivazione grafica con TURTLE */ /* disegna quadrato o triangolo */
domains intero= integer angolo= integer Predicates disegna(Intero,Intero,Intero,intero) /* inizio linee,numero disegni,angolo */ Goal graphics(1,7,1),attribute(1), disegna(100,100,4,90). /* 3,120 per triangolo */ /* 4,90 per quadrato */ Clauses disegna(Riga1,Colonna1,Contatore,Angolo) :- Contatore>0,!, pendown, pencolor(5), right(Angolo), forward(10000), Colonna2=Colonna1+20, Riga2=Riga1+20, Contatore2=Contatore-1, disegna(Riga2,Colonna2,Contatore2,Angolo). Disegna(_,_,0,0) :-sound(100,500),cursor(18,2).
/* grafi7.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* attivazione grafica con DOT e LINE */
domains intero= integer Predicates disegna(Intero,Intero,Intero) Goal graphics(1,7,1),attribute(1), disegna(100,100,100). Clauses disegna(Riga1,Colonna1,N):- N>0,!, Colore=2, line(Riga1,2000,Riga1,10000,3), dot(Riga1,Colonna1,Colore), Riga2=Riga1+200, Colonna2=Colonna1+200, N2=N-1, disegna(Riga2,Colonna2,N2).
/* sencos1.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna COSINUSOIDE e sinusoide con DOT */
domains intero= integer Predicates disegna(Intero,Intero,Intero) Goal graphics(1,7,1),attribute(1), write("\tCosinusoide-Sinusoide\n\n"), line(16000,1000,16000,32000,7), line(1000,1000,30000,1000,7), disegna(16000,1000,1440). Clauses disegna(Riga1,Colonna1,N):- N>0,!, Colore=2, Riga2=16000+round(5000*sin(N*3.14/180)), Riga3=16000+round(5000*cos(N*3.14/180)), dot(Riga3,Colonna1,7), dot(Riga2,Colonna1,Colore), Colonna2=Colonna1+20, N2=N-1, disegna(Riga1,Colonna2,N2). disegna(_,_,_).
/* sencos2.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna COSINUSOIDE e sinusoide piena con Line */
domains intero= integer Predicates disegna(Intero,Intero,Intero) Goal graphics(1,7,1),attribute(1), write("\tCosinusoide-Sinusoide\n\n"), line(16000,1000,16000,32000,7), line(1000,1000,30000,1000,7), disegna(16000,1000,1440). Clauses disegna(Riga1,Colonna1,N):- N>0,!, Colore=2, Riga2=16000+round(5000*sin(N*3.14/180)), Riga3=16000+round(5000*cos(N*3.14/180)), line(16000,Colonna1,Riga3,Colonna1,7), line(16000,Colonna1,Riga2,Colonna1,Colore), Colonna2=Colonna1+20, N2=N-1, disegna(Riga1,Colonna2,N2). disegna(_,_,_).
/* seno1.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna SINUSOIDE con LINE e DOT */
domains intero= integer Predicates disegna(Intero,Intero,Intero) Goal graphics(1,7,1),attribute(1), line(16000,1000,16000,32000,7), disegna(22000,1000,1440). Clauses disegna(Riga1,Colonna1,N):- N>0,!, Colore=2, dot(Riga1,Colonna1,Colore), Riga2=Riga1+100*sin(N*3.14/180), Colonna2=Colonna1+20, N2=N-1, disegna(Riga2,Colonna2,N2).
/* trigono1.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna COSINUSOIDE e sinusoide con DOT */
domains intero= integer
Predicates disegna(Intero,Intero,Intero) assi
Goal graphics(1,7,1),attribute(1), write("\tCosinusoide-Sinusoide\n\n"), assi, disegna(16000,1000,1440).
Clauses assi:- RH1=16000,CH1=1000,RH2=16000,CH2=32000, RV1=1000,CV1=1000,RV2=30000,CV2=1000, line(RH1,CH1,RH2,CH2,7), line(RV1,CV1,RV2,CV2,7).
disegna(Riga1,Colonna1,N):- N>0,!, Colore1=2, Colore2=7, R=16000, Scala=5000, Riga2=R+round(Scala*sin(N*3.14/180)), Riga3=R+round(Scala*cos(N*3.14/180)), dot(Riga3,Colonna1,Colore1), dot(Riga2,Colonna1,Colore2), Colonna2=Colonna1+20, N2=N-1, disegna(Riga1,Colonna2,N2). disegna(_,_,_).
/* trigono2.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna due sinusoidi con Line */
domains intero= integer
Predicates disegna(Intero,Intero,Intero) assi fine Goal graphics(1,7,1),attribute(2), /* prova 1,2,3,4,5 per primo parametro */
write("\t\tOpposizione\n\n"), assi, disegna(16000,1000,1440), fine. Clauses assi:- RH1=16000,CH1=1000,RH2=16000,CH2=32000, RV1=1000,CV1=1000,RV2=30000,CV2=1000, line(RH1,CH1,RH2,CH2,7), line(RV1,CV1,RV2,CV2,7).
disegna(Riga1,Colonna1,N):- N>0,!, Colore1=2,Colore2=5, R=16000, Scalax=6000,Scalay=6000, Seno1=R+round(Scalax*sin(N*3.14/180)), Seno2=R-round(Scalay*sin(N*3.14/180)), line(R,Colonna1,Seno1,Colonna1,Colore1), line(R,Colonna1,Seno2,Colonna1,Colore2), N2=N-1, Colonna2=Colonna1+20, disegna(Riga1,Colonna2,N2). disegna(_,_,_). fine:- sound(100,500), cursor(19,2).