diff --git a/exo3/main.c b/exo3/main.c new file mode 100644 index 0000000..a766cdc --- /dev/null +++ b/exo3/main.c @@ -0,0 +1,222 @@ +#include +#include +#include + +#define PI 3.14159265358979323846 + + +float surfaceCarre(float cote); +float surfaceRectangle(float longueur, float largeur); +float surfaceCercle(float rayon); +float surfaceTriangle(float base, float hauteur); +float surfaceParallelogramme(float base, float hauteur); +float surfaceLosange(float diagonale1, float diagonale2); +float surfaceTrapeze(float base1, float base2, float hauteur); +float surfaceEllipse(float demiAxeA, float demiAxeB); +float surfacePentagoneRegulier(float cote); +float surfaceHexagoneRegulier(float cote); + + +void afficherMenu(); +int obtenirChoix(); +void traiterChoix(int choix); + + +float surfaceCarre(float cote) { + return cote * cote; +} + +float surfaceRectangle(float longueur, float largeur) { + return longueur * largeur; +} + + +float surfaceCercle(float rayon) { + return PI * rayon * rayon; +} + +int main() { + int choix; + + + afficherMenu(); + choix = obtenirChoix(); + + if (choix >= 1 && choix <= 10) { + traiterChoix(choix); + } else if (choix != 0) { + printf("Choix invalide. Veuillez réessayer.\n\n"); + } + + 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. Carre\n"); + printf("2. Rectangle\n"); + printf("3. Cercle\n"); + printf("4. Triangle\n"); + printf("5. Parallelogramme\n"); + printf("6. Losange\n"); + printf("7. Trapeze\n"); + printf("8. Ellipse\n"); + printf("9. Pentagone Regulier\n"); + printf("10. Hexagone Regulier\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; + float cote, longueur, largeur, rayon, base, hauteur, diagonale1, diagonale2, base1, base2, demiAxeA, demiAxeB; + + if (choix == 1) goto Carre; + if (choix == 2) goto rectangle; + if (choix == 3) goto cercle; + if (choix == 4) goto triangle; + if (choix == 5) goto Parallelogramme; + if (choix == 6) goto losange; + if (choix == 7) goto Trapeze; + if (choix == 8) goto ellipse; + if (choix == 9) goto pentagone; + if (choix == 10) goto hexagone; + return; + +Carre: + printf("\nCalcul de la surface d'un Carre\n"); + printf("Entrez la longueur du cote : "); + scanf("%f", &cote); + surface = surfaceCarre(cote); + printf("La surface du Carre est : %.2f\n", surface); + return; + +rectangle: + 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); + return; + +cercle: + 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); + return; + +triangle: + 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); + return; + +Parallelogramme: + printf("\nCalcul de la surface d'un Parallelogramme\n"); + printf("Entrez la base : "); + scanf("%f", &base); + printf("Entrez la hauteur : "); + scanf("%f", &hauteur); + surface = surfaceParallelogramme(base, hauteur); + printf("La surface du Parallelogramme est : %.2f\n", surface); + return; + +losange: + 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); + return; + +Trapeze: + printf("\nCalcul de la surface d'un Trapeze\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 = surfaceTrapeze(base1, base2, hauteur); + printf("La surface du Trapeze est : %.2f\n", surface); + return; + +ellipse: + 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); + return; + +pentagone: + printf("\nCalcul de la surface d'un pentagone Regulier\n"); + printf("Entrez la longueur du cote : "); + scanf("%f", &cote); + surface = surfacePentagoneRegulier(cote); + printf("La surface du pentagone Regulier est : %.2f\n", surface); + return; + +hexagone: + printf("\nCalcul de la surface d'un hexagone Regulier\n"); + printf("Entrez la longueur du cote : "); + scanf("%f", &cote); + surface = surfaceHexagoneRegulier(cote); + printf("La surface de l'hexagone Regulier est : %.2f\n", surface); + return; +} + + +float base_globale, hauteur_globale; + +float surfaceTriangle(float base, float hauteur) { + return 0.5 * base_globale * hauteur_globale; +} + +float surfaceParallelogramme(float base, float hauteur) { + return base * hauteur; +} + +float surfaceLosange(float diagonale1, float diagonale2) { + return 0.5 * diagonale1 * diagonale2; +} + +float surfaceTrapeze(float base1, float base2, float hauteur) { + return 0.5 * (base1 + base2) * hauteur; +} + +float surfaceEllipse(float demiAxeA, float demiAxeB) { + return PI * demiAxeA * demiAxeB; +} + + +float surfacePentagoneRegulier(float cote) { + + return (5.0 / 4.0) * cote * cote * (1.0 / tan(PI / 5.0)); +} + +float surfaceHexagoneRegulier(float cote) { + + return (3.0 * sqrt(3.0) / 2.0) * cote * cote; +} \ No newline at end of file