~hilaire-fernandes/drgeo/trunk

« back to all changes in this revision

Viewing changes to src/DrGeo-French/Fraction.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 : #Fraction }
 
2
 
 
3
{ #category : #'*DrGeo-French-printing' }
 
4
Fraction >> aLancienne [
 
5
        "répond la fraction à l'ancienne, avec partie entière"
 
6
 
 
7
        | a b |
 
8
        a := self partieEntiere.
 
9
        b := self partieDécimale.
 
10
        ^(a asString),'+',(b asString).
 
11
]
 
12
 
 
13
{ #category : #'*DrGeo-French-printing' }
 
14
Fraction >> aLegyptienne [
 
15
        "répond la fraction comme somme de fractions égyptiennes
 
16
        soit de numérateurs 1;
 
17
        algorithme de Fibonacci-Sylvester"
 
18
 
 
19
        | liste b c chaine |
 
20
        liste := #() commeCollectionOrdonnee.
 
21
        liste ajouter: self partieEntiere.
 
22
        b := self partieDécimale.
 
23
        [b numerateur > 1] tantQueVrai: [
 
24
                c := (b inverse partieEntiere + 1) inverse.
 
25
                b := b-c.
 
26
                liste ajouter: c.
 
27
        ].
 
28
        liste ajouter: b.
 
29
        chaine := (liste commeTableau a: 1) asString.
 
30
        liste := liste retirerTousLorsque: [ :n | n isInteger].
 
31
        liste := liste commeTableau.
 
32
        liste faire: [ :elt | chaine := chaine,' + ',(elt asString)].
 
33
        
 
34
        ^chaine.
 
35
]
 
36
 
 
37
{ #category : #'*DrGeo-French-printing' }
 
38
Fraction >> avecDesMots [
 
39
 
 
40
        | t q |
 
41
        q := #('unième' 'demi' 'tiers' 'quart').
 
42
        t := self numerateur avecDesMots.
 
43
        (self deepCopy denominateur > 1) siVrai: [
 
44
                t := t,' '.
 
45
                (self denominateur < 5) siVrai: [
 
46
                        t := t,(q a: self denominateur).
 
47
                        ]
 
48
                siFaux: [
 
49
                        t := t,(self denominateur avecDesMotsDen),'ième'.
 
50
                        ].
 
51
                (self numerateur > 1 et: (self denominateur =3) contraire) siVrai: [
 
52
                        t := t,'s'.
 
53
                        ]
 
54
                ].
 
55
        ^t.
 
56
]
 
57
 
 
58
{ #category : #'*DrGeo-French-printing' }
 
59
Fraction >> commePari [
 
60
        "répond la fraction comme probabilité"
 
61
 
 
62
        | c |
 
63
        c := self numerateur asString.
 
64
        (self numerateur < 2) siVrai: [
 
65
                c := c,' chance contre '.
 
66
                ] siFaux:[
 
67
                c := c,' chances contre '.
 
68
                ].
 
69
        c := c,(self denominateur - self numerateur) asString.
 
70
        ^c
 
71
]
 
72
 
 
73
{ #category : #'*DrGeo-French-printing' }
 
74
Fraction >> commeProba [
 
75
        "répond la fraction comme probabilité"
 
76
 
 
77
        | c |
 
78
        c := self numerateur asString.
 
79
        (self numerateur < 2) siVrai: [
 
80
                c := c,' chance sur '.
 
81
                ] siFaux:[
 
82
                c := c,' chances sur '.
 
83
                ].
 
84
        c := c,self denominateur asString.
 
85
        ^c
 
86
]
 
87
 
 
88
{ #category : #'*DrGeo-French' }
 
89
Fraction >> de: unNombre [
 
90
 
 
91
        ^self * unNombre.
 
92
]
 
93
 
 
94
{ #category : #'*DrGeo-French' }
 
95
Fraction >> denominateur [
 
96
 
 
97
        ^self denominator.
 
98
]
 
99
 
 
100
{ #category : #'*DrGeo-French' }
 
101
Fraction >> estUnePuissanceDe2 [
 
102
 
 
103
        ^self isPowerOfTwo.
 
104
]
 
105
 
 
106
{ #category : #'*DrGeo-French' }
 
107
Fraction >> numerateur [
 
108
 
 
109
        ^self numerator.
 
110
]
 
111
 
 
112
{ #category : #'*DrGeo-French' }
 
113
Fraction >> reduite [
 
114
 
 
115
        ^self reduced.
 
116
]