Actualiser exo2/main.c

This commit is contained in:
bastien 2025-05-12 08:11:21 +00:00
parent 6e75fcf26d
commit 79fc1d81fb

View File

@ -5,16 +5,16 @@
#define PI 3.14159265358979323846 #define PI 3.14159265358979323846
// Prototypes des fonctions de calcul // Prototypes des fonctions de calcul
float surfaceCarré(int côté); // Erreur de type 1: paramètre float attendu mais déclaré comme int float surfaceCarre(int cote); // Erreur de type 1: paramètre float attendu mais déclaré comme int
float surfaceRectangle(float longueur, float largeur); float surfaceRectangle(float longueur, float largeur);
float surfaceCercle(float rayon); float surfaceCercle(float rayon);
float surfaceTriangle(float base, float hauteur); float surfaceTriangle(float base, float hauteur);
float surfaceParallélogramme(float base, float hauteur); float surfaceParallelogramme(float base, float hauteur);
char surfaceLosange(float diagonale1, float diagonale2); // Erreur de type 2: retourne char au lieu de float char surfaceLosange(float diagonale1, float diagonale2); // Erreur de type 2: retourne char au lieu de float
float surfaceTrapèze(float base1, float base2, float hauteur); float surfaceTrapeze(float base1, float base2, float hauteur);
float surfaceEllipse(float demiAxeA, float demiAxeB); float surfaceEllipse(float demiAxeA, float demiAxeB);
float surfacePentagoneRégulier(float côté); float surfacePentagoneRegulier(float cote);
float surfaceHexagoneRégulier(float côté); float surfaceHexagoneRegulier(float cote);
// Prototypes des fonctions d'interaction // Prototypes des fonctions d'interaction
void afficherMenu(); void afficherMenu();
@ -43,16 +43,16 @@ int main() {
void afficherMenu() { void afficherMenu() {
printf("\n==== CALCULATEUR DE SURFACES GÉOMÉTRIQUES ====\n"); printf("\n==== CALCULATEUR DE SURFACES GÉOMÉTRIQUES ====\n");
printf("1. Carré\n"); printf("1. Carre\n");
printf("2. Rectangle\n"); printf("2. Rectangle\n");
printf("3. Cercle\n"); printf("3. Cercle\n");
printf("4. Triangle\n"); printf("4. Triangle\n");
printf("5. Parallélogramme\n"); printf("5. Parallelogramme\n");
printf("6. Losange\n"); printf("6. Losange\n");
printf("7. Trapèze\n"); printf("7. Trapeze\n");
printf("8. Ellipse\n"); printf("8. Ellipse\n");
printf("9. Pentagone gulier\n"); printf("9. Pentagone Regulier\n");
printf("10. Hexagone gulier\n"); printf("10. Hexagone Regulier\n");
printf("0. Quitter\n"); printf("0. Quitter\n");
printf("Votre choix : "); printf("Votre choix : ");
} }
@ -68,12 +68,12 @@ void traiterChoix(int choix) {
switch (choix) { switch (choix) {
case 1: { case 1: {
float côté; float cote;
printf("\nCalcul de la surface d'un carré\n"); printf("\nCalcul de la surface d'un Carre\n");
printf("Entrez la longueur du côté : "); printf("Entrez la longueur du cote : ");
scanf("%f", &côté); scanf("%f", &cote);
surface = surfaceCarré(côté); surface = surfaceCarre(cote);
printf("La surface du carré est : %.2f\n", surface); printf("La surface du Carre est : %.2f\n", surface);
break; break;
} }
case 2: { case 2: {
@ -109,13 +109,13 @@ void traiterChoix(int choix) {
} }
case 5: { case 5: {
float base, hauteur; float base, hauteur;
printf("\nCalcul de la surface d'un parallélogramme\n"); printf("\nCalcul de la surface d'un Parallelogramme\n");
printf("Entrez la base : "); printf("Entrez la base : ");
scanf("%f", &base); scanf("%f", &base);
printf("Entrez la hauteur : "); printf("Entrez la hauteur : ");
scanf("%f", &hauteur); scanf("%f", &hauteur);
surface = surfaceParallélogramme(base, hauteur); surface = surfaceParallelogramme(base, hauteur);
printf("La surface du parallélogramme est : %.2f\n", surface); printf("La surface du Parallelogramme est : %.2f\n", surface);
break; break;
} }
case 6: { case 6: {
@ -131,15 +131,15 @@ void traiterChoix(int choix) {
} }
case 7: { case 7: {
float base1, base2, hauteur; float base1, base2, hauteur;
printf("\nCalcul de la surface d'un trapèze\n"); printf("\nCalcul de la surface d'un Trapeze\n");
printf("Entrez la première base : "); printf("Entrez la première base : ");
scanf("%f", &base1); scanf("%f", &base1);
printf("Entrez la deuxième base : "); printf("Entrez la deuxième base : ");
scanf("%f", &base2); scanf("%f", &base2);
printf("Entrez la hauteur : "); printf("Entrez la hauteur : ");
scanf("%f", &hauteur); scanf("%f", &hauteur);
surface = surfaceTrapèze(base1, base2, hauteur); surface = surfaceTrapeze(base1, base2, hauteur);
printf("La surface du trapèze est : %.2f\n", surface); printf("La surface du Trapeze est : %.2f\n", surface);
break; break;
} }
case 8: { case 8: {
@ -154,29 +154,29 @@ void traiterChoix(int choix) {
break; break;
} }
case 9: { case 9: {
float côté; float cote;
printf("\nCalcul de la surface d'un pentagone gulier\n"); printf("\nCalcul de la surface d'un pentagone Regulier\n");
printf("Entrez la longueur du côté : "); printf("Entrez la longueur du cote : ");
scanf("%f", &côté); scanf("%f", &cote);
surface = surfacePentagoneRégulier(côté); surface = surfacePentagoneRegulier(cote);
printf("La surface du pentagone gulier est : %.2f\n", surface); printf("La surface du pentagone Regulier est : %.2f\n", surface);
break; break;
} }
case 10: { case 10: {
float côté; float cote;
printf("\nCalcul de la surface d'un hexagone gulier\n"); printf("\nCalcul de la surface d'un hexagone Regulier\n");
printf("Entrez la longueur du côté : "); printf("Entrez la longueur du cote : ");
scanf("%f", &côté); scanf("%f", &cote);
surface = surfaceHexagoneRégulier(côté); surface = surfaceHexagoneRegulier(cote);
printf("La surface de l'hexagone gulier est : %.2f\n", surface); printf("La surface de l'hexagone Regulier est : %.2f\n", surface);
break; break;
} }
} }
} }
// Implémentations des fonctions de calcul // Implémentations des fonctions de calcul
float surfaceCarré(int côté) { // Erreur de type 1: paramètre float attendu mais implémenté comme int float surfaceCarre(int cote) { // Erreur de type 1: paramètre float attendu mais implémenté comme int
return côté * côté; return cote * cote;
} }
float surfaceRectangle(float longueur, float largeur) { float surfaceRectangle(float longueur, float largeur) {
@ -191,7 +191,7 @@ float surfaceTriangle(float base, float hauteur) {
return 0.5 * base * hauteur; return 0.5 * base * hauteur;
} }
float surfaceParallélogramme(float base, float hauteur) { float surfaceParallelogramme(float base, float hauteur) {
return base * hauteur; return base * hauteur;
} }
@ -199,7 +199,7 @@ char surfaceLosange(float diagonale1, float diagonale2) { // Erreur de type 2:
return 0.5 * diagonale1 * diagonale2; return 0.5 * diagonale1 * diagonale2;
} }
float surfaceTrapèze(float base1, double base2, float hauteur) { // Erreur de type 4: paramètre float attendu mais implémenté comme double float surfaceTrapeze(float base1, double base2, float hauteur) { // Erreur de type 4: paramètre float attendu mais implémenté comme double
return 0.5 * (base1 + base2) * hauteur; return 0.5 * (base1 + base2) * hauteur;
} }
@ -207,12 +207,12 @@ float surfaceEllipse(float demiAxeA, float demiAxeB) {
return PI * demiAxeA * demiAxeB; return PI * demiAxeA * demiAxeB;
} }
float surfacePentagoneRégulier(float côté) { float surfacePentagoneRegulier(float cote) {
// Formule: (5/4) * côté² * 1/tan(π/5) // Formule: (5/4) * cote² * 1/tan(π/5)
return (5.0 / 4.0) * côté * côté * (1.0 / tan(PI / 5.0)); return (5.0 / 4.0) * cote * cote * (1.0 / tan(PI / 5.0));
} }
int surfaceHexagoneRégulier(float côté) { // Erreur de type 5: retourne int au lieu de float int surfaceHexagoneRegulier(float cote) { // Erreur de type 5: retourne int au lieu de float
// Formule: (3√3/2) * côté² // Formule: (3√3/2) * cote²
return (3.0 * sqrt(3.0) / 2.0) * côté * côté; return (3.0 * sqrt(3.0) / 2.0) * cote * cote;
} }