Je suis débutant et j'aimerais écrire un programme qui conjugue les verbes du premier groupe à tous les temps et à toutes les personnes.Je ne sais pas quels conteneurs utiliser encore moins comment organiser les fichiers .h et .cpp
Je suis débutant et j'aimerais écrire un programme qui conjugue les verbes du premier groupe à tous les temps et à toutes les personnes.Je ne sais pas quels conteneurs utiliser encore moins comment organiser les fichiers .h et .cpp
C'est pour les afficher ?
Si c'est le cas, pas besoin de conteneur, juste de std::string.
Bonjour,
es-tu contraint de faire ça en c++?
Parce que sincèrement, il y a beaucoup plus pratique ^^
C'est vrai qu'il y a beaucoup beaucoup plus pratique !![]()
Bonjour,Envoyé par r0d
C++ est le seul langage que je connais pour l'instant et j'ai pensé que ce serait un bon exercice.
Je ne suis pas encore au niveau de l'affichage. Je suis encore tout au début de ma reflexion sur comment concevoir mon programme.Envoyé par Miles
Donc tu vas en faire quoi, de tes tables de conjugaisons ?
bonjour,
Je souhaiterai également faire un conjugueur des verbes du 1er et 2e groupe en C++... mon souci est le meme que Tonta. Je suis débutante en informatique et c'est un projet universitaire.
J'aimerai juste avoir une démarche pour commencer mon travail.
(En ce qui concerne l'affichage, c'est la seule chose que je maitrise à peu près.)
Merci d'avance![]()
Je pense que le plus dur dans ton exercice c'est l'algorithme.
Pose ton algorithme clairement (c'est-à-dire définir les règles qui permettent de distinguer les trois groupes de verbe, quelles sont les exceptions...etc).
Sois plus précis sur les points où tu bloques, s'il te plait; on pourra peut être mieux t'aider.
je te conseil de déjà commencer par les verbes du 1er groupe, c'est déjà assez difficile comme ça sans s'emmeler avec les autres.
comme l'a dit yakotey, il faut que tu aies une idée de comment doit fonctionner ton programme, déjà par exemple qu'il sache décomposer le radical et la terminaison d'un verbe, après ben c'est presque tout le temps la même chose. voilà un petit exemple, il permet de conjuguer les verbes du 1er groupe au présent (il est pas top, mais il marche, et puis pour sa taille il faut pas trop en demander non plus) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #include <iostream> #include <conio.h> using namespace std; void conjugue(char verbe[32]) { char *pronoms[] = {"je(j')","tu ","il ","nous ","vous ","ils "}; char *terminaisons_present[] = {"e","es","e","ons","ez","ent"}; char radical[16]; for(int i=0;i<strlen(verbe)-2;i++) /*Ici on sépare le radical du verbe, les verbes du 1er groupe ont une terminaison de 2 lettres, donc on va choisir toutes les lettres avant les 2 dernières*/ { radical[i] = verbe[i]; radical[i+1] = '\0'; //Termine la chaine de caractères } for(int i=0;i<6;i++) { cout<<pronoms[i]<<radical<<terminaisons_present[i]<<endl; } } int main() { char verbe[32]; cin>>verbe; conjugue(verbe); getch(); }
merci beaucoup Myth_Titans et Yakotey pour vos réponses. Je vais m'y mettre dans la soirée. Je vous tiens au courant des avancements.
Encore merci![]()
Moi j'préfèrerais des std::string que des char *.Envoyé par Myth_Titans
Et puis éditer dans un fichier aussi c'est plus simple =) (cf fstream).
Mais c'est pas urgent pour ce dernier point.
Certains trouveront quelque chose à redire sur le 'getch()', mais j'laisse moi ça me dérange pas.
Merci Hanlee, Myth_Titans et Yakotey pour ta précieuse aide. J'étudie le code et je reviens 0 vous pour d'éventuelles zones d'ombre.
J'aurais aimé utiliser un conteneur tel que set pour pouvoir conjuguer mes verbes à tous les temps de l'indicatif, mais je ne sais pas si c'est possible; si oui comment procéder?Envoyé par yakotey
Ca dépend de ce que tu veux faire avec ton conteneur. A priori, set ne convient pas du tout, on a besoin d'un ordre, OK, mais sûrement pas lexicographique.
dans l'énoncé de mon exercice, mon professeur nous demande d'utiliser les notions fondamentales abordées en cours, notament les conteneurs. J'avais pensé à map pour associer une clé (la personne) à une valeur (la terminaison).
Pensez-vous que c'est une bonne idée?
mon énoncé : le projet consiste à écrire un programme C++ de conjugaison en français des verbes du 1er et 2e groupe. Les programmes rendus devront être clairs et concis. Le code devra être factorisé pour éviter les ducplications inutiles. Les notions de classe, de template, de foncteur, de conteneur et d'algorithme devront être obligatoirement utilisées. Les programmes devront être commentés en utilisant le format Javadoc
Oui, pour ça, c'est une bonne idée![]()
Bon, alors j'ai un réfléchi au problème et j'ai commencé à programmer.
J'ai fait un .h, Conjuguer.h dans lequel je voudrais mettre une template
Mon premier problème est le suivant : je ne vois absolument pas comment je peux remplir cette template. Une template est-elle vraiment utile ici? Je suis obligée d'en avoir dans mon programme, mais il faut aussi un foncteur (et j'avoue que je n'ai pas tres bien compris ce que c'est, meme dans la FAQ)
Ensuite, j'ai fait un Conjuguer.cpp
Ici, je ne vois pas trop comment faire pour que le programme sache que le verbe à conjuguer est du premier ou deuxième groupe.
Je ne sais pas non plus comment faire en sorte que le radical et la terminaison du verbe soit relié dans quelque chose comme
Enfin, mon dernier fichier est un fichier regroupant les terminaisons, il n'y a pour le momemnt que le présent et l'imparfait de l'indicatif pour le premier groupe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part cout << "je" + radical+terminaison1ergroupe;
Je suis donc globalement pas mal perdue... j'spère que je ne fait pas fausse route. Je suis assez débutante en informatique et j'ai vraiment besoin que ce projet tienne la route![]()
Je vous remercie d'avance de votre aide, qui m'est tres préciseuse.![]()
pour savoir si le verbe est du 1er ou du 2ième groupe, il suffit de stocker les 2 derniers caractères dans un tableau puis de tester si c'est "er" c'est du 1er groupe, si c'est "ir" c'est du 2ième groupe.
pour lier le pronom, le radical et la terminaison du verbe ben tu peux faire très simple avec un tableau comme je l'avais fait dans mon code exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 void conjugue(char verbe[32]) { char *pronoms[] = {"je(j')","tu ","il ","nous ","vous ","ils "}; char *terminaisons_present[] = {"e","es","e","ons","ez","ent"}; char radical[16]; for(int i=0;i<strlen(verbe)-2;i++) /*Ici on sépare le radical du verbe, les verbes du 1er groupe ont une terminaison de 2 lettres, donc on va choisir toutes les lettres avant les 2 dernières*/ { radical[i] = verbe[i]; radical[i+1] = '\0'; //Termine la chaine de caractères } for(int i=0;i<6;i++) { /*On affiche pronom[0]+radical+terminaison[0], puis pronom[1]+radical+terminaison[1] etc*/ cout<<pronoms[i]<<radical<<terminaisons_present[i]<<endl; } }
merci Myth Titan. ça me fait deux problèmes en moins !!
Partager