Signaler

[C]Conjugaison de verbes [Fermé]

Posez votre question cloé - Dernière réponse le 22 févr. 2011 à 16:26 par rafe
salut, SVP c'est urgent aidez moi
je vous jure que cette programmatio est trop dur pour un debutant, j'ai essayeré mais..........
j'ai tp trés urgent a faire il s'agit de la prorammation en c sur les chaines de caractéres
il faut faire un programme qui conjugue un verbe du 1er groupe different temps de l'indicatifs en prennant les cas speciaux.
Afficher la suite 
Utile
+18
plus moins
Vous risquez pas d'arriver a conjuguer correctement en C, vous arrivez même pas a écrire normalement avec un clavier ...
Cette réponse vous a-t-elle aidé ?  
Utile
+6
plus moins
je t'ai fait rapidement le présent pour les cas spéciaux utilise des switch en partant du troisieme caractere en partant de la fin.
la lettre "g" va poser pbs :)

#include <stdio.h>
#include <string.h>


#define MAX 20


int main(){

char verbe[MAX]="";
int i=0, taille=0;

while(1){
printf("\nEntrer le verbe\n");
scanf("%s",verbe);
//tu mettras ici ton switch
taille=strlen(verbe);
printf("longueur de %d\n",taille);
printf("je ");
for(i=0;i<taille-1;i++){
printf("%c",verbe[i]);
}
printf("\ntu ");
for(i=0;i<taille-1;i++){
printf("%c",verbe[i]);
}
printf("s\n");
printf("il ");
for(i=0;i<taille-1;i++){
printf("%c",verbe[i]);
}
printf("\nNous ");
for(i=0;i<taille-2;i++){
printf("%c",verbe[i]);
}
printf("ons\n");
printf("Vous ");
for(i=0;i<taille-1;i++){
printf("%c",verbe[i]);
}
printf("z\n");
printf("ils ");
for(i=0;i<taille-1;i++){
printf("%c",verbe[i]);
}
printf("nt\n");

}

return 0;
}
cloé- 22 févr. 2006 à 17:49
aidez moi SVPje vous en prix c'est trés trés urgent

j'ai pas su mettre les cas speciaux et les voici:
-quad le vebe commence par une voyelle(mettre l'apostrophe dans je)
-quand le verbe se termine avec un "g" il faut ajouter la "e" avec les pronom personnelle nous
-et quand le verbes se termine avec un "c" lfaut ajouter la cédi "ç".
svp c tres tres urgent je serai reconnaissante
merci d'avance @+
bacchuss 1180Messages postés samedi 13 décembre 2003Date d'inscription 6 avril 2009 Dernière intervention - 22 févr. 2006 à 17:54
Salut,

hum, c'est pas très compliqué avec le code que t'a donné Loneliness.

il te suffit de faire des tests (if) sur ta chaine de caractere et de la modifier en conséquence...

Courage !!!
cloé- 22 févr. 2006 à 18:07
stp bacchuss aide moi j'ai trop de travail je les rend 2m1 et je suis entraine de faire un autre plus compliquer et il faut que je fasse apres leurs deux algorithme et leurs compt rendu,mon binome a fait un accident et je suis bloqué toute seule . je serai reconnaissante.
sasa- 15 févr. 2011 à 14:09
c est trop bien et encore merci
rafe- 22 févr. 2011 à 16:26
merci grace avous j"ai reussi mon contero
Utile
+3
plus moins
ne soyez pas si dur avec elle, nous etions et nous sommes encore des debutants, sur autres forum on parle d'autres choses plus compliquées c sûr mais là au moins, mais tu me promets cloé que tu vas bien essayer de comprendre ce code stp, et que tu traitera les deux qui ne sont pas pris en compte comme l' ou encore ç
bon voillà ce que j'ai fait :
#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

}
}
*/

}
Utile
+2
plus moins
quelqun peux m'aidé a conjugué le verbe dire au passé composé et a l'imparfait stppppppppppppppppppppppppppppppppppppppppppppppppppppp
Utile
+2
plus moins
je veus crée un programme qui permet de conjugais des verbe du 2em groupe ?
Utile
+2
plus moins
Vous vous embêtez pour rien !
Il existe déjà des sites très bien faits pour ça tels que :

http://www.leconjugueur.fr

ou

http://www.conjuguons.fr
Utile
+2
plus moins
Bonjour, si vous souhaitez générer un algorithme autour de la conjugaison, je vous conseils d'utiliser le site Conjugue Ta Mère qui liste tous les verbes de la langue française http://www.conjuguetamere.com/verbe . Pour chaque fiche d'un verbe il est assez facile d'extraire les terminaison de chaque verbe et ceux pour toutes les personnes et tous les temps de conjugaison. J'ai déjà essayé de développer un algorithme de conjugaison pour verbe, mais je me suis heurter par le nombre d'exceptions de verbe de la langue française.
Utile
+1
plus moins
hé! j'ai le meme tp dans ma formation, et qui prend en compte tout les cas, le code que lonless t'as donné et incomplet en effet pour les 3 premieres ;personnes du singulier il affiche tt le verbe sauf le dernier caractere, pour les 3 du pluriel , ilaffiche tt sauf les 'er', il faut donc completer pas un tableau='e', 'es','e','ons','ez','ent'; utilise plutot la biblio <string.h>

plus de presicions pour plus tard
bacchuss 1180Messages postés samedi 13 décembre 2003Date d'inscription 6 avril 2009 Dernière intervention - 22 févr. 2006 à 22:21
euh, t'es sur qu'il affiche pas e,es,e,ons,...

j'ai pas compilé mais ca m'a pas l'air si mauvais...
cloé- 23 févr. 2006 à 11:00
non il marche mais le probléme est dans l'ajout des cas speciaux
-quad le vebe commence par une voyelle(j'achete)

-quand le verbe se termine avec un "g" il faut ajouter la "e" avec les pronom personnelle nous
-et quand le verbes se termine avec un "c" lfaut ajouter la cédi "ç".
stp jai as sus les integrer
Utilisateur anonyme - 23 févr. 2006 à 12:30
salut
c'est pas dure l'algo est déjà dans l'énoncé

si verbe[0] = a ou e ou i ou u ou ...
alors j'

et ect il suffit d'implémenter le code qu"on t'a donnée et d'y ajouter des condition (if)

cloé- 23 févr. 2006 à 13:49
stp fat le pour moi je suis qu'une debutante
Utilisateur anonyme nabbla - 23 févr. 2006 à 14:09
justement c'est une bonne opportunité pour progrésser. Moi je te le fairais pas met tu peu soumettre ton code que tu as déjà réalisé et dire ou tu bloques
Utile
+1
plus moins
Utile
+1
plus moins
salut quelqu'un peux m'aider a conjuguer le verbe sembler a tous les temps
BmV 68650Messages postés samedi 24 août 2002Date d'inscription ModérateurStatut 26 mai 2017 Dernière intervention - 15 janv. 2008 à 20:13
Salut Cathy.

Un petit coup de pouce ==> http://www.commentcamarche.net/telecharger/telecharger 34055040 conjugaison
Mais faut quand même penser à réviser un peu de temps en temps !!!!!!
C'est important ; parfois tu seras toute seule et sans internet !!!

A+
Utile
+1
plus moins
bonjour je mapelle meziane et jous informe comment on peut trouver le verbe feut
Utile
+1
plus moins
bonjour je m'appelle meziane je voudrait savoir comment conjugait le vebe faut
Utile
+1
plus moins
salut je voudrai savoir la conjugaison du verbe prendre et mettre a l'imparfait puis au passe composer svp
Utile
-1
plus moins
conjugaison +grammaire +orthographe et merci pour tout

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !