listati da Prolog2
listati da copiare e incollare su notes e salvare come file.PRO
richiamabili in ambiente Prolog

esci listaprolog.htm

solo presente e imperfetto indicativo, con desinenze in programma

 

/* latino2x.pro */
/* analisi verbo latino e ricava radice */

nowarnings
domains
Lunga = integer
Radix,Des,Verbo =string

predicates
finestra
azione
goal
finestra,azione.

clauses
finestra:-makewindow(1,7,1,"",0,0,25,80).
azione:-
attribute(5),
write("scrivi infinito verbo latino"),nl,
write("da coniugare:es.laudare "),nl,
readln(Verbo),
write("----------------------------"),nl,
attribute(6),
str_len(Verbo,Lunga),
Radice=Lunga-3,
frontstr(Radice,Verbo,Radix,Des),
write("infinito..",Verbo),nl,
write(Lunga),nl,
write("radice....",Radix),nl,
write("desinenza.",Des),nl,
sound(100,600),
/* desinenze indicativo */
D1="o",D2="as",D3="at",
D4="amus",D5="atis",D6="ant",
E1="abam",E2="abas",E3="abat",
E4="abamus",E5="abatis",E6="abant",
/* forme verbali presente indicativo*/
concat(Radix,D1,R1),concat(Radix,E1,Q1),
concat(Radix,D2,R2),concat(Radix,E2,Q2),
concat(Radix,D3,R3),concat(Radix,E3,Q3),
concat(Radix,D4,R4),concat(Radix,E4,Q4),
concat(Radix,D5,R5),concat(Radix,E5,Q5),
concat(Radix,D6,R6),concat(Radix,E6,Q6),
write("=============================="),nl,
attribute(2),
write("stampa indicativo presente"),nl,
attribute(3),
write(R1),nl,
write(R2),nl,
write(R3),nl,
write(R4),nl,
write(R5),nl,
write(R6),nl,
attribute(4),
write("----imperfetto -------"),nl,
write(Q1),nl,write(Q2),nl,write(Q3),nl,
write(Q4),nl,write(Q5),nl,write(Q6),nl,
readchar(_).