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 -
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 :)
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 :)
A voir également:
- Trouler
- Mettre en veille un programme - Guide
- Programme demarrage windows - Guide
- Logiciel conjugaison - Télécharger - Dictionnaires & Langues
- Forcer la fermeture d'un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
2 réponses
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).
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).
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;
}
#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;
}
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.