IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Code de conjugaison


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Par défaut Code de conjugaison
    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

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    C'est pour les afficher ?
    Si c'est le cas, pas besoin de conteneur, juste de std::string.

  3. #3
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Bonjour,
    es-tu contraint de faire ça en c++?
    Parce que sincèrement, il y a beaucoup plus pratique ^^

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    C'est vrai qu'il y a beaucoup beaucoup plus pratique !

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Par défaut
    Citation Envoyé par r0d
    Bonjour,
    es-tu contraint de faire ça en c++?
    Parce que sincèrement, il y a beaucoup plus pratique ^^
    Bonjour,
    C++ est le seul langage que je connais pour l'instant et j'ai pensé que ce serait un bon exercice.

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Par défaut
    Citation Envoyé par Miles
    C'est pour les afficher ?
    Si c'est le cas, pas besoin de conteneur, juste de std::string.
    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.

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Donc tu vas en faire quoi, de tes tables de conjugaisons ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut
    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

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 67
    Par défaut
    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.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 117
    Par défaut
    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();
    }

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut
    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

  12. #12
    Membre émérite Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Par défaut
    Citation Envoyé par Myth_Titans
    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();
    }
    Moi j'préfèrerais des std::string que des char *.

    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.

  13. #13
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Par défaut
    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.

  14. #14
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 8
    Par défaut
    Citation Envoyé par yakotey
    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.
    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?

  15. #15
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    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.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut
    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

  17. #17
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Oui, pour ça, c'est une bonne idée

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout << "je" + radical+terminaison1ergroupe;
    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.


    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.

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 117
    Par défaut
    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;
         }
    }

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut
    merci Myth Titan . ça me fait deux problèmes en moins !!

Discussions similaires

  1. De la rapidité du code
    Par jfloviou dans le forum Contribuez
    Réponses: 233
    Dernier message: 29/05/2009, 02h17
  2. code pour interbase 6.0 et 6.5 de generateur
    Par tripper.dim dans le forum InterBase
    Réponses: 4
    Dernier message: 01/07/2002, 11h29
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58
  4. Explorateur de code C
    Par Zero dans le forum C
    Réponses: 14
    Dernier message: 06/06/2002, 09h41
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo