Informatique, programmation, C++, langage, debug, classe, intersection, classe Couple, printer, affichage, application, exercice, code
Ce document comporte les étapes de réalisation d'un exercice de programmation en langage C++. Le but est de mettre en place un ensemble de classes, puis un programme d'application.
[...] Remarque : la classe Circle aurait pu hériter de la classe Arc car un cercle est un arc de 360° Intersection bool Figure::intersection(Segment s1, Segment s2, Point { float abx = s1.getP2().getX() - s1.getP1().getX(); float aby = s1.getP2().getY() - s1.getP1().getY(); float cdx = s2.getP2().getX() - s2.getP1().getX(); float cdy = s2.getP2().getY() - s2.getP1().getY(); float ab_cross_cd = abx*cdy - aby*cdx; if(ab_cross_cd return else { float acx = s2.getP1().getX() - s1.getP1().getX(); float acy = s2.getP1().getY() - s1.getP1().getY(); float ac_cross_cd = acx*cdy - acy*cdx; float ab_cross_ac = abx*acy - aby*acx; float t1 = ac_cross_cd / ab_cross_cd; float t2 = -ab_cross_ac / ab_cross_cd; float px = s1.getP1().getX() + abx*t1; float py = s1.getP1().getY() + aby*t1; if(t1 > 1 ) return (*p).setX(px); (*p).setY(py); return } } Box: Box Segment::bounding_box() { float ax = min(p1.getX(),p2.getX()); float ay = min(p1.getY(),p2.getY()); float bx = max(p1.getX(),p2.getX()); float by = max(p1.getY(),p2.getY()); return Box(ax,ay,bx,by); } Chaque Figure a son propre bounding_box qui représente les extrémités de la figure en question. Polymorphisme class Figure { public: . virtual void debug(); virtual void addPoint(Point . [...]
[...] return } Application Classe Printer class Printer { public: Printer(int map< char > ostream& print(ostream& os) const; int getTaille() {return taille;} private: int taille; map< char > font; ostream& operator«(Printer& obj, string& Printer::Printer(int map< char > { taille = font = } ostream& operator«(Printer& obj, string& word) { int t = obj.getTaille(); int len = word.length(); map< char > f = obj.getFont(); string string character[len]; for(int i [...]
[...] Exercice de programmation en langage Diagramme UML La figure représente le diagramme UML fait en TP. La fonction debug void Arc::debug() { if(debugMode) printf("debug : Arc this, c.getX(), c.getY(), angle_debut, angle_fin); } debugMode est une variable booléenne globale dans le fichier "global.h" Héritage Comme l'indique le diagramme UML La classe Polyline, Arc, et Circle héritent tous de la classe Figure. Et la classe Polygone hérite de la classe Polyline. [...]
[...] Exemple string Circle::printer(int { string Box b = bounding_box(); float ax = b.GetB().getX() - b.GetA().getX(); float ay = b.GetB().getY() - b.GetA().getY(); float bx = - b.GetA().getX()/ax; float by = - b.GetA().getY()/ay; float cx = c.getX(); float cy = c.getY(); cx = cy = float rn = float { { float x = float y = x = y = float d = sqrt((cx-x)*(cx-x) + if (abs(d-rn) [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture