Bonjour,
J'ai crée une classe Point2D que voici :
Ainsi qu'une classe Triangle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #ifndef _POINT_H_ #define _POINT_H_ class Point2D { private : float x; // abscisse float y; // ordonnee public : Point2D(); Point2D(float, float); void afficherPoint(); float distance(Point2D); float getX(); float getY(); void setX(float); void setY(float); }; #endif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #ifndef _TRIANGLE_H_ #define _TRIANGLE_H_ #include "Point2D.h" class Triangle { private : Point2D A; Point2D B; Point2D C; public : Triangle(Point2D, Point2D, Point2D); bool isocele(); bool equilateral(); bool rectangle(); float perimetre(); }; #endifProblème, ma méthode rectangle() semble ne pas fonctionner (ce qui n'est pas le cas des autres)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 #include "Triangle.h" Triangle::Triangle(Point2D A, Point2D B, Point2D C):A(A),B(B),C(C) {} bool Triangle::isocele() { if ((A.distance(B) == B.distance(C)) || (A.distance(B) == A.distance(C)) || (A.distance(C) == B.distance(C))) { return true; } else return false; } bool Triangle::equilateral() { if ((A.distance(B) == B.distance(C)) && (A.distance(B) == A.distance(C))) { return true; } else return false; } // NE FONCTIONNE PAS bool Triangle::rectangle() { if (A.distance(B)*A.distance(B) == A.distance(C)*A.distance(C) + B.distance(C)*B.distance(C)) { return true; } else if (A.distance(C)*A.distance(C) == A.distance(B)*A.distance(B) + B.distance(C)*B.distance(C)) { return true; } else if (B.distance(C)*B.distance(C) == A.distance(C)*A.distance(C) + A.distance(B)*A.distance(B)) { return true; } else return false; } float Triangle::perimetre() { float resultat = 0; resultat += A.distance(C) + A.distance(B) + B.distance(C); return resultat; }
En effet, quand je teste ceci :
Il m'affiche 0 alors que pourtant le triangle est rectangle...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Point2D A(2,3); Point2D B(1,-1); Point2D C(6,2); Triangle T(A,B,C); cout << T.rectangle() << endl;
Je n'arrive pas a voir d’où vient le problème, pouvez vous m'aider ?
Merci d'avance.
Partager