TP - Géométrie Repérée
Ce TP s'appuie en grande partie sur les notions de géométrie repérée étudiées
en Mathématiques en classe de Seconde. Si vous ne vous en souvenez plus, il est
conseillé de relire ce cours puis
celui-ci.
Dans le dossier [NSI]
, créez le dossier [D01-POO]
.
Téléchargez le fichier « à trous » TPD01.11.py
(clic droit -> [Enregistrer sous]) et enregistrez-le dans ce dossier.
Important
- Dans chaque fonction à programmer, remplacez le mot-clef
pass
par les
instructions nécessaires.
- Pour gagner du temps, on ne lèvera pas les erreurs sur les types de
données entrées par l'utilisateur. On considèrera que si la spécification
indique un type
int
, alors ce sera bien un type int
qui sera saisi.
Partie 1 - La classe Point
Complétez la définition de la classe Point
en respectant les spécifications
de chaque méthode. Les attributs de cette classe sont x
et y
.
Code à compléter
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 | class Point:
"""
Implémentation d'un point en géométrie plane dans un repère orthonormé
"""
def __init__(self, abscisse=0, ordonnee=0):
"""
abscisse, ordonnee - int ou float
Sortie: initialisation d'un objet de type Point
"""
pass
def __str__(self):
"""
Sortie: str - Chaîne de caractères renvoyée lors de l'utilisation de print()
"""
pass
def __repr__(self):
"""
Sortie: str - Chaîne de caractères renvoyée lors de l'appel de l'objet
"""
pass
def distance(self, autrePoint):
"""
self, autrePoint - Point
Sortie: float - distance entre l'objet et un autrePoint
"""
pass
def get_abscisse(self):
"""
Sortie: int ou float - abscisse de l'objet
"""
pass
def get_ordonnee(self):
"""
Sortie: int ou float - ordonnée de l'objet
"""
pass
def set_abscisse(self, valeur):
"""
Sortie: None - Modifie l'abscisse de l'objet
"""
pass
def set_ordonnee(self, valeur):
"""
Sortie: None - Modifie l'ordonnée de l'objet
"""
pass
def translation(self, abscisse, ordonnee):
"""
abscisse, ordonnee - int ou float
Sortie: Point - le point d'origine après translation de coordonnées (abscisse, ordonnee)
"""
pass
|
Exemples de test
Vérifiez ces exemples puis complétez le programme principal afin que toutes
les méthodes de la classe Point
soient testées.
>>> p = Point(2, 5)
>>> print(p)
Point d'abscisse 2 et d'ordonnée 5
>>> q = p.translation(7, -2)
>>> q
<Point(9, 3)>
>>> p.distance(q)
7.280109889280518
Partie 2 - La classe Disque
Complétez la définition de la classe Disque
en respectant les spécifications
de chaque méthode. Les attributs de cette classe sont centre
et rayon
.
Il faudra lever une erreur (assertion) si le rayon n'est pas positif.
Code à compléter
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124 | class Disque:
"""
Implémentation d'un disque en géométrie plane dans un repère orthonormé
"""
def __init__(self, centre, rayon = 0):
"""
centre - Point
rayon - int ou float, nombre positif ou nul
Sortie: initialisation d'un objet de type Disque
"""
pass
def __str__(self):
"""
Sortie: str - Chaîne de caractères renvoyée lors de l'utilisation de print()
"""
pass
def __repr__(self):
"""
Sortie: str - Chaîne de caractères renvoyée lors de l'appel de l'objet
"""
pass
def perimetre(self):
"""
Sortie: float - perimetre du disque
"""
pass
def aire(self):
"""
Sortie: float - aire du disque
"""
pass
def contient(self, point):
"""
point - Point
Sortie: bool - True si le disque contient le point,
False sinon
"""
pass
|
Exemples de test
Vérifiez les exemples ci-dessous puis complétez le programme principal afin
que toutes les méthodes de la classe Disque
soient testées.
>>> d = Disque(p, 3)
>>> d
<Disque(Point d'abscisse 2 et d'ordonnée 5, 3)>
>>> print(d)
Disque de centre le Point d'abscisse 2 et d'ordonnée 5.
Disque de rayon 3.
>>> d.contient(q)
False
Partie 3 - La classe Vecteur
Complétez la définition de la classe Vecteur
en respectant les
spécifications de chaque méthode. Les attributs de cette classe sont le point
d'origine
et les coordonnées x
et y
du vecteur.
Code à compléter
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253 | class Vecteur:
"""
Implémentation d'un vecteur en géométrie plane dans un repère orthonormé
"""
def __init__(self, origine, extremite):
"""
origine, extremite - Point
Sortie: initialisation d'un objet de type Vecteur
"""
pass
def __str__(self):
"""
Sortie: str - Chaîne de caractères renvoyée lors de l'utilisation de print()
"""
pass
def __repr__(self):
"""
Sortie: str - Chaîne de caractères renvoyée lors de l'appel de l'objet
"""
pass
def norme(self):
"""
Sortie: float - norme du vecteur
"""
pass
def get_abscisse(self):
"""
Sortie: int ou float - abscisse de l'objet
"""
pass
def get_ordonnee(self):
"""
Sortie: int ou float - ordonnée de l'objet
"""
pass
def set_abscisse(self, valeur):
"""
Sortie: None - Modifie l'abscisse de l'objet
"""
pass
def set_ordonnee(self, valeur):
"""
Sortie: None - Modifie l'ordonnée de l'objet
"""
pass
def __eq__(self, autreVecteur):
"""
Sortie: bool - True si les Vecteurs sont égaux,
False sinon
"""
pass
def __add__(self, autreVecteur):
"""
Sortie: Vecteur somme
"""
pass
def __sub__(self, autreVecteur):
"""
Sortie: Vecteur difference
"""
pass
def __mul__(self, reel):
"""
reel - int ou float
Sortie: Vecteur multiplié par reel
"""
pass
def clone(self, point):
"""
point - Point
Sortie: Vecteur de mêmes coordonnées que l'objet, mais d'origine différente
"""
pass
def sont_colineaires(self, autreVecteur):
"""
self, autreVecteur - Vecteur
Sortie: bool - True si les deux Vecteurs sont colinéaires,
False sinon
"""
pass
def coef_colinearite(self, autreVecteur):
"""
self, autreVecteur - Vecteur
Sortie: float - Coefficient de colinéarité si les deux Vecteurs sont colinéaires,
None sinon
"""
pass
def sont_orthogonaux(self, autreVecteur):
"""
self, autreVecteur - Vecteur
Sortie: bool - True si les deux Vecteurs sont orthogonaux,
False sinon
"""
pass
|
Exemples de test
Vérifiez les exemples ci-dessous puis complétez le programme principal afin
que toutes les méthodes de la classe Vecteur
soient testées.
>>> u = Vecteur(p, q)
>>> u
<Vecteur(Point d'abscisse 2 et d'ordonnée 5, 7, -2)>
>>> print(u)
Vecteur d'origine le Point d'abscisse 2 et d'ordonnée 5.
Vecteur d'abscisse 7 et d'ordonnée -2.