Menu

[C]Conjugaison de verbes [Fermé]

cloé - 20 févr. 2006 à 18:35 - Dernière réponse :  rafe
- 22 févr. 2011 à 16:26
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 

26 réponses

serialtueur 49 Messages postés mardi 25 novembre 2008Date d'inscription 22 octobre 2009 Dernière intervention - 16 mai 2009 à 22:39
+18
Utile
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é ?  
Utilisateur anonyme - 20 févr. 2006 à 23:52
+6
Utile
5
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;
}
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 1180 Messages 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é > bacchuss 1180 Messages postés samedi 13 décembre 2003Date d'inscription 6 avril 2009 Dernière intervention - 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.
c est trop bien et encore merci
merci grace avous j"ai reussi mon contero
kun.sasuke 20 Messages postés lundi 20 février 2006Date d'inscription 13 juin 2007 Dernière intervention - 23 févr. 2006 à 16:11
+3
Utile
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

}
}
*/

}
+2
Utile
quelqun peux m'aidé a conjugué le verbe dire au passé composé et a l'imparfait stppppppppppppppppppppppppppppppppppppppppppppppppppppp
+2
Utile
je veus crée un programme qui permet de conjugais des verbe du 2em groupe ?
François - 17 mai 2010 à 18:15
+2
Utile
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
FabienBRANCHUT 8 Messages postés lundi 21 juin 2010Date d'inscription 11 janvier 2011 Dernière intervention - 22 juin 2010 à 06:59
+2
Utile
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.
kun.sasuke 20 Messages postés lundi 20 février 2006Date d'inscription 13 juin 2007 Dernière intervention - 22 févr. 2006 à 18:53
+1
Utile
6
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 1180 Messages 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é > bacchuss 1180 Messages postés samedi 13 décembre 2003Date d'inscription 6 avril 2009 Dernière intervention - 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 > cloé - 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é > Utilisateur anonyme - 23 févr. 2006 à 13:49
stp fat le pour moi je suis qu'une debutante
Utilisateur anonyme > Utilisateur anonyme - 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
+1
Utile
1
salut quelqu'un peux m'aider a conjuguer le verbe sembler a tous les temps
BmV 70424 Messages postés samedi 24 août 2002Date d'inscriptionModérateurStatut 30 mars 2018 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+
+1
Utile
bonjour je mapelle meziane et jous informe comment on peut trouver le verbe feut
+1
Utile
bonjour je m'appelle meziane je voudrait savoir comment conjugait le vebe faut
+1
Utile
salut je voudrai savoir la conjugaison du verbe prendre et mettre a l'imparfait puis au passe composer svp
nabipsycho - 29 juin 2008 à 12:50
-1
Utile
conjugaison +grammaire +orthographe et merci pour tout