Dans cette leçon, je vous guiderai pour écrire un programme qui fera faire à Reeborg l'addition de deux nombres. Bien que nous allons le faire de la façon habituelle, en utilisant des nombres écrits en base 10 (que nous utilisons tous les jours), nous pourrons facilement utiliser le programme pour additionner des nombres dans d'autres bases !
Ajoutons deux nombres "à la manière traditionnelle", de droite à gauche :
528
+ 634
------
12 # additionner les unités d'abord (8+4)
Nous remarquons que nous avons un "1" à mettre en retenue au-dessus de la colonne des dizaines. Cette "retenue au-dessus", c'est très probablement là que votre programme a eu des problèmes. Réécrivons-le de la manière "habituelle" et continuons.
1
528
+ 634
------
1162
Bien, ça a été un peu rapide, mais je suis sûr que vous avez pu suivre. Dans le monde de Reeborg, nous aimerions que cette addition ressemble à ce qui suit :
Attaquons d'abord le problème plus simple de l'addition 8+4.
Attention : L'exercice suivant peut être un peu difficile et est présenté plus comme un défi. Lisez le reste de cette leçon et décidez vous-même si vous voulez essayer, ou continuer directement à en apprendre plus sur Python.
Comme nous l'avons déjà dit, le problème de l'addition de deux nombres de façon que chaque pile de sonnettes représente un seul chiffre arrive quand nous devons additionner deux chiffres dont la somme est plus grande que 9 (en base 10). En quelque sorte, nous devons garder une trace de ce nombre magique (10), quels que soient les deux nombres que nous allons additionner. J'ai créé un monde (fichier : adding_world.wld) assez grand pour ajouter deux nombres de 7 chiffres en base 10 (ou même en base 16 !). Chargez ce fichier monde et je vous guiderai pour que vous puissiez écrire un programme qui peut faire des additions correctement.
Après avoir chargé le fichier monde, si vous regardez en bas de l'écran, vous verrez que Reeborg transporte 8 sonnettes. Écrivez un programme pour que Reeborg mette une ligne de sonnettes, une à chaque intersection de la 10e rue, comme illustré ci-dessous (après que mon programme a fini, j'ai utilisé les touches fléchées de mon clavier pour écarter Reeborg du chemin car il était sur la sonnette de la dernière colonne : c'est pourquoi vous ne le voyez pas dans l'image ci-dessous).
Maintenant, assurez-vous d'enregistrer ce programme avant de continuer.
Rechargez le fichier monde (pour que le monde soit vide à nouveau et Reeborg soit au point d'origine [intersection de la 1re avenue et la 1rerue])
et ajoutez des sonnettes dans le coin en bas à droite pour que
l'affichage ressemble à ce qui suit (mais avec Reeborg au point
d'origine).
Faites faire à Reeborg ce qui suit :
Maintenant, nous avons deux sonnettes au-dessus de la ligne de
sonnettes horizontale (les unités du nombre 12) et une sonnette en plus
sur la ligne horizontale (que nous pouvons utiliser comme la
"retenue"). Ainsi, tout ce que vous avez à faire est de :
Eh bien... en réalité, ces cinq étapes comme je les ai écrites vont avoir besoin de pas mal de code et vous pourrez trouver cela un peu difficile à faire. Mais vous y arriverez si vous procédez méthodiquement. Essayez !
Alors, vous avez fini par faire calculer 8+4 par votre programme. Formidable ! Maintenant essayez-le avec 3+5. Est-ce que cela fonctionne ? Il y a des chances que non... puisqu'il n'y a pas besoin de retenue. Pouvez-vous réfléchir à une façon de le faire ? Peut-être que vous pourrez en utilisant seulement ce que nous avons appris jusqu'ici... Pour la solution que j'ai écrite moi, j'ai eu besoin d'un mot-clé Python que nous n'avons pas encore vu : break.
[NdT : break = interrompre]
Si vous savez ce que veut dire additionner des nombres dans des bases autres que la base 10, essayez de modifier votre programme (ou le fichier monde ?...) pour pouvoir additionner des nombres dans une base différente.
Jusqu'ici, dans le monde de Reeborg, nous avons vu les mots-clés Python
suivants :
def, elif, else, if, not, pass, while.
Nous avons fini par écrire un programme plutôt compliqué pour que
Reeborg puisse additionner deux nombres. Il est temps d'abandonner le
monde de Reeborg pour voir comment additionner deux nombres bien plus
facilement avec du Python "pur". Ne vous en faites pas : nous
reviendrons dans le monde de Reeborg de temps en temps, et nous verrons
comment notre connaissance améliorée de Python peut aider Reeborg.