Les structures

Fermé
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017 - 17 juin 2016 à 09:31
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 18 juin 2016 à 11:33
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

Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 649
Modifié par Pierre1310 le 17/06/2016 à 09:43
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
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017
Modifié par jeandchanel le 17/06/2016 à 10:16
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
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017 > jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017
17 juin 2016 à 10:30
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
Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 649
17 juin 2016 à 11:58
 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
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017 > Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020
17 juin 2016 à 12:06
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
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017
17 juin 2016 à 12:07
le programme ne fonctionne pas comme je le souhaite !
0