Correction d'un petit programme
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Correction d'un petit programme



  1. #1
    Matlabo

    Correction d'un petit programme


    ------

    Salut;

    J'ai écrit un tout petit programme de conversion d'argent, et une fois terminer, j'ai lançais le débogueur et ça m'affichait <<< 'nombreDA' undeclared (first use in this function) >>>> alors que selon un des cours de programmation en C sur internet y'avait pas besoin de la déclarer, donc j'aimerai savoir si vous pouvez trouvez le problème ???

    Voici le programme:
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    
    double Conversion_DA___EURO (double nombreDA)
    {
        return 0.0074 * nombreDA;
    }
    
    
    double Conversion_EURO___DA(double nombreEURO)
    {
        return 135.69 * nombreDA ;
    }
    
    
    
    double Conversion_DA___DT(double nombreDA)
    {
        return 0.025 * nombreDA;
    }
    
    
    
    double Conversion_DT___DA(double nombreDT)
    {
        return 39.61 * nombreDA;
    }
    
    
    
    int main()
    {
        int NOMBRE_ENTRE = 0;
        printf("BIENVENUE, dans le logiciel de conversion d'argent!!!!!!!!!!!!!/n");
    
        printf("Si vous voulez faire la conversion _______DA_______EURO (OU LE CONTRAIRE),.....Appuiyer sur 0, ++++++SINON+++++++ si vous voulez faire la conversion___________DA___________DT________ (ou le contraire) appuiyez sur 1");
    
        scanf("%d", &NOMBRE_ENTRE);
    
    
    
    
    
    
    
        if(NOMBRE_ENTRE = 0)
        {
            int NOMBRE_ENTRE_02 = 0;
            printf("Si vous voulez faire la conversion __________DA__________EURO *********Appuiyez sur /// 0 ///, ou la conversion _____EURO_________DA Appuiyez sur /// 1 ///");
            scanf("%d", &NOMBRE_ENTRE_02);
    
            if(NOMBRE_ENTRE_02 = 0);
            {
                double Valeure_en_DA =0;
                printf("Entrez la Valeur en DA :  ");
                scanf("%d", &Valeure_en_DA);
    
    
                printf("Sa valeur en EURO est :%d",Conversion_DA___EURO(Valeure_en_DA) );
    
            }
    
    
            if(NOMBRE_ENTRE_02 = 1);
            {
                double Valeure_en_EURO =0;
                printf("Entrez la Valeur en EURO :  ");
                scanf("%d", &Valeure_en_EURO);
    
    
                printf("Sa valeur en EURO est :%d",Conversion_EURO___DA(Valeure_en_EURO) );
    
            }
    
        }
    
    
    
    
    
    
    
    
        else if (NOMBRE_ENTRE = 1)
    
        {
            int NOMBRE_ENTRE_03 = 0;
            printf("Si vous voulez faire la conversion __________DA__________DT *********Appuiyez sur /// 0 ///, ou la conversion _____DT_________DA Appuiyez sur /// 1 ///");
             scanf("%d", &NOMBRE_ENTRE_03);
    
    
            if(NOMBRE_ENTRE_03 = 0);
            {
                double Valeure_en_DA =0;
                printf("Entrez la Valeur en DA :  ");
                scanf("%d", &Valeure_en_DA);
    
    
                printf("Sa valeur en DT est :%d",Conversion_DA___DT(Valeure_en_DA) );
    
            }
    
    
             if(NOMBRE_ENTRE_03 = 1);
            {
                double Valeure_en_DT =0;
                printf("Entrez la Valeur en DT :  ");
                scanf("%d", &Valeure_en_DT);
    
    
                printf("Sa valeur en DA est :%d",Conversion_DT___DA(Valeure_en_DT) );
    
            }
    
        }
            else
    
            {
                printf("Vous n'avez pas entré le bon numéro");
            }
    
    
    
    
            return 0;
    
        }
    Merci !!

    -----
    Dernière modification par Antoane ; 01/01/2019 à 22h34. Motif: Intégration du programme au corps du message

  2. #2
    Ikhar84
    Animateur Informatique

    Re : Correction d'un petit programme

    Salut,
    Quelques petites remarque avant tout, si tu le permets:

    Les noms des variables doivent être plus explicites que NOMBRE_ENTRE_01, ...
    Code:
    char choix;
    double devise;
    Par exemple... on voit immédiatement quelle valeur sera utile au calcules et lequels permettent de "contrôler" le déroulement du programme.

    Évites de jouer avec la casse des noms de variables. Donne toi une convention claire et suis la. Par exemple les majuscules peuvent représenter des variables globales, les variables locales sont en minuscules, les mots séparés avec des underscore.

    Évites les if() à la queue leuleu...
    Les switch...case sont parfaits ici pour gerer les "actions" après un menu...
    En parlant de menu, écris en un clair et aéré sur plusieurs lignes. Les caractères comme * par exemple, peuvent en egayer la présentation.

    Revenons en au coeur du problème.
    Toute variable ou fonction doit obligatoirement être déclarée AVANT son utilisation.
    Pour une fonction, c'est un peu particulier: sa définition (son code) est sa déclaration. Tu dois confondre avec le prototype, qui est une autre forrme de déclaration.
    Maintenant, l'appel d'une fonction vaut déclaration implicite.
    Le fonctionnement dépendra de la version de C prise en charge et du compilo.

    Ici, tu parles de
    nombreDA
    Je ne vois nul part la définition de cette fonction ou la déclaration d'une variable avec un tel nom, d'où le coup de gueule du compilo... (sauf erreur de ma part...)...

  3. #3
    CM63

    Re : Correction d'un petit programme

    Dans la deuxième fonction, l'argument s'appelle nombreEURO, il faut donc utiliser nombreEURO dans le calcul et non pas nombreDA.

  4. #4
    Ikhar84
    Animateur Informatique

    Re : Correction d'un petit programme

    Bien vu !

    Le compilo va pas non plus aimer :
    Code:
    double Conversion_DT___DA(double nombreDT) {
            return 39.61 * nombreDA;
     }
    Les pièges du copier/coller et l'interêt d'IDE...

    Edit: en fait toutes les fonctions utilisent nombreDA...
    Dernière modification par Ikhar84 ; 02/01/2019 à 00h14.

  5. A voir en vidéo sur Futura
  6. #5
    Matlabo

    Re : Correction d'un petit programme

    Ahhh, d'accord je vois merci beaucoup, et j'essaierai de prendre en compte vos indications.


    Citation Envoyé par Ikhar84 Voir le message

    Ici, tu parles de

    Nombre Da

    Je ne vois nul part la définition de cette fonction ou la déclaration d'une variable avec un tel nom, d'où le coup de gueule du compilo... (sauf erreur de ma part...)...

    Oui mais NombreDa est un paramètre d'une fonction, donc normalement je ne suis pas censé la déclarer???

    Merci

  7. #6
    invite9dc7b526

    Re : Correction d'un petit programme

    le problème c'est que tu utilises un nom pour le paramètre et dans le corps de la fonction tu utilises un autre nom, comme par exemple ici:

    Code:
    double Conversion_DT___DA(double nombreDT)
    {
        return 39.61 * nombreDA;
    }
    le compilateur ne peut pas deviner que nombreDA est la même chose que nombreDT

Discussions similaires

  1. Correction de programme
    Par invitebebe77d3 dans le forum Électronique
    Réponses: 2
    Dernier message: 25/03/2013, 16h20
  2. correction d'un programme
    Par invite29c3e7f2 dans le forum Programmation et langages, Algorithmique
    Réponses: 12
    Dernier message: 24/10/2011, 08h13
  3. Petit programme C++
    Par invitef1ad610d dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 28/11/2010, 17h44
  4. Petit programme en C.
    Par invitebf26947a dans le forum Programmation et langages, Algorithmique
    Réponses: 17
    Dernier message: 05/11/2010, 17h20
  5. programme pour correction HAMMING
    Par invitebdffd8ee dans le forum Électronique
    Réponses: 1
    Dernier message: 08/03/2007, 14h20