This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
in204:tds:sujets:td1:part4 [2019/09/23 14:54] bmonsuez [Question n° 3] |
in204:tds:sujets:td1:part4 [2022/11/18 10:49] (current) |
||
|---|---|---|---|
| Line 198: | Line 198: | ||
| Ajouter à toutes ces classes des méthodes d’affichage pour le déboguage que l’on appellera ''print''. | Ajouter à toutes ces classes des méthodes d’affichage pour le déboguage que l’on appellera ''print''. | ||
| + | |||
| + | <hidden Correction> | ||
| + | |||
| + | <code cpp> | ||
| + | class Point | ||
| + | { | ||
| + | // Ajouter la méthode suivante après les autres | ||
| + | // méthodes. | ||
| + | public: | ||
| + | void print() const | ||
| + | { | ||
| + | std::cout << "(" << m_x << ", " << m_y << ")"; | ||
| + | } | ||
| + | }; | ||
| + | |||
| + | class Segment | ||
| + | { | ||
| + | // Ajouter la méthode suivante après les autres | ||
| + | // méthodes. | ||
| + | public: | ||
| + | void print() const | ||
| + | { | ||
| + | std::cout << "["; | ||
| + | m_start.print(); | ||
| + | std::cout << "-"; | ||
| + | m_end.print(); | ||
| + | std::cout << "]"; | ||
| + | } | ||
| + | }; | ||
| + | |||
| + | class Droite | ||
| + | { | ||
| + | // Ajouter la méthode suivante après les autres | ||
| + | // méthodes. | ||
| + | public: | ||
| + | void print() const | ||
| + | { | ||
| + | std::cout << "<"; | ||
| + | m_point.print(); | ||
| + | std::cout << ", " m_angle << ">"; | ||
| + | } | ||
| + | }; | ||
| + | |||
| + | </code> | ||
| + | |||
| + | </hidden> | ||
| + | |||
| + | |||
| + | ==== Question n° 3 ==== | ||
| + | |||
| + | A la classe ''Droite'' | ||
| + | * Ajouter une méthode rotate90() effectuant une rotation de 90 degrés à une droite. | ||
| + | * Ajouter une méthode move(int x, int y) effectuant une translation à une droite. | ||
| Line 213: | Line 266: | ||
| class Droite | class Droite | ||
| { | { | ||
| - | ... | + | // Code précédent de la classe. |
| - | Droite Turn(double anAngle) const | + | ... |
| + | |||
| + | public: | ||
| + | Droite rotate(double anAngle) const | ||
| { | { | ||
| return Droite(m_Point, m_angle + anAngle); | return Droite(m_Point, m_angle + anAngle); | ||
| } | } | ||
| - | Droite Turn90(double anAngle) const | + | Droite rotate90(double anAngle) const |
| { | { | ||
| - | return Turn(m_Point, m_angle + 3.14/4); | + | return rotate(m_Point, m_angle + 3.14/4); |
| } | } | ||
| - | Droite Move(int x, int y) const | + | Droite move(int x, int y) const |
| { | { | ||
| return Droite( | return Droite( | ||
| Line 230: | Line 286: | ||
| } | } | ||
| ... | ... | ||
| + | }; | ||
| </code> | </code> | ||
| Line 243: | Line 300: | ||
| class Droite | class Droite | ||
| { | { | ||
| - | ... | + | ... // Code précédent de la classe. |
| - | Droite& Turn(double anAngle) | + | |
| + | |||
| + | public: | ||
| + | Droite& rotate(double anAngle) | ||
| { | { | ||
| m_angle += anAngle; | m_angle += anAngle; | ||
| return *this; | return *this; | ||
| } | } | ||
| - | Droite& Turn90(double anAngle) | + | Droite& rotate90(double anAngle) |
| { | { | ||
| return Turn(m_Point, m_angle + pi/4); | return Turn(m_Point, m_angle + pi/4); | ||
| } | } | ||
| - | Droite& Move(int x, int y) | + | Droite& move(int x, int y) |
| { | { | ||
| mPoint = | mPoint = | ||
| Line 260: | Line 320: | ||
| return *this; | return *this; | ||
| } | } | ||
| - | ... | + | }; |
| </code> | </code> | ||
| Line 268: | Line 328: | ||
| Droite droite(Point(0,0), pi/8); | Droite droite(Point(0,0), pi/8); | ||
| | | ||
| - | droite.Move(2,3).Turn(-pi/8); | + | droite.Move(2,3).rotate(-pi/8); |
| // Nous effectuons une droite et puis nous effectuons | // Nous effectuons une droite et puis nous effectuons | ||
| // une rotation. | // une rotation. | ||
| Line 275: | Line 335: | ||
| </hidden> | </hidden> | ||
| - | ==== Question n° 3 ==== | ||
| - | |||
| - | A la classe ''Droite'' | ||
| - | * Ajouter une méthode rotate90() effectuant une rotation de 90 degrés à une droite. | ||
| - | * Ajouter une méthode move(int x, int y) effectuant une translation à une droite. | ||
| - | |||
| - | <hidden Correction> | ||
| - | </hidden> | ||
| ==== Question n° 4 ==== | ==== Question n° 4 ==== | ||
| Line 304: | Line 356: | ||
| } | } | ||
| </code> | </code> | ||
| + | |||
| + | <hidden correction> | ||
| + | |||
| + | Il suffit d'exécuter le code pour les classes réalisées et vérifier que les résultas sont conformes aux résultats attendus. | ||
| + | |||
| + | </hidden> | ||
| + | |||