Traduction algorithme en C
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Traduction algorithme en C



  1. #1
    invite8b421ec7

    Question Traduction algorithme en C


    ------

    Bonjour,
    Pourriez-vous m'aider à traduire cet algorithme en C?
    Merci par avance.

    Code:
    fonction1;                             //etape 1
    
    coutF1 = calculCoutFonction1;
    for(i=0;i<N;i++)
    {
        coutF1=bestCout;                
        fonction2;                                //etape2
        coutF2=calculCoutFonction2;
        fonction3;                              //etape 3
        coutF3=calculCoutFonction3;
       if(coutF3<bestCout) {
          bestCout := coutF3;
       }
       else
      {
          bestCout :=coutF1; //revenir à l étape1
       }
          
    }
    Voici mon essai. Toutefois, j'ai une boucle infinie
    Code:
    Int c;
    c=0;
    do
    {
         fonction1;                             //etape 1
    
        coutF1 = calculCoutFonction1;
       for(i=0;i<N;i++)
      {
         fonction2; //etape 2
    
         coutF2=calculCoutFonction2;
         fonction3;                              //etape 3
         coutF3=calculCoutFonction3;
        if(coutF3>coutF1) {
         c=1; //revenir à l étape1
        }
          
    }while(c);

    -----

  2. #2
    ventilopomme

    Re : Traduction algorithme en C

    Connais tu bien le c ?
    deja pour essayer de convertir quelque chose en autre chose
    il faut comprendre le programme de départ
    c'est quoi fonction1; une fonction elle a quoi comme parametre d'appel et elle retourne quoi ?
    il manque plein d'informations ...
    Code:
    fonction1;                             //etape 1
    
    coutF1 = calculCoutFonction1;
    for(i=0;i<N;i++)
    {
        coutF1=bestCout;                
        fonction2;                                //etape2
        coutF2=calculCoutFonction2;
        fonction3;                              //etape 3
        coutF3=calculCoutFonction3;
       if(coutF3<bestCout) {
          bestCout := coutF3;
       }
       else
      {
          bestCout :=coutF1; //revenir à l étape1
       }
          
    }
    avec le peu d'informations que tu donnes (voire rien du tout même)
    meme pas un bout de pseudo code ...
    voila comment je ferai ah oui si tu obtiens une boucle infinie ajoute des printfs peut etre tu comprendras par toi meme ton erreur ...

    fonction1; je presume que c un label et encore normalement on met un : à la fin

    Code:
    coutF1 = calculCoutFonction1();
    for(i=0;i<N;i++)
    {
        coutF1=bestCout;                
        coutF2=calculCoutFonction2();
        coutF3=calculCoutFonction3();
       if(coutF3<bestCout) {
          bestCout = coutF3;
       }
       else
      {
          bestCout =coutF1; //revenir à l étape1
       }
    }
    exclu à jamais du présent

  3. #3
    bzh_nicolas

    Re : Traduction algorithme en C

    Tu ne vois pas une TRES grosse différence entre l'algo qu'on t'a donné et celui que tu as écrit ???

    Un indice : compte le nombre de boucles présentent dans l'algo et dans ton programme en C...

  4. #4
    Xoxopixo

    Re : Traduction algorithme en C

    Bonjour,

    la boucle infinie provient du fait que la condition
    Code:
    while(c);
    est toujours réalisée, soit c égal à 0
    Déja, j'aurais mis while(c==0) pour plus de clarté.

    Donc le probleme vient de
    Code:
    if(coutF3>coutF1) 
       {
         c=1; //revenir à l étape1
        }
    Donc coutF3 est toujours <= à coutF1

    Ce type de code (avec le do while) n'est donc à utiliser que si on est certain que à un moment ou à un autre, la condition coutF3>coutF1 sera réalisée.
    Apparement ce n'est pas le cas.
    En bon vivant, rien ne vaut un bonne logique ternaire.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Algorithme
    Par totio94 dans le forum Programmation et langages, Algorithmique
    Réponses: 13
    Dernier message: 22/11/2010, 09h41
  2. algorithme
    Par invitef3875b30 dans le forum Mathématiques du collège et du lycée
    Réponses: 10
    Dernier message: 04/05/2010, 17h16
  3. algorithme
    Par invite70424c07 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 27/09/2009, 13h37
  4. algorithme
    Par invitebd0bedb0 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 30/03/2009, 15h35
  5. Algorithme
    Par inviteeb9e3975 dans le forum Mathématiques du supérieur
    Réponses: 14
    Dernier message: 11/01/2009, 23h05