Ajouter exo1/main.c
This commit is contained in:
parent
c05770946a
commit
1e3bded528
218
exo1/main.c
Normal file
218
exo1/main.c
Normal file
@ -0,0 +1,218 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
#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é;
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user