Le but de cet exercice est de créer un programme capable de calculer le périmètre et la surface de n'importe quel polygone simple.
Un polygone simple est un polygone sans aucune intersection d'aucune paire quelconque de côtés, en dehors du sommet commun à deux côtés successifs comme celui représenté sur la figure suivante.
Ne connaissant pas à l'avance le nombre de points du polygone, les points devront être stockés dans un pointeur. On demandera donc le nombre de points à l'utilisateur et on fera une allocation en fonction de la saisie.
Pour stocker les coordonnées des points, vous utiliserez la structure suivante :
typedef struct{ int x; int y; }point;
Afin de réaliser ce programme, vous devez écrire les fonctions suivantes :
point *saisirPointsPolygone(point *listePoints, int nbPoints);
float distanceSommets(point p1,point p2);
float perimetrePolygone(point *listePoints, int nbPoints);
float surfacePolygone(point *listePoints, int nbPoints);
Formules | Distance entre 2 points | |
Surface d'un polygone |
Cet exercice est tiré d'un sujet de stage ayant eu lieu il y a quelques années dans un autre langage.
Une école maternelle dispose d'une station météo située dans la cour et l'institutrice relève avec ses élèves les températures du matin et du soir afin de pouvoir voir l'évolution de celles-ci.
Jusqu'à présent, les relevés étaient écrits dans un cahier, et par conséquent étaient difficiles à exploiter.
Un cahier des charges a donc été proposé afin d'informatiser la gestion de ces relevés.
Vous devez donc réaliser un programme capable de travailler avec des données du type releveMeteo
et date
dont les structures sont :
typedef struct{ int jour; int mois; int annee; }date;
typedef struct{ date today; float tempMatin; float tempSoir; }releveMeteo;
Parmi les fonctionnalités que le client désire, on doit pouvoir :
releveMeteo *ajouterReleve(releveMeteo *p);
void calculerMoyennes(releveMeteo *p,float *result);
jour/mois/année - matin (ou soir) : température;
void afficherReleves(releveMeteo *p);
int sauvegarderReleves(releveMeteo *p, char *filename);
releveMeteo *chargerReleves(releveMeteo *p, char *filename);
void exportExcel(releveMeteo *p, char *filename);
jour/mois/année;tempMatin;tempSoir
NB : Il faudra également prévoir un menu qui permette à l'utilisateur d'effectuer toutes ces opérations.