coniugazione verbi latini (parziale e con varianti)

esci lista.htm





/* latino4.mar */
/* verbi latini */
/* con interazione correzione e conteggio errori stampa*/

#include "string.h"
#include "stdio.h"
#include "stdio.h"

char infinito[20],perfecto[20],radice[15],radice1[15];

char des1[72][9]={"o","as","at","amus","atis","ant",
"abam","abas","abat","abamus","abatis","abant",
"abo","abis","abit","abimus","abitis","abunt",
"i","isti","it","imus","istis","erunt",
"eram","eras","erat","eramus","eratis","erant",
"ero","eris","erit","erimus","eritis","erint",
"em","es","et","emus","etis","ent",
"arem","ares","aret","aremus","aretis","arent",
"erim","eris","erit","erimus","eritis","erint",
"issem","isses","isset","issemus","issetis","issent",
"a","ate","ato","ato","atote","anto"};

char des2[72][9]={"eo","es","et","emus","etis","ent",
"ebam","ebas","ebat","ebamus","ebatis","ebant",
"ebo","ebis","ebit","ebimus","ebitis","ebunt",
"i","isti","it","imus","istis","erunt",
"eram","eras","erat","eramus","eratis","erant",
"ero","eris","erit","erimus","eritis","erint",
"eam","eas","eat","eamus","eatis","eant",
"erem","eres","eret","eremus","eretis","erent",
"erim","eris","erit","erimus","eritis","erint",
"issem","isses","isset","issemus","issetis","issent",
"e","ete","eto","eto","etote","ento"};

char des3[72][9]={"o","is","it","imus","itis","unt",
"ebam","ebas","ebat","ebamus","ebatis","ebant",
"am","es","et","emus","etis","ent",
"i","isti","it","imus","istis","erunt",
"eram","eras","erat","eramus","eratis","erant",
"ero","eris","erit","erimus","eritis","erint",
"am","as","at","amus","atis","ant",
"erem","eres","eret","eremus","eretis","erent",
"erim","eris","erit","erimus","eritis","erint",
"issem","isses","isset","issemus","issetis","issent",
"e","ite","ito","ito","itote","unto"};

char des4[72][9]={"io","is","it","imus","itis","iunt",
"iebam","iebas","iebat","iebamus","iebatis","iebant",
"iam","ies","iet","iemus","ietis","ient",
"i","isti","it","imus","istis","erunt",
"eram","eras","erat","eramus","eratis","erant",
"ero","eris","erit","erimus","eritis","erint",
"iam","ias","iat","iamus","iatis","iant",
"irem","ires","iret","iremus","iretis","irent",
"erim","eris","erit","erimus","eritis","erint",
"issem","isses","isset","issemus","issetis","issent",
"i","ite","ito","ito","itote","iunto"};

int i,a,b,x,t,esatte,errate;
int risposta,opzione;
char formax[30];
char rad[30];

void coniuga(char radix[15],int x,char *modi,int t)
{
printf("%s %s\n",modi,infinito);
fprintf(stdprn,"%s %s\n\r\r",modi,infinito);
switch(t)
{
case 1:
puts("scrivi la forma esatta,o tasto a caso,e e return");
printf("----------------------------------------------\n");
fprintf(stdprn,"-----------------------------\n\r\r");
for (i=x;i<x+6;i++)
{scanf("%s",formax);
strcat(rad,radix);
strcat(rad,des1[i]);
if(!strcmp(formax,rad))
{fprintf(stdprn,"risposta esatta.............=%s\n\r ",rad);
esatte=esatte+1;}
else

{fprintf(stdprn,"%s =risposta errata .. forma esatta=%s\n\r",formax,rad);
errate=errate+1;}
strcpy(rad,""); }
break;

case 2:
puts("scrivi la forma esatta,o tasto a caso,e e return");
printf("----------------------------------------------\n");
fprintf(stdprn,"-----------------------------\n\r\r");
for (i=x;i<x+6;i++)
{scanf("%s",formax);
strcat(rad,radix);
strcat(rad,des2[i]);
if(!strcmp(formax,rad))
{fprintf(stdprn,"risposta esatta.............=%s\n\r ",rad);
esatte=esatte+1;}
else
{fprintf(stdprn,"%s =risposta errata..forma esatta=%s\n\r",formax,rad);
errate=errate+1;}
strcpy(rad,""); }
break;

case 3:
puts("scrivi la forma esatta,o tasto a caso,e e return");
printf("----------------------------------------------\n");
fprintf(stdprn,"-----------------------------\n\r\r");
for (i=x;i<x+6;i++)
{scanf("%s",formax);
strcat(rad,radix);
strcat(rad,des3[i]);
if(!strcmp(formax,rad))
{fprintf(stdprn,"risposta esatta.............=%s\n\r ",rad);
esatte=esatte+1;}
else
{fprintf(stdprn,"%s =risposta errata..forma esatta=%s\n\r",formax,rad);
errate=errate+1;}
strcpy(rad,""); }
break;

case 4:
puts("scrivi la forma esatta,o tasto a caso,e e return");
printf("----------------------------------------------\n");
fprintf(stdprn,"-----------------------------\n\r\r");
for (i=x;i<x+6;i++)
{scanf("%s",formax);
strcat(rad,radix);
strcat(rad,des4[i]);
if(!strcmp(formax,rad))
{fprintf(stdprn,"risposta esatta.............=%s\n\r ",rad);
esatte=esatte+1;}
else
{fprintf(stdprn,"%s =risposta errata..forma esatta=%s\n\r",formax,rad);
errate=errate+1;}
strcpy(rad,""); }
break;

dephaults:break;
}
}

void chiede()
{
puts("scrivi infinito verbo latino regolare");
gets(infinito);
a=strlen(infinito);
a=a-3;
memcpy(radice,infinito,a);
puts("scrivi perfetto stesso verbo");
gets(perfecto);
b=strlen(perfecto);
memcpy(radice1,perfecto,b-1);
}

void forma()
{
puts("coniugazione 1,2,3,4 ");
scanf("%d",&t);
puts("tempo da coniugare=");
puts("--------------- indicativo --------------------- ");
puts("1=presente....2=imperfetto........3=futuro");
puts("4=perfetto....5=piuccheferfetto...6=futuro anteriore");
puts("---------------- congiuntivo ----------------------");
puts("7=presente....8=imperfetto........9=perfetto");
puts("10=piuccheperfetto");
puts("---------------- imperativo --------------------- ");
puts("11=presente e futuro");
puts("================================================== ");
scanf("%d",&risposta);
clrscr();
switch(risposta)
{
case 1 :coniuga(radice,0,"presente indicativo di ",t);break;
case 2 :coniuga(radice,6,"imperfetto indicativo di ",t);break;
case 3 :coniuga(radice,12,"futuro indicativo di ",t);break;
case 4 :coniuga(radice1,18,"perfetto indicativo di ",t);break;
case 5 :coniuga(radice1,24,"piuccheperfetto indicativo di ",t);break;
case 6 :coniuga(radice1,30,"futuro anteriore di ",t);break;
case 7 :coniuga(radice,36,"presente congiuntivo di ",t);break;
case 8 :coniuga(radice,42,"imperfetto congiuntivo di ",t);break;
case 9 :coniuga(radice1,48,"perfetto congiuntivo di ",t);break;
case 10 :coniuga(radice1,54,"piuccheperfetto congiuntivo di ",t);break;
case 11 :coniuga(radice,60,"futuro imperativo di ",t);break;
default:puts("fine prova:richiesta non esatta");
break;
}
puts("altra prova:1...fine:2 ");
scanf("%d",&opzione);
if (opzione==1) forma();
}


main()
{ clrscr();
strcpy(rad,"");
esatte=errate=0;
puts("possibile coniugare verbo latino regolare");
puts("indicando infinito e perfetto indicativo ");
puts("viene richiesta la coniugazione 1,2,3,4 ");
puts("rimane costante il verbo da coniugare ");
puts("si possono cambiare tempi e modi ");
puts("-----------------------------------------");
puts("interazione ,correzione,conteggio errori ");
puts("stampa su carta e su video ");
puts("-----------------------------------------");
puts("per cambiare verbo si deve finire con 2 ");
puts("e poi riattivare con ctrl-9 e nuovo verbo");
puts("=========================================");
puts("LA STAMPANTE DEVE ESSERE PRONTA!!!!! ");
puts("=========================================");
puts("------ premi return,prego ---------------");
getch();clrscr();
chiede();
forma();
puts("-----------------------------------------");
printf("risposte esatte.....%d\n",esatte);
printf("risposte errate.....%d\n",errate);
fprintf(stdprn,"---------------------------------\n\r");
fprintf(stdprn,"risposte esatte.....%d\n\r",esatte);
fprintf(stdprn,"risposte errate.....%d\n\r",errate);
puts("premi return,prego");
getch();
}