Voilà aide pour conjuger 1er groupe

Fermé
kun.sasuke Messages postés 20 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 13 juin 2007 - 23 févr. 2006 à 16:24
 ann-gaelle gouerec - 26 mai 2008 à 17:53
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

char * dico [45]={"chamaller","donner","former","retourner","manger","essuyer","envoyer","monnayer","effrayer","chanter","jeter","expulser","remanger","nager"};
char *term [6][3]={{"e","es","e"},{"ons","ez","ent"},{"e","es","e"},{"eons","ez","ent"},{"ie","ies","ie"},{"yons","yez","ient"}};
char * prenom[6]={"je","tu","il","nous","vous","ils"};
char voyelles[6]={'a','e','i','o','u','y'};



/*Precar */
char * precar (char * s){
int i=0;
int l = strlen(s);
while(((s[i]<'A')||(s[i]>'Z'))&&((s[i]<'a')||(s[i]>'z'))&&(i < l))
{
i++;
}
if((s[i]==9)||(s[i]==32))
printf("cette chaine ne contient que d'espaces et tabulations\n");
/*printf("\"precar\" dit que l'adrs du 1er char est %p \n",(s+i));*/
return (s+i);

}
int carac_valide(char c)
{
if(((c <'A')||(c >'Z'))&&((c <'a')||(c >'z')))
return 0;
return 1;
}

char precar_bis(char *s)
{
char *c;
char f;
c=precar(s);
f=(*c);
printf("le caractere le premier est %c\n",f);
return f;
}
char * dercar (char * s){

int l=0;
l=strlen(s);
while(((s[l]<'A')||(s[l]>'Z'))&&((s[l]<'a')||(s[l]>'z'))&&(l>0))
{
l--;
}
if((s[l]==9)||(s[l]==32))
printf("cette chaine ne contient que d'espaces et tabulations\n");

/*printf("\"precar\" dit que l'adrs du 1er char est %p \n",(s+l));*/
return (s+l);

}
char dercar_bis(char *s)
{
char *c;
char f;
c=dercar(s);
f=(*c);
printf("le caractere le premier est %c\n",f);
return f;

}
/*
int aller(char * s)
{
if((s[0]=='a')&&(s[1]=='l')&&(s[2]=='l')&&(s[3]=='e')&&(s[4]=='r'))
return 1;
else
return 0;


}
*/
int valide(char * s)
{

char * p;
char * r;
int i=0;

p=precar(s);

r=dercar(s);
if(((*r)=='r')&&((*(r-1))=='e'))
{
if(((*p)=='a')&&((*(p+1))=='l')&&((*(p+2))=='l')&&((*(p+3)=='e')&&((*(p+4))=='r')&&((p+4)==r)))
{
printf("nous rejetons le verbe aller avec regret \n");
return 0;
}

}
printf("ce verbe est du permier groupe\n");
return 1;

}

char * copier_verbe(char *s)
{
int i=0;
char * dest=(char *)malloc(455*sizeof(char));
char * p;
p=precar(s);
while(carac_valide(*(p+i)))
{
(*(dest+i))=(*(p+i));
i++;
}
dest[i]='\0';
return dest;
}
int verbe_dans_dico(char*s)
{
int i=0;
while(dico[i]!='\0')
{
if(!strcmp(copier_verbe(s),dico[i]))
return 1;
i++;
}
return 0;
}
char * saisie()
{
char * verbe;
verbe = (char *)malloc(343 * sizeof(char));
printf("please enter un verbe du premier groupe\n");
verbe=gets(verbe);
printf("vous voulez conjuger le verbe : %s OK! \n",copier_verbe(verbe));
return verbe;
}



int est_une_voyelle(char c)
{
int i;
for(i=0;i<6;i++)
{
if(voyelles[i]== c)
return 1;
}
return 0;
}

char * concat(char * dest, char *src, int n)
{
int i=0;
int j=0;
int long1,long2;
char * res;
long1=strlen(dest);
long2=strlen(src);
res=(char *)malloc((long1 + long2+1) * sizeof(char));
while(i<= (long1-n))
{
res[i]=dest[i];
i++;
}
while(src[j]!='\0')
{
res[long1-n+j]=src[j];
j++;
}
res[long1-n+j]='\0';
return res;
}
void premier_cas(char *verbe)
{
int j=0;

for(j=0;j<3;j++)
{
printf("%s %s \n",(*(prenom+j)),concat(copier_verbe(verbe),term[0][j],2));
}
for(j=0;j<3;j++)
{
printf("%s %s\n",(*(prenom+j+3)) ,concat(copier_verbe(verbe),term[1][j],2));
}

}
void deuxieme_cas(char * verbe)
{

int j=0;

for(j=0;j<3;j++)
{
printf("%s %s \n",(*(prenom+j)),concat(copier_verbe(verbe),term[2][j],2));
}
for(j=0;j<3;j++)
{
printf("%s %s\n",(*(prenom+j+3)) ,concat(copier_verbe(verbe),term[3][j],2));
}

}
void troisieme_cas(char * verbe)
{
int j=0;

for(j=0;j<3;j++)
{
printf("%s %s \n",(*(prenom+j)),concat(copier_verbe(verbe),term[4][j],3));
}
for(j=0;j<3;j++)
{
printf("%s %s\n",(*(prenom+j+3)) ,concat(copier_verbe(verbe),term[5][j],3));
}
}
void conjugaison (char * verbe)
{
char *r;
r=dercar(verbe);
if(*(r-2)=='g')
deuxieme_cas(verbe);
else
if(est_une_voyelle((*(r-3))))
troisieme_cas(verbe);
else
premier_cas(verbe);

}

void main ()
{

char * s =saisie();
printf("%s fait %d caracteres\n",copier_verbe(s),strlen(copier_verbe(s)));
if(valide(s))
{
if(verbe_dans_dico(s))
{
printf("le verbe est dans notre dictionnaire, debut conjugaison:\n");
conjugaison(s);
}
else
printf("le verbe n'est pas dans notre dictionnaire A+!\n");
}

/**********************TEST DES TROIS TABLEAUX CI-DESSOUS ****************************/
/*
for(i=0;i<6;i++)
printf("les voyelles sont: %c\n",voyelles[i]);
*/
/*
for(i=0;i<6;i++)
printf("les prenoms sont: %s\n",(*(prenom+i)));


for(i=0;i<6;i++)
{
for(j=0;j<3;j++)
{
printf("term[%d][%d] = %p\n",i,j,&term[i][j]); //affiche l'adresse du terme i j
printf("term[%d][%d] = %s\n",i,j,*(&term[i][j])); //affiche le continue de l'adresse i j

}
}
*/

}
exusez pour les cas : ' et celui de ç, je n'ai pas pris ces deux cas en compte

1 réponse

ann-gaelle gouerec
26 mai 2008 à 17:53
les verbe du 1er groupes se finis en er conjugais au futurre simple


Ex: avec marcher

Singulier Pluriel
je marcherai nous marcherons
tu marcheras vous macherez
il/elle/on marchera ils/elles marcheront



si vous voulez en savoire plus evoer moi in message sur mon addresse e-mail :
anngaelleg@orange.fr
0