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 :

erreur a l'execution de fonction


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 80
    Par défaut erreur a l'execution de fonction
    Salut a tous,
    voulant illustrant le fonctionnement des fonctions sous c j'execute le code suivant que j'ai pris sur http://melem.developpez.com/langagec...ge=expressions
    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
    27
    28
    include <stdio.h>
     
    double Volume(double rbase, double hauteur);
     
    int main(void)
    {
        Clrscr() ;
        double r, h, V;
     
        printf("Ce programme calcule le volume d'un cone.\n");
     
        printf("Entrez le rayon de la base : ");
        scanf("%lf", &r);
     
        printf("Entrez la hauteur du cone : ");
        scanf("%lf", &h);
     
        V = Volume(r, h);
        printf("Le volume du cone est : %f", V);
     
        return 0;
        getchar() ;
    }
     
    double Volume(double rbase, double hauteur)
    {
        return (3.14 * rbase * rbase * hauteur) / 3;
    }
    NB:j'ai mis rbase au lieu r_base sur le site ensuite j'ai mis int main(void) au lieu de int main() comme on m'a recommandé sur le forum tout comme getchar
    A l'execution j'ai le message d'erreur suivant m'indiquant cinq erreurs :
    Error C:\TCSETUP\TC\TEST.C 6: Expression syntax in function main
    Error C:\TCSETUP\TC\TEST.C 9: Undefined symbol 'r' in function main
    Error C:\TCSETUP\TC\TEST.C 11: Undefined symbol 'h' in function main Error C:\TCSETUP\TC\TEST.C 12: Undefined symbol 'v' in function main
    Error C:\TCSETUP\TC\TEST.C 18: Declaration syntax error
    j'aimerais bien que vous m'aidiez a solutionné ce problème qui (j'espère) me permettra de mieux comprendre les fonctions sous c.
    Dans le premier message d'erreur
    Error C:\TCSETUP\TC\TEST.C 6: Expression syntax in function main
    je crois que c'est ce bout de code qui est mis en cause
    mais a priori je vois pas d'erreur

    merci de m'aider

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    1) fonction Clrscr() inconnue au bataillon !

    2) la fonction getchar doit être appelée avant le return, sinon elle ne sera jamais exécutée.

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par manguigs Voir le message
    Salut a tous,
    voulant illustrant le fonctionnement des fonctions sous c j'execute le code suivant que j'ai pris sur http://melem.developpez.com/langagec...ge=expressions
    Ce code est incorrect.
    • Clrscr() n'existe pas.
    • En C90, on doit définir les variables au débuts d'un bloc.
    • Les getchar() sont mal placés (c'est 1 par scanf()).
    • Il manque un '\n'
    • Je conseille une meilleure définition de PI (M_PI qui est POSIX.1) :

      http://emmanuel-delahaye.developpez....ib/ed/inc/pi.h

    ceci est correct :
    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
    27
    28
    29
     
    /* http://emmanuel-delahaye.developpez.com/clib/ */
    #include "ed/inc/pi.h"
    #include <stdio.h>
     
    double Volume (double rbase, double hauteur)
    {
       return (M_PI * rbase * rbase * hauteur) / 3;
    }
     
    int main (void)
    {
       double r, h, V;
     
       printf ("Ce programme calcule le volume d'un cone.\n");
     
       printf ("Entrez le rayon de la base : ");
       scanf ("%lf", &r);
       getchar ();
     
       printf ("Entrez la hauteur du cone : ");
       scanf ("%lf", &h);
       getchar ();
     
       V = Volume (r, h);
       printf ("Le volume du cone est : %f\n", V);
     
       return 0;
    }

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    • En C90, on doit définir les variables au débuts d'un bloc.
    je vois que tu as légèrement modifié ta position par rapport à nos discussions de l'an dernier


  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    je vois que tu as légèrement modifié ta position par rapport à nos discussions de l'an dernier
    Je ne vois pas de quoi tu parles. C'est la norme, c'est tout...

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 80
    Par défaut
    ok ca marche, j'ai bien envie de mettre résolu mais il y a quelque chose qui me chagrine:qu'on me dit inconnu
    mais dans ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int main(void)
    {
    clrscr();
    printf("hello world");
    getchar();
    return 0;
    }
    ça marche avec qui permet d'effacer l'écran a chaque execution du code.
    a chaque nouvelle execution du code
    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
    27
    28
    29
     
    /* http://emmanuel-delahaye.developpez.com/clib/ */
    #include "ed/inc/pi.h"
    #include <stdio.h>
     
    double Volume (double rbase, double hauteur)
    {
       return (M_PI * rbase * rbase * hauteur) / 3;
    }
     
    int main (void)
    {
       double r, h, V;
     
       printf ("Ce programme calcule le volume d'un cone.\n");
     
       printf ("Entrez le rayon de la base : ");
       scanf ("%lf", &r);
       getchar ();
     
       printf ("Entrez la hauteur du cone : ");
       scanf ("%lf", &h);
       getchar ();
     
       V = Volume (r, h);
       printf ("Le volume du cone est : %f\n", V);
     
       return 0;
    }
    les anciennes valeurs renseignées (r,h,v) apparaissent.je veux bien effacer les anciennes valeurs a chaque execution.

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 80
    Par défaut
    je trouve vraiment bizarre qu'on me dise que (clear screen) soit inconnu alors que je l'ai utilisé auparavant pour effacer l'ecran
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int main(void)
    {
    clrscr();
    printf("hello world");
    getchar();
    return 0;
    }
    ce bout de code fonctionne a merveille.
    je suis preneur d'une autre methode pour effacer l'écran

  8. #8
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par manguigs Voir le message
    ok ca marche, j'ai bien envie de mettre résolu mais il y a quelque chose qui me chagrine:qu'on me dit inconnu
    mais dans ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int main(void)
    {
    clrscr();
    printf("hello world");
    getchar();
    return 0;
    }
    Ce code utilise clrscr() et non Clrscr(). Le C est sensible a la case.

    En outre clrscr() n'est pas une fonction C standard. Il s'agit donc soit d'une fonction du projet, soit d'une fonction d'une bibliothèque externe.

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 80
    Par défaut
    est une erreur de frappe sur le forum, dans mon code, j'ai bien mis et j'ai toujours le même message d'erreur*
    j'utilise la bibliothèque

  10. #10
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par manguigs Voir le message
    j'utilise la bibliothèque
    stdio.h n'est pas une bibliothèque, c'est un des nombreux fichiers d'en-tête de la bibliothèque standard.

    Et sinon quel message d'erreur exact as tu ?

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par manguigs Voir le message
    est une erreur de frappe sur le forum, dans mon code, j'ai bien mis et j'ai toujours le même message d'erreur*
    j'utilise la bibliothèque
    Je rappelle que clrscr() n'est pas une fonction standard du C. Pour que l'appel à clrscr() se fasse correctement, il inclure <conio.h> (Borland C) ou <conio2.h> (MinGW)

  12. #12
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Gao,
    Citation Envoyé par manguigs Voir le message
    ... une erreur de frappe sur le forum, dans mon code, j'ai bien mis
    Et une fois de plus :

    Copier/Coller existe. Le sais-tu ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSP][JAVASCRIPT] erreur d'execution de fonction
    Par zybay dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/05/2007, 17h19
  2. [Pl/pgSQL] Erreur sur l'execution d'une fonction.
    Par Floréal dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/09/2005, 00h48
  3. executer une fonction à la fermeture d'une fenêtre
    Par Oluha dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/02/2005, 09h46
  4. [Reflection] Executer une fonction dont le nom est contenu dans un String
    Par christobal dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/07/2004, 15h23

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