3.2 Opérations

3.2.1 Priorité des opérations

Le langage informatique Smalltalk ne connaît pas la priorité des opérateurs. L’ordre de calcul des quatre opérations arithmétiques (+ ; - ; * ; /) est toujours de la gauche vers la droite. Les opérateurs sont en fait des messages binaires comme expliqué dans le chapitre sur la syntaxe du langage : l’ordre d’envoi d’une série de messages binaires est de la gauche vers la droite.

Pour changer l’ordre de calculs, il faut donc utiliser des parenthèses.

5 * 3 + 2
⇒ 17

5 + 3 * 2 C'est équivalent en mathématiques à (5 + 3) * 2
⇒ 16 ! 

5 + (3 * 2)  C'est équivalent en mathématiques à 5 + 3 * 2
⇒ 11

Exemple 3.5: Ordre de calculs

Pour résumer. Lorsque nous écrivons un calcul avec le langage Smalltalk, il faut donc garder en tête que l’ordre de calculs des opérations arithmétiques est toujours de la gauche vers la droite. Pour changer l’ordre, utiliser des parenthèses.

Écrire le code informatique de calculs pour obtenir les résultats suivants (à droite de ⇒). Lorsque nécessaire, utiliser des parenthèses pour suivre l’ordre des priorités mathématiques des opérateurs arithmétiques :
10 / 5 + 2 ⇒ 4
2 + 10 / 5 ⇒ 4
10 + 7 * 2 + 4 ⇒ 28
(6 + 4) * 2 ⇒ 20
4 * 5 + 7 * 2 ⇒ 34

Exercice 3.7: Calculs arithmétiques

3.2.2 Calcul fractionnaire

Dr.Geo sait calculer avec des nombres fractionnaires, il faut juste bien veiller à placer les fractions entre parenthèses.

Mathématiques : 1 / 5 + 3 / 54 / 5
Code : (1/5) + (3/5) ⇒ (4/5)

Exemple 3.6: Calculs fractionnaires

S’entraîner avec l’exercice suivant :

Écire le code pour effectuer les calculs suivants :
2 / 9 + 3 / 95 / 9
5 / 7 - 2 / 73 / 7
(2 / 3) * (4 / 5)8 / 15

Exercice 3.8: Calculs fractionnaires

Résultat mathématique. L’inverse d’une nombre – et d’une fraction – s’obtient en divisant 1 par ce nombre.

Par exemple, 1 / (4/5) = 5/4. Cela s’écrit de la même façon en code informatique.

Code :
1/(3/5) ⇒ (5/3)

Exemple 3.7: Inverse d’une fraction

Écrire le code pour calculer les inverses des fractions (7/4) et (98/99).

Exercice 3.9: Inverses de fractions

3.2.3 Division euclidienne

Résultat mathématique. La division euclidienne ou division entière de deux nombres entiers où 423 est le dividende et 15 le diviseur donne un quotient de 28 et un reste de 3.

Ces résultats se calculent avec les messages binaires // pour le quotient et \\ le reste.

423 // 15 ⇒ 28 "le quotient"
423 \\ 15 ⇒ 3  "le reste"

Exemple 3.8: Division euclidienne

Écrire le code pour calculer le quotient et le reste des divisions suivantes :
- 65 par 7
- 732 par 13
- 5241 par 29

Exercice 3.10: Divisions euclidiennes