POLYTECH – ELEC4 2018–2019
Contrôle de Programmation C++
Durée : 0h30 Aucun document autorisé
Nom : Prénom :
On possède la classe suivante pour représenter les points du plan cartésien.
c l a s s P o i n t { p r i v a t e:
d o u b l e x , y ; p u b l i c:
P o i n t (c o n s t d o u b l e a =0 , c o n s t d o u b l e b =0) : x ( a ) , y ( b ) {}
d o u b l e g e t X () c o n s t; d o u b l e g e t Y () c o n s t;
v o i d s e t X (c o n s t d o u b l e x );
v o i d s e t Y (c o n s t d o u b l e y );
d o u b l e d i s t a n c e (c o n s t P o i n t & p ) c o n s t;
f r i e n d std :: o s t r e a m &o p e r a t o r< <( std :: o s t r e a m & f , c o n s t P o i n t & p );
};
Notez que l’implémentation de ces méthodes ne vous est pas donnée, car inutile. Le nom de chaque méthode est suffisamment significatif.
On souhaite représenter des polygones dans le plan cartésien. On rappelle qu’un polygone est constitué d’une suite finie de points du plan appelés sommets et de segments, appelés côtés, reliant les couples de sommets consécutifs ainsi que d’un segment reliant le premier et le dernier point.
I 1. Écrivez en C++ la classe Polygoneavec :
— une variable privéesommets type vecteur dePoint;
— un constructeur pour initialiser l’objet courant ;
— l’accesseurgetSommetqui renvoie le ième sommet du polygône courant ;
— le mutateursetSommetqui modifie le ième sommet du polygone courant ;
— la fonctionpérimètrequi renvoie le périmètre du polygone courant ;
— la surcharge de l’opérateur<<pour écrire sur unostreamun polygone au format[(x1, y1)(x2, y2). . .(xi, yi). . .(xn, yn)].
1
2
3
I 2. Écrivez la fonction mainqui :
1. déclare et construit un triangle et un pentagone. Le premier polygone sera alloué dynamiquement, mais pas le second.
2. puis écrit sur la sortie standard ces deux polygones et leurs périmètres respectifs.
4