Énoncé
Saisir un entier N positif ou nul avec une saisie contrôlée, puis afficher la somme de ses chiffres.
Exemples et cas limites
Saisissez ces valeurs dans la console pour vérifier votre résultat :
Entrée
N = 2047
Sortie attendue
13
Entrée
N = -123 N = 123
Sortie attendue
6
Entrée
N = 0
Sortie attendue
0
Code algorithmique
| 1 | algorithme somme_des_chiffres |
| 2 | debut |
| 3 | repeter |
| 4 | ecrire("N = ") |
| 5 | lire(n) |
| 6 | jusqua n ≥ 0 |
| 7 | // compléter le traitement demandé dans l’énoncé. |
| 8 | fin |
| 1 | algorithme somme_des_chiffres |
| 2 | debut |
| 3 | repeter |
| 4 | ecrire("N = ") |
| 5 | lire(n) |
| 6 | jusqua n ≥ 0 |
| 7 | reste ← n |
| 8 | somme ← 0 |
| 9 | tant_que reste > 0 faire |
| 10 | somme ← somme + reste mod 10 |
| 11 | reste ← reste div 10 |
| 12 | fin_tant_que |
| 13 | ecrire_nl(somme) |
| 14 | fin |
Méthode
- Saisir N jusqu’à obtenir N ≥ 0, puis copier N dans reste.
- MOD 10 donne le dernier chiffre ; DIV 10 le retire.
Comprendre la correction
Déroulement sur un exemple
- Pour N = 2047, reste = 2047 et somme = 0. MOD 10 extrait 7, puis DIV 10 laisse 204.
- On extrait ensuite 4, 0 et 2. La somme passe par 7, 11, 11 puis 13.
- reste vaut maintenant 0 : tous les chiffres sont traités et le programme affiche 13.
Erreurs à éviter
- Utilisez DIV 10 pour retirer un chiffre. / 10 produit une valeur réelle.
- Sans la mise à jour de reste, la boucle traiterait indéfiniment le même chiffre.