Les structures

jeandchanel Messages postés 140 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je voudrais code un programme qui permet de calculer la surface de diverses figures géométriques telle que le Carre, le Trapèze, l'Ellipse, etc. Pour cela j'ai pensé aux structures mais hélas je suis bloqué. J'ai donc besoin de votre assistance pour continuer. Neamoins, j'ai pu realiser le meme programme en procedant autrement, je pense qu'en utilisant les structures le programme sera plus simplifier et plus lisible. Merci d'avance.
typedef struct Dimensions Dimensions;
struct Dimensions
{
    char nomFigure[100];
    double base1;
    double base2;
    double hauteur;
    double cote;
    double rayon;
    double largeur;
    double longueur;
    
};

Dimensions tableau[]= 
{
    {"Trapeze", 0, 0, 0},
    {"Carre", 0},
    {"Cercle", 0},
    {"Rectangle", 0,0}
};



 Dimensions demanderMenu()
 {
    int choice;
    
    printf("MENU\n ");
    printf("Bien vouloir choisir une figure geometrique !\n");
    printf("1. Trapeze\n2. Carre\n3. Cercle\n4. Rectangle\n ");
    do
    {
        printf("Votre choix ? ");
        scanf("%d", &choice);
    }while(choice < 1 || choice > 4);
    
    return tableau[choice - 1]; 
 }
 
double surfaceTrapeze(Dimensions dimensions)
{
    return ((dimensions.base1 + dimensions.base2) * dimensions.hauteur) /2;  
}
double surfaceCarre(Dimensions dimensions)
{
   return dimensions.cote * dimensions.cote; 
}
double surfaceCercle(Dimensions dimensions)
{
    return 2 * 3.14 * dimensions.rayon*dimensions.rayon;
}
double surfaceRectangle(Dimensions dimensions)
{
    return dimensions.longueur * dimensions.largeur;
}


1 réponse

  1. Pierre1310 Messages postés 8854 Statut Membre 652
     
    Salut,

    Pour commencer, ou est ton main?
    De plus, ta fonction
    Dimensions demanderMenu()
    retourne une variable mais on ne connait pas le type.

    int Dimensions demanderMenu() //retourne une variable de type int ect ect


    Aucun navigateur ne propose d'extension boule-de-cristal : postez des informations pour avoir de l'aide...
    -2
    1. jeandchanel Messages postés 140 Date d'inscription   Statut Membre Dernière intervention  
       
      Salut,
      la fonction demanderMenu(), retourne un tableau de type Dimensions !
      return tableau[choice - 1]; 


      Dimensions tableau[]= 
      {
          {"Trapeze", 0, 0, 0},
          {"Carre", 0},
          {"Cercle", 0},
          {"Rectangle", 0,0}
      };
      
      0
    2. jeandchanel Messages postés 140 Date d'inscription   Statut Membre Dernière intervention   > jeandchanel Messages postés 140 Date d'inscription   Statut Membre Dernière intervention  
       
      voici le reste du programme

      void demanderCoordTrapeze(Dimensions dimensions)
      {
          printf("\n");
          printf("Vous avez choisi le %s !\n", dimensions.nomFigure);
          printf("Saisir la petite base du %s : ", dimensions.nomFigure);
          scanf("%lf", &dimensions.base1); 
          printf("Saisir la grande base du %s : ", dimensions.nomFigure);
          scanf("%lf", &dimensions.base2);
          printf("Saisir la hauteur du %s : ", dimensions.nomFigure);
          scanf("%lf", &dimensions.hauteur);
          
          printf("\n");
          printf("La surface du %s est de %.2lf ", dimensions.nomFigure, surfaceTrapeze(dimensions));
      
      }
      
      void demanderCoordCarre(Dimensions dimensions)
      {
          
          printf("\n");
          printf("Vous avez choisi le %s !\n", dimensions.nomFigure);
          printf("Saisir le cote du %s : ", dimensions.nomFigure);
          scanf("%lf", &dimensions.cote);
          printf("\n");
          printf("La surface du %s de cote %.2lf cm est de %.2lf cm2", dimensions.nomFigure, dimensions.cote, surfaceCarre(dimensions));
      
      }
      
      
      int main()
      {
          int choice;
        
          
        Dimensions dimensions = demanderMenu();
        
        if(choice == 1) 
        demanderCoordTrapeze(dimensions); 
        
        else if (choice == 2) 
        demanderCoordCarre(dimensions); 
        
        
        return 0;
      }
      
      0
    3. Pierre1310 Messages postés 8854 Statut Membre 652
       
       Dimensions demanderMenu()
       {
          int choice;
          
          printf("MENU\n ");
          printf("Bien vouloir choisir une figure geometrique !\n");
          printf("1. Trapeze\n2. Carre\n3. Cercle\n4. Rectangle\n ");
          do
          {
              printf("Votre choix ? ");
              scanf("%d", &choice);
          }while(choice < 1 || choice > 4);
          
          return tableau[choice - 1]; 
       }


      Sur cette fonction.

      Tu n'as pas le droit de ne pas préciser la variable de retour et tu ne peux non plus dire que tu retournes une structure vu que tout ce que tu feras dans ta fonction sera automatiquement écris dans la structure.

      Tu t'es renseigné sur les structures avant de les utiliser?
      0
    4. jeandchanel Messages postés 140 Date d'inscription   Statut Membre Dernière intervention   > Pierre1310 Messages postés 8854 Statut Membre
       
      Oui, je me suis renseigner mais ce n'est pas encore tres clair dans ma tete. Dans ce cas precis que faut il donc faire?
      0
    5. jeandchanel Messages postés 140 Date d'inscription   Statut Membre Dernière intervention  
       
      le programme ne fonctionne pas comme je le souhaite !
      0