Aide pour un programme de conjugaison en C

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

  1. Bonjour,

    C'est avec quoi comme langage?
    0
    1. Langage C
      0
    2. Tu as ton algorithme avec toi?
      0
    3. 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
    4. Le verbe ouvrir appartient uniquement au 3e groupe
      0
    5. 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
  2. Modérateur
    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
    1. 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
    2. Modérateur
      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
    3. Tu ne veux pas te faire une bibliothèque ?
      0
    4. 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
    5. 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