#include #include #include #define PI 3.14159265358979323846 // Prototypes des fonctions de calcul float surfaceCarré(float côté); float surfaceRectangle(float longueur, float largeur); float surfaceCercle(float rayon); float surfaceTriangle(float base, float hauteur) float surfaceParallélogramme(float base, float hauteur); float surfaceLosange(float diagonale1, float diagonale2); float surfaceTrapèze(float base1, float base2, float hauteur); float surfaceEllipse(float demiAxeA, float demiAxeB); float surfacePentagoneRégulier(float côté); float surfaceHexagoneRégulier(float côté); // Prototypes des fonctions d'interaction void afficherMenu(); int obtenirChoix(); void traiterChoix(int choix); int main() { int choix; do { afficherMenu(); choix = obtenirChoix(); if (choix >= 1 && choix <= 10) { traiterChoix(choix); } else if (choix != 0) { printf("Choix invalide. Veuillez réessayer.\n\n"); } } while (choix != 0); printf("Merci d'avoir utilisé le calculateur de surfaces !\n"); return 0; } void afficherMenu() { printf("\n==== CALCULATEUR DE SURFACES GÉOMÉTRIQUES ====\n"); printf("1. Carré\n"); printf("2. Rectangle\n"); printf("3. Cercle\n"); printf("4. Triangle\n"); printf("5. Parallélogramme\n"); printf("6. Losange\n"); printf("7. Trapèze\n"); printf("8. Ellipse\n"); printf("9. Pentagone régulier\n"); printf("10. Hexagone régulier\n") printf("0. Quitter\n"); printf("Votre choix : "); } int obtenirChoix() { int choix; scanf("%d", &choix); return choix; } void traiterChoix(int choix) { float surface = 0.0; switch (choix) { case 1: { float côté; printf("\nCalcul de la surface d'un carré\n"); printf("Entrez la longueur du côté : "); scanf("%f", &côté); surface = surfaceCarré(côté); printf("La surface du carré est : %.2f\n", surface); break; } case 2: { float longueur, largeur; printf("\nCalcul de la surface d'un rectangle\n"); printf("Entrez la longueur : "); scanf("%f", &longueur); printf("Entrez la largeur : "); scanf("%f", &largeur); surface = surfaceRectangle(longueur, largeur); printf("La surface du rectangle est : %.2f\n", surface); break; } case 3: { float rayon; printf("\nCalcul de la surface d'un cercle\n"); printf("Entrez le rayon : "); scanf("%f", &rayon); surface = surfaceCercle(rayon); printf("La surface du cercle est : %.2f\n", surface); break; } case 4: { float base, hauteur; printf("\nCalcul de la surface d'un triangle\n"); printf("Entrez la base : "); scanf("%f", &base); printf("Entrez la hauteur : "); scanf("%f", &hauteur); surface = surfaceTriangle(base, hauteur); printf("La surface du triangle est : %.2f\n", surface); break; } case 5: { float base, hauteur; printf("\nCalcul de la surface d'un parallélogramme\n"); printf("Entrez la base : "); scanf("%f", &base); printf("Entrez la hauteur : "); scanf("%f", &hauteur); surface = surfaceParallélogramme(base, hauteur); printf("La surface du parallélogramme est : %.2f\n", surface); break; } case 6: { float diagonale1, diagonale2; printf("\nCalcul de la surface d'un losange\n"); printf("Entrez la première diagonale : "); scanf("%f", &diagonale1); printf("Entrez la deuxième diagonale : "); scanf("%f", &diagonale2) surface = surfaceLosange(diagonale1, diagonale2); printf("La surface du losange est : %.2f\n", surface); break; } case 7: { float base1, base2, hauteur; printf("\nCalcul de la surface d'un trapèze\n"); printf("Entrez la première base : "); scanf("%f", &base1); printf("Entrez la deuxième base : "); scanf("%f", &base2); printf("Entrez la hauteur : "); scanf("%f", &hauteur); surface = surfaceTrapèze(base1, base2, hauteur); printf("La surface du trapèze est : %.2f\n", surface); break; } case 8: { float demiAxeA, demiAxeB; printf("\nCalcul de la surface d'une ellipse\n"); printf("Entrez le demi-axe a : "); scanf("%f", &demiAxeA); printf("Entrez le demi-axe b : "); scanf("%f", &demiAxeB); surface = surfaceEllipse(demiAxeA, demiAxeB); printf("La surface de l'ellipse est : %.2f\n", surface); break; } case 9: { float côté; printf("\nCalcul de la surface d'un pentagone régulier\n"); printf("Entrez la longueur du côté : "); scanf("%f", &côté); surface = surfacePentagoneRégulier(côté); printf("La surface du pentagone régulier est : %.2f\n", surface); break; } case 10: { float côté; printf("\nCalcul de la surface d'un hexagone régulier\n"); printf("Entrez la longueur du côté : "); scanf("%f", &côté); surface = surfaceHexagoneRégulier(côté); printf("La surface de l'hexagone régulier est : %.2f\n", surface) break; } } } // Implémentations des fonctions de calcul float surfaceCarré(float côté) { return côté * côté; } float surfaceRectangle(float longueur, float largeur) { return longueur * largeur; } float surfaceCercle(float rayon) { return PI * rayon * rayon; } float surfaceTriangle(float base, float hauteur) { return 0.5 * base * hauteur; } float surfaceParallélogramme(float base, float hauteur) { return base * hauteur; } float surfaceLosange(float diagonale1, float diagonale2) { return 0.5 * diagonale1 * diagonale2; } float surfaceTrapèze(float base1, float base2, hauteur) { return 0.5 * (base1 + base2) * hauteur; } float surfaceEllipse(float demiAxeA, float demiAxeB) { return PI * demiAxeA * demiAxeB; } float surfacePentagoneRégulier(float côté) { // Formule: (5/4) * côté² * 1/tan(π/5) return (5.0 / 4.0) * côté * côté * (1.0 / tan(PI / 5.0)); } float surfaceHexagoneRégulier(float côté) { // Formule: (3√3/2) * côté² return (3.0 * sqrt(3.0) / 2.0) * côté * côté; }