mac4

(cfr.programma simile scritto con prolog su dos-windows)


con install_menu appare menù a tendina con varie opzioni

/* latino4 */
/* coniugazione indicativo verbi latini prima coniugazione */

'<LOAD>'(X):-esegue.
esegue:-
install_menu(scelta,[inizio,dati,presente,imperfetto,futuros,
perfetto,pperfetto,anteriore,fine]).
scelta(inizio):-cancella.
scelta(dati):-cdati.
scelta(presente):-cpresente.
scelta(imperfetto):-cimperfetto.
scelta(futuros):-cfuturos.
scelta(perfetto):-cperfetto.
scelta(pperfetto):-cpiucheperfetto.
scelta(anteriore):-canteriore.
scelta(fine):-uscita.
cancella:-
whide(latino2),wfront(user).
cdati:-
prompt_read(['scrivi infinito prima coniugazione '],Infinito),nl,
stringof(Lista2,Infinito),
reverse(Lista2,Lista1),
remove(_,Lista1,R1),
remove(_,R1,R2),
remove(_,R2,R3),
reverse(R3,Radice1),
stringof(Radice1,Radice),
remember(forme,[Radice,Infinito]),
prompt_read(['scrivi perfetto indicativo '],Perfetto),nl,
stringof(Lista3,Perfetto),
reverse(Lista3,Lista4),
remove(_,Lista4,Radp),
reverse(Radp,Rad1),
stringof(Rad1,Rperfetto),
remember(forma,[Rperfetto|Infinito]).
uscita:-
message('premi ENTER '),wfront(latino2).
cpresente:-coniugapresente.
coniugapresente:-
recall(forme,[Radice|Infinito]),
write(['presente indicativo del verbo:',Infinito]),nl,
concat(Radice,o,F1),write(F1),nl,
concat(Radice,as,F2),write(F2),nl,
concat(Radice,at,F3),write(F3),nl,
concat(Radice,amus,F4),write(F4),nl,
concat(Radice,atis,F5),write(F5),nl,
concat(Radice,ant,F6),write(F6),nl,
write('-----------------------------'),nl.

cimperfetto:-coniugaimperfetto.
coniugaimperfetto:-
recall(forme,[Radice|Infinito]),
write(['imperfetto indicativo del verbo:',Infinito]),nl,
concat(Radice,abam,F1),write(F1),nl,
concat(Radice,abas,F2),write(F2),nl,
concat(Radice,abat,F3),write(F3),nl,
concat(Radice,abamus,F4),write(F4),nl,
concat(Radice,abatis,F5),write(F5),nl,
concat(Radice,abant,F6),write(F6),nl,
write('-----------------------------'),nl.
cfuturos:-coniugafuturos.
coniugafuturos:-
recall(forme,[Radice|Infinito]),
write(['futuro semplice del verbo:',Infinito]),nl,
concat(Radice,abo,F1),write(F1),nl,
concat(Radice,abis,F2),write(F2),nl,
concat(Radice,abit,F3),write(F3),nl,
concat(Radice,abimus,F4),write(F4),nl,
concat(Radice,abitis,F5),write(F5),nl,
concat(Radice,abant,F6),write(F6),nl,
write('-------------------------------'),nl.
cperfetto:-coniugaperfetto.
coniugaperfetto:-
recall(forma,[Rperfetto|Infinito]),
write(['perfetto indicativo del verbo:',Infinito]),nl,
concat(Rperfetto,i,F1),write(F1),nl,
concat(Rperfetto,isti,F2),write(F2),nl,
concat(Rperfetto,it,F3),write(F3),nl,
concat(Rperfetto,imus,F4),write(F4),nl,
concat(Rperfetto,istis,F5),write(F5),nl,
concat(Rperfetto,erunt,F6),write(F6),nl,
write('-------------------------------'),nl.
cpiucheperfetto:-coniugapiucheperfetto.
coniugapiucheperfetto:-
recall(forma,[Rperfetto|Infinito]),
write(['perfetto indicativo del verbo:',Infinito]),nl,
concat(Rperfetto,eram,F1),write(F1),nl,
concat(Rperfetto,eras,F2),write(F2),nl,
concat(Rperfetto,erat,F3),write(F3),nl,
concat(Rperfetto,eramus,F4),write(F4),nl,
concat(Rperfetto,eratis,F5),write(F5),nl,
concat(Rperfetto,erant,F6),write(F6),nl,
write('-------------------------------'),nl.
canteriore:-coniugaanteriore.
coniugaanteriore:-
recall(forma,[Rperfetto|Infinito]),
write(['futuro anteriore  del verbo:',Infinito]),nl,
concat(Rperfetto,ero,F1),write(F1),nl,
concat(Rperfetto,eris,F2),write(F2),nl,
concat(Rperfetto,erit,F3),write(F3),nl,
concat(Rperfetto,erimus,F4),write(F4),nl,
concat(Rperfetto,eritis,F5),write(F5),nl,
concat(Rperfetto,erunt,F6),write(F6),nl,
write('-------------------------------'),nl.

infinito

perfetto

coniuga perfetto

coniuga fururo anteriore

coniuga imperfetto

coniuga imperfetto e uscita