/* latino2.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(_).
   
   
+------------------------------------------
¦da coniugare:es.laudare
¦laudare
¦----------------------------
¦infinito..laudare
¦7
¦radice....laud
¦desinenza.are
¦==============================
¦stampa indicativo presente
¦laudo
¦laudas
¦laudat
¦laudamus
¦laudatis
¦laudant
¦----imperfetto -------
¦laudabam
¦laudabas
¦laudabat
¦laudabamus
¦laudabatis
¦laudabant
¦
+------------------------------------------
ritorna