~hilaire-fernandes/drgeo/trunk

« back to all changes in this revision

Viewing changes to src/DrGeo-French/Number.extension.st

  • Committer: Hilaire Fernandes
  • Date: 2017-11-15 13:17:03 UTC
  • Revision ID: hilaire.fernandes@gmail.com-20171115131703-pz09obavthi53ebt
DrGeo code under Tonel file format

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Extension { #name : #Number }
 
2
 
 
3
{ #category : #'*DrGeo-French' }
 
4
Number >> a: UnNombre [
 
5
 
 
6
        ^self to: UnNombre.
 
7
]
 
8
 
 
9
{ #category : #'*DrGeo-French' }
 
10
Number >> a: UnNombre faire: UnBloc [
 
11
        "boucle à condition de sortie"
 
12
 
 
13
        ^self to: UnNombre do: UnBloc.
 
14
]
 
15
 
 
16
{ #category : #'*DrGeo-French' }
 
17
Number >> a: UnNombre par: UnPas [
 
18
"répond un intervalle avec un pas"
 
19
        ^self to: UnNombre by: UnPas.
 
20
]
 
21
 
 
22
{ #category : #'*DrGeo-French' }
 
23
Number >> a: UnNombre par: UnPas faire: UnBloc [
 
24
 
 
25
        ^self to: UnNombre by: UnPas do: UnBloc.
 
26
]
 
27
 
 
28
{ #category : #'*DrGeo-French-printing' }
 
29
Number >> affiche [
 
30
 
 
31
        ^self printString.
 
32
]
 
33
 
 
34
{ #category : #'*DrGeo-French-printing' }
 
35
Number >> afficheEnBase: UneBase [
 
36
 
 
37
        ^self printStringBase: UneBase.
 
38
]
 
39
 
 
40
{ #category : #'*DrGeo-French-truncation' }
 
41
Number >> arrondir [
 
42
"répond l'arrondi à l'entier le plus proche"
 
43
        ^self rounded
 
44
]
 
45
 
 
46
{ #category : #'*DrGeo-French-truncation' }
 
47
Number >> arrondirA: UnNombre [
 
48
"répond l'arrondi à UnNombre près.
 
49
Par exemple 2 racine arrondirA:  0.01 répond 1.41"
 
50
 
 
51
        ^self roundTo: UnNombre .
 
52
]
 
53
 
 
54
{ #category : #'*DrGeo-French-truncation' }
 
55
Number >> arrondirParDefautA: UnNombre [
 
56
"répond l'arrondi par défaut;
 
57
par exemple, 2 racine arrondirExcesA: 0.01 répond 1.41"
 
58
        
 
59
        ^self roundDownTo: UnNombre
 
60
]
 
61
 
 
62
{ #category : #'*DrGeo-French-truncation' }
 
63
Number >> arrondirParExcesA: UnNombre [
 
64
"répond l'arrondi à l'excès;
 
65
par exemple, 2 racine arrondirExcesA: 0.01 répond 1.42"
 
66
        ^self roundUpTo: UnNombre
 
67
]
 
68
 
 
69
{ #category : #'*DrGeo-French' }
 
70
Number >> auCarre [
 
71
 
 
72
        ^self squared.
 
73
]
 
74
 
 
75
{ #category : #'*DrGeo-French' }
 
76
Number >> auCube [
 
77
 
 
78
        ^self puissance: 3.
 
79
]
 
80
 
 
81
{ #category : #'*DrGeo-French' }
 
82
Number >> augmenteDe1 [
 
83
 
 
84
        ^(self + 1).
 
85
]
 
86
 
 
87
{ #category : #'*DrGeo-French' }
 
88
Number >> augmenteDe: unNombre [
 
89
        "augmente d'un nombre."
 
90
 
 
91
        ^(self + unNombre).
 
92
]
 
93
 
 
94
{ #category : #'*DrGeo-French' }
 
95
Number >> augmenteDePourcents: unPourcentage [
 
96
        "augmente d'un pourcentage.
 
97
        Par exemple 200 augmenteDePourcents: 6 répond 212"
 
98
 
 
99
        ^self * (1 + (unPourcentage / 100)).
 
100
]
 
101
 
 
102
{ #category : #'*DrGeo-French' }
 
103
Number >> avecLeSigneDe: UnNombre [
 
104
 
 
105
        ^UnNombre copySignTo: self.
 
106
]
 
107
 
 
108
{ #category : #'*DrGeo-French-conversion' }
 
109
Number >> commeDecimal [
 
110
 
 
111
        ^self asFloat.
 
112
]
 
113
 
 
114
{ #category : #'*DrGeo-French-conversion' }
 
115
Number >> commeDuree [
 
116
 
 
117
        ^self asDuration.
 
118
]
 
119
 
 
120
{ #category : #'*DrGeo-French-conversion' }
 
121
Number >> commeEntier [
 
122
 
 
123
        ^self asInteger.
 
124
]
 
125
 
 
126
{ #category : #'*DrGeo-French-conversion' }
 
127
Number >> commeNombre [
 
128
 
 
129
        ^self asNumber.
 
130
]
 
131
 
 
132
{ #category : #'*DrGeo-French' }
 
133
Number >> cosinus [
 
134
        "cosinus en degrés"
 
135
        
 
136
        ^self degreeCos.
 
137
]
 
138
 
 
139
{ #category : #'*DrGeo-French' }
 
140
Number >> degres [
 
141
 
 
142
        ^self radiansToDegrees.
 
143
]
 
144
 
 
145
{ #category : #'*DrGeo-French' }
 
146
Number >> devientCombienSachantQue: unNombre devient: unAutreNombre [
 
147
        "règle de trois"
 
148
 
 
149
        ^(self * unAutreNombre / unNombre).
 
150
]
 
151
 
 
152
{ #category : #'*DrGeo-French' }
 
153
Number >> diminueDe1 [
 
154
 
 
155
        ^(self - 1).
 
156
]
 
157
 
 
158
{ #category : #'*DrGeo-French' }
 
159
Number >> diminueDe: unNombre [
 
160
        "diminue d'un nombre."
 
161
 
 
162
        ^(self - unNombre).
 
163
]
 
164
 
 
165
{ #category : #'*DrGeo-French' }
 
166
Number >> diminueDePourcents: unPourcentage [
 
167
        "diminue d'un pourcentage.
 
168
        Par exemple 200 diminuéDePourcents: 6 répond 188"
 
169
 
 
170
        ^self * (1 - (unPourcentage / 100)).
 
171
]
 
172
 
 
173
{ #category : #'*DrGeo-French-printing' }
 
174
Number >> enPourcents [
 
175
        ^ String streamContents: [ :str | 
 
176
                        (self * 100) storeOn: str.
 
177
                        str nextPutAll: ' %'].
 
178
]
 
179
 
 
180
{ #category : #'*DrGeo-French-testing' }
 
181
Number >> estDecimal [
 
182
 
 
183
        ^(self isFloat).
 
184
]
 
185
 
 
186
{ #category : #'*DrGeo-French-testing' }
 
187
Number >> estDivisiblePar: UnNombre [
 
188
 
 
189
        ^self isDivisibleBy: UnNombre.
 
190
]
 
191
 
 
192
{ #category : #'*DrGeo-French-testing' }
 
193
Number >> estEntier [
 
194
 
 
195
        ^(self isInteger).
 
196
]
 
197
 
 
198
{ #category : #'*DrGeo-French-testing' }
 
199
Number >> estInfini [
 
200
 
 
201
        ^self isInfinite.
 
202
]
 
203
 
 
204
{ #category : #'*DrGeo-French-testing' }
 
205
Number >> estNombre [
 
206
 
 
207
        ^self isNumber.
 
208
]
 
209
 
 
210
{ #category : #'*DrGeo-French-testing' }
 
211
Number >> estNul [
 
212
 
 
213
        ^self isZero.
 
214
]
 
215
 
 
216
{ #category : #'*DrGeo-French-testing' }
 
217
Number >> estPasNombre [
 
218
 
 
219
        ^self isNaN.
 
220
]
 
221
 
 
222
{ #category : #'*DrGeo-French-conversion' }
 
223
Number >> heures [
 
224
 
 
225
        ^self hours.
 
226
]
 
227
 
 
228
{ #category : #'*DrGeo-French' }
 
229
Number >> impair [
 
230
        
 
231
        ^self odd.
 
232
]
 
233
 
 
234
{ #category : #'*DrGeo-French' }
 
235
Number >> inverse [
 
236
 
 
237
        ^self reciprocal.
 
238
]
 
239
 
 
240
{ #category : #'*DrGeo-French-conversion' }
 
241
Number >> jours [
 
242
 
 
243
        ^self days.
 
244
]
 
245
 
 
246
{ #category : #'*DrGeo-French-conversion' }
 
247
Number >> millisecondes [
 
248
 
 
249
        ^self milliSeconds.
 
250
]
 
251
 
 
252
{ #category : #'*DrGeo-French' }
 
253
Number >> moyenneAvec: unNombre [
 
254
        
 
255
        ^((self + unNombre)/2).
 
256
]
 
257
 
 
258
{ #category : #'*DrGeo-French-conversion' }
 
259
Number >> nanosecondes [
 
260
 
 
261
        ^self nanoSeconds.
 
262
]
 
263
 
 
264
{ #category : #'*DrGeo-French' }
 
265
Number >> negatif [
 
266
        
 
267
        ^self negative.
 
268
]
 
269
 
 
270
{ #category : #'*DrGeo-French' }
 
271
Number >> oppose [
 
272
 
 
273
        ^self negated.
 
274
]
 
275
 
 
276
{ #category : #'*DrGeo-French' }
 
277
Number >> pair [
 
278
        
 
279
        ^self even.
 
280
]
 
281
 
 
282
{ #category : #'*DrGeo-French-truncation' }
 
283
Number >> partieDécimale [
 
284
        ^self fractionPart
 
285
]
 
286
 
 
287
{ #category : #'*DrGeo-French-truncation' }
 
288
Number >> partieEntiere [
 
289
        ^self integerPart
 
290
]
 
291
 
 
292
{ #category : #'*DrGeo-French' }
 
293
Number >> positif [
 
294
        
 
295
        ^self positive.
 
296
]
 
297
 
 
298
{ #category : #'*DrGeo-French' }
 
299
Number >> pourcentsDe: UnNombre [
 
300
        "répond un pourcentage.
 
301
        Par exemple 6 pourcentsDe: 200 répond 12"
 
302
 
 
303
        ^self * UnNombre / 100.
 
304
]
 
305
 
 
306
{ #category : #'*DrGeo-French' }
 
307
Number >> procheDe: UnNombre [
 
308
 
 
309
        ^self closeTo: UnNombre.
 
310
]
 
311
 
 
312
{ #category : #'*DrGeo-French' }
 
313
Number >> puissance: UnNombre [
 
314
 
 
315
        ^self raisedTo: UnNombre.
 
316
]
 
317
 
 
318
{ #category : #'*DrGeo-French' }
 
319
Number >> racine [
 
320
 
 
321
        ^self sqrt.
 
322
]
 
323
 
 
324
{ #category : #'*DrGeo-French' }
 
325
Number >> racineCubique [
 
326
        ^self nthRoot: 3
 
327
]
 
328
 
 
329
{ #category : #'*DrGeo-French' }
 
330
Number >> racineNieme: unEntier [
 
331
        ^self nthRoot: unEntier.
 
332
]
 
333
 
 
334
{ #category : #'*DrGeo-French-conversion' }
 
335
Number >> radians [
 
336
        
 
337
        ^self degreesToRadians.
 
338
]
 
339
 
 
340
{ #category : #'*DrGeo-French' }
 
341
Number >> reste: UnNombre [
 
342
        ^self rem: UnNombre
 
343
]
 
344
 
 
345
{ #category : #'*DrGeo-French-conversion' }
 
346
Number >> secondes [
 
347
 
 
348
        ^self seconds.
 
349
]
 
350
 
 
351
{ #category : #'*DrGeo-French-conversion' }
 
352
Number >> semaines [
 
353
 
 
354
        ^self weeks.
 
355
]
 
356
 
 
357
{ #category : #'*DrGeo-French' }
 
358
Number >> signe [
 
359
        
 
360
        ^self sign.
 
361
]
 
362
 
 
363
{ #category : #'*DrGeo-French' }
 
364
Number >> sinus [
 
365
        "sinus en degrés"
 
366
        
 
367
        ^self degreeSin.
 
368
]
 
369
 
 
370
{ #category : #'*DrGeo-French' }
 
371
Number >> strictementPositif [
 
372
 
 
373
        ^self strictlyPositive.
 
374
]
 
375
 
 
376
{ #category : #'*DrGeo-French' }
 
377
Number >> tangente [
 
378
        "tangente en degrés"
 
379
        
 
380
        ^(self sinus / (self cosinus)).
 
381
]
 
382
 
 
383
{ #category : #'*DrGeo-French-truncation' }
 
384
Number >> tronquer [
 
385
        ^self floor
 
386
]
 
387
 
 
388
{ #category : #'*DrGeo-French-truncation' }
 
389
Number >> tronquerA: UnNombre [
 
390
"affiche le nombre tronqué à UnNombre près.
 
391
Par exemple, 2 racine tronquerA: 0.01 renvoie 1.41"
 
392
        ^ self truncateTo: UnNombre
 
393
]