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 d'exécution d'un programme


Sujet :

C

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 31
    Points : 27
    Points
    27
    Par défaut Erreur d'exécution d'un programme
    Salut à tous.

    J'ai écrit un petit programme en C qui calcule respectivement la surface et le périmètre d'un rectangle et d'un cercle, suite au choix de l'utilisateur.
    Je me suis basé sur un cours de programmation modulaire pour le faire mais lors de l'exécution du programme, j'ai une erreur d’exécution. Un coup d'aide me serait très utile afin de finaliser mon programme.

    main.c
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    #include <stdio.h>
    #include <stdlib.h>
    double PerimetreRectangle(double L,double l);//L:Longeur, l:Largeur.
    double Surface_Rectangle(double L, double l); //L:Longeur, l:Largeur.
    double Perimetre_Cercle(double R); // R:Rayon
    double Aire_Cercle(double R); // R:Rayon
     
     
    int main()
    {
        int choix=0;
        double L, l, Res1,Longe,larg,Res2,R,Res3,R1,Res4;
        printf("Que voulez vous faire?\n");
        printf("1.Calculer le perimetre d'un rectangle\n");
        printf("2.Calculer la surface d'un rectangle\n");
        printf("3.Calculer le perimetre d'un Cercle\n");
        printf("4.Calculer la surface d'un Cercle\n");
     
            if(choix ==1){
                    printf("Veuillez entrer la Longeur puis la largeur:\n");
                    scanf("%lf %lf",&L,&l);
                    Res1=PerimetreRectangle(L,l);
                    printf("perimetre = %.3f:\n",Res1);
     
            }
            else if(choix == 2){
                    printf("Veuillez entrer la Longeur puis la largeur:\n");
                    scanf("%lf %lf",&Longe,&larg);
                    Res2=Surface_Rectangle(Longe,larg);
                    printf("Surface = %.3f:\n",Res2);
            }
     
          else if(choix == 3){
                printf("Veuillez entrer le rayon:\n");
                scanf("%lf",&R);
                Res3=Perimetre_Cercle(R);
                printf("Perimetre = %f",Res3);
     
          }
            else if(choix == 4){
                    printf("Veuillez entrer le rayon:\n");
                    scanf("%lf",&R1);
                    Res4=Aire_Cercle(R);
                    printf("Surface = %f",Res4);
            }
          else{
                 printf("Vous avez fait un mauvais choix!Recommencer.\n");
          }
        return 0;
    }
    Rectangle.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #ifndef RECTANGLE_H_INCLUDED
    #define RECTANGLE_H_INCLUDED
    double PerimetreRectangle(double L,double l);//L:Longeur, l:Largeur.
    double Surface_Rectangle(double L, double l); //L:Longeur, l:Largeur.
    #endif // RECTANGLE_H_INCLUDED
    Rectangle.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include<stdio.h>
    #include<stdlib.h>
    #include"Rectangle.h" // On inclut Rectangle.h
     
    double PerimetreRectangle(double L,double l) //L:Longeur, l:Largeur.
    {
        return 2*(L+l);
    }
     
    double Surface_Rectangle(double L, double l) //L:Longeur, l:Largeur.
    {
      return L*l;
    }
    Cercle.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #ifndef CERCLE_H_INCLUDED
    #define CERCLE_H_INCLUDED
    double Perimetre_Cercle(double R); // R:Rayon
    double Aire_Cercle(double R); // R:Rayon
    #endif // CERCLE_H_INCLUDED
    Cercle.c
    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
    #include<stdio.h>
    #include<stdlib.h>
    #include"Cercle.h"
     
    double Perimetre_Cercle(double R) // R:Rayon
    {
        const double Pi=22/7;
        return 2*Pi*R;
    }
     
    double Aire_Cercle(double R) // R:Rayon
    {
        const double Pi=22/7;
        return 2*Pi*R*R;
    }
    Merci d'avance pour votre aide.

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 351
    Points : 42 822
    Points
    42 822
    Par défaut
    Comment fais tu la compilation ?

    Et en général, si ça compile pas, tu as l'explication dans le message du compilo.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 562
    Points : 7 628
    Points
    7 628
    Par défaut
    Bonjour,

    Il faut préciser l'erreur que tu as. Est-ce une erreur de compilation, d'édition des liens ou à l'exécution? Et que se passe-t-il et qu'il affiché.
    Sinon quelque commentaires sur ton code.
    Tu as fait des fichiers header, il faut les inclure dans leur fichiers sources associé mais aussi dans le fichier source utilisateur. Donc main.c doit les inclure, plutôt que de réécrire les déclarations des fonctions.
    En C : 22/7 vaut 3 tout pile car diviser un entier par un entier donne toujours un entier.
    Es-tu sûr de ta formule pour la surface d'un cercle?
    Variables : on ne doit pas utiliser les majuscules, on doit utiliser des noms explicites, on doit déclarer les variables au plus près de leur utilisation. Tout ceci rend le code bien plus lisible.
    Et surtout, il faudrait penser à demander le choix sans cela le code répond toujours : "Vous avez fait un mauvais choix! Recommencez."

    Il faut vérifier le fichier Cercle.c et le fichier main.c pourrait être :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #include <stdio.h>
    #include "Rectangle.h"
    #include "Cercle.h"
     
    int main()
    {
        printf( "Que voulez vous faire?\n"
                "1.Calculer le perimetre d'un rectangle\n"
                "2.Calculer la surface d'un rectangle\n"
                "3.Calculer le perimetre d'un Cercle\n"
                "4.Calculer la surface d'un Cercle\n" );
     
        int  choix;
        scanf( "%d" , &choix );   // penser à demander le choix
     
        if ( choix == 1 ) {
            printf( "Veuillez entrer la longueur puis la largeur:\n" );
            double  longueur , largeur;
            scanf( "%lf %lf" , &longueur , &largeur );
            double  resultat = PerimetreRectangle( longueur , largeur );
            printf( "perimetre = %.3f:\n" , resultat );
        }
        else if ( choix == 2 ) {
            printf( "Veuillez entrer la longueur puis la largeur:\n" );
            double  longueur , largeur;
            scanf( "%lf %lf" , &longueur , &largeur );
            double  resultat = Surface_Rectangle( longueur , largeur );
            printf( "Surface = %.3f:\n" , resultat );
        }
        else if ( choix == 3 ) {
            printf( "Veuillez entrer le rayon:\n" );
            double  rayon;
            scanf( "%lf" , &rayon );
            double  resultat = Perimetre_Cercle( rayon );
            printf( "Perimetre = %f" , resultat );
        }
        else if ( choix == 4 ) {
            printf( "Veuillez entrer le rayon:\n" );
            double  rayon;
            scanf( "%lf" , &rayon );
            double  resultat = Aire_Cercle( rayon );
            printf( "Surface = %f" , resultat );
        }
        else {
            printf( "Vous avez fait un mauvais choix! Recommencez.\n" );
        }
        return 0;
    }

  4. #4
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 610
    Points : 1 534
    Points
    1 534
    Par défaut
    Hello,

    Et en plus de ce qui a été écrit, un switch() serait du plus bel effet dans le main()
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

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

Discussions similaires

  1. Erreur d'exécution d'un programme qui interroge une BDD
    Par azouzmenai24 dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/12/2018, 12h10
  2. Erreur à l'exécution d'un programme utilisant CPLEX
    Par CliffeCSTL dans le forum Débuter
    Réponses: 3
    Dernier message: 29/01/2013, 12h50
  3. Réponses: 3
    Dernier message: 18/12/2011, 11h05
  4. Erreur lors de l'exécution d'un programme
    Par NELLLY dans le forum MATLAB
    Réponses: 3
    Dernier message: 09/05/2007, 11h43
  5. Erreur à l'exécution d'une programme
    Par luce007 dans le forum MATLAB
    Réponses: 3
    Dernier message: 08/05/2007, 22h24

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