Aide pour un programme de conjugaison en C

aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
dna.factory Messages postés 26003 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour
je veux faire un programme de conjugaison et j'ai pensé à utiliser 'if', le programme tiendra les 3 groupes de verbes en présent et au passé , en considérant les exceptions le programme va devenir trop long.
il n’existe pas un moyen plus simple.
question: pour 'switch' ça sera le même problème ?
Merci d'avance :)

2 réponses

Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Bonjour,

C'est avec quoi comme langage?
0
aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Langage C
0
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Tu as ton algorithme avec toi?
0
aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai l'idée mon problème c'est comment faire la différence dans certain cas:
exemple: le verbe ouvrir c'est de 3 groupe il se confond avec le 2 groupe comment faire la différence dans ce cas ?
j'ai fait le programme de 1 groupe et 2 groupe présent en c.
0
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Le verbe ouvrir appartient uniquement au 3e groupe
0
aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
oui voilà mais on sait que le 2 groupe se termine avec ir donc comment faire la différence entre le 2 et 3 dans ce point au niveau de programme.
0
dna.factory Messages postés 26003 Date d'inscription   Statut Modérateur Dernière intervention   1 618
 
La question importante qui décidera du fonctionnement de ton programme :
est-ce que les verbes doivent exister ?
Comment le programme doit réagir si je tente de conjuger le verbe trouler (10 points à la meilleure définition pour trouler).

Est-ce qu'il me rends une conjugaison ?
Je troule, tu troules, il troule, nous troulons, etc...

Ou est-ce qu'il me dit : verbe inconnu ?

pourquoi c'est important ?
Si tu ne dois conjuguer que les verbes existant, il te suffit d'utiliser une base de donnée (un fichier csv par exemple), contenant toutes les conjugaisons existantes (au siècle dernier, on les trouvaient dans les pages de couleurs des dictionnaires papier), et il suffit de programmer l'accès aux données et son affichage.
Quasiment aucun if au delà des contrôles, et pas forcément de case (sauf si tu décide d'utiliser un fichier par groupe).

Si tu décides d'appliquer les règles de conjugaison en fonction du mot rentré, sans vérifier son existence... tu vas faire face à un mur.
Car il n'y a pas de règle pour le 3eme groupe, c'est impossible de savoir si ouvrir fait parti du deuxième ou troisième groupe sans avoir de référence externe (participe présent en issant ou pas, mais le programme informatique ne peut pas le savoir).
et il n'y a aucune réglè qui définit la formation des verbes du 3eme groupe.

Donc de toute façon, il faudra une liste de verbes du 3eme groupe, et un fichier 'base de donnée' contenant les conjugaison du 3eme groupe.

Vu que c'est un exercice, le mieux est évidement de mélanger les deux approches :
une première 'table' contient la liste des verbes français en relation avec leur groupe (et pourquoi pas une définition d'une centaines de caractères).
si le mot rentré n'est pas dans la table, on remonte une erreur, et comme c'est un exercice, et qu'on cherche à faire le maximum, on laisse à l'utilisateur la possibilité de rajouter le verbe dans la base.
une seconde 'table' contient les conjugaison des verbes du troisième groupe. (les conjugaisons du premier et deuxième étant générés automatiquement).
0
aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
oui je comprends par exemple si je crées un tableau contenant la famille se termine avec dre comme prendre attentre rendre.... et que l'utilisateur fait entrer un verbe qui appartient à la famille comment j'affiche sa conjugaison ?
0
dna.factory Messages postés 26003 Date d'inscription   Statut Modérateur Dernière intervention   1 618
 
si je crées un tableau contenant la famille se termine avec dre comme prendre attentre rendre
pren|dre > J'ai pr|is | nous pren|nons
ren|dre > J'ai ren|du | nous ren|dons
normalement, tu dois réaliser que 'faire un tableau avec 'les verbes finissant par 'dre' ne marchera pas.
0
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Tu ne veux pas te faire une bibliothèque ?
0
aymane! Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
je sais pas ou est ma faute il exécute tous les verbes qui se terminent avec 're'

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

char tab1[5]={'vendre','perdre','coudre','descendre','attendre'};
char verbe[20];
int i,s;



int main()
{
printf("Donner moi un verbe\n");
scanf("%s",verbe);
s=0;
for (i=0;i<=5;i++){
if (tab1[i]==verbe[strlen(verbe)]){
s++; }
}
if (s>0){
verbe[strlen(verbe)-3]='\0';
printf("je %sds\n",verbe);
printf("tu %sds\n",verbe);
printf("il/elle %sd\n",verbe);
printf("nous %sdons\n",verbe);
printf("vous %sdez\n",verbe);
printf("ils/elles %sdent\n",verbe);

}

else if (s==0){
printf("non");}


return 0;
}
0
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
Parce que une fois qu'il est dans la boucle for il ne va en sortir qu'au bout des 5 cases du tableau donc les 5 verbes
0