latino3

coniugazione verbi latini

/* latino3.pro */
/* analisi verbo latino e ricava radice */
/* desinenze richiamate da disco */
nowarnings
include "a:/latino/desi.pro"
domains
Lunga = integer
Radix,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),
   DATI1(D1,D2,D3,D4,D5,D6),
   dati2(E1,E2,E3,E4,E5,E6),
   /* 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(_).
   

/* DESI.PRO */
domains
des= symbol
predicates
dati1(des,des,des,des,des,des)
dati2(des,des,des,des,des,des)
dati3(des,des,des,des,des,des)
dati4(des,des,des,des,des,des)
dati5(des,des,des,des,des,des)
dati6(des,des,des,des,des,des)
dati7(des,des,des,des,des,des)
dati8(des,des,des,des,des,des)
dati9(des,des,des,des,des,des)
dati10(des,des,des,des,des,des)
clauses
dati1("o","as","at","amus","atis","ant").
dati2("abam","abas","abat","abamus","abatis","abant").
dati3("abo","abis","abit","abimus","abitis","abunt").
dati4("avi","avisti","avit","avimus","avistis","averunt").
dati5("averam","averas","averat","averamus","averatis","averant").
dati6("avero","averis","averit","averimus","averitis","averint").
dati7("em","es","et","emus","etis","ent").
dati8("arem","ares","aret","aremus","aretis","arent").
dati9("averim","averis","averit","averimus","averitis","averint").
dati10("avissem","avisses","avisset","avissemus","avissetis","avissent").