Les structures

jeandchanel Messages postés 135 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 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

Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
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   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
jeandchanel Messages postés 135 Date d'inscription   Statut Membre Dernière intervention   > jeandchanel Messages postés 135 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
Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention   651
 
 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   Statut Membre Dernière intervention   > Pierre1310 Messages postés 8564 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
le programme ne fonctionne pas comme je le souhaite !
0