Exercice — nombre de chiffres d'un entier
Soit `x` un entier naturel écrit en base décimale. On exécute la séquence algorithmique suivante :
```
nb ← 1
Tant que (x Div 10 ≠ 0) faire
nb ← nb + 1
x ← x Div 10
Fin tant que
```
- Pour chacune des valeurs de `x` parmi 5403, 176 et 3, indiquer la valeur finale de `nb` après exécution de la séquence (en repartant à chaque fois de la valeur initiale de `x`).
- Donner le rôle de cette séquence.
- Écrire une séquence algorithmique équivalente sans boucle, en utilisant la conversion de l'entier décimal en chaîne de caractères (`Convch`) puis `Long`.
Voir la correction commentéeAprès avoir posé votre démarche
1. Valeurs finales de nb
| x | nb |
|---|----|
| 5403 | 4 |
| 176 | 3 |
| 3 | 1 |
Trace sommaire pour `x = 5403` : `nb=1` puis divisions successives `5403 → 540 → 54 → 5` ; à chaque quotient non nul on incrémente `nb`, d'où `nb = 4`. Pour `x = 3`, `3 Div 10 = 0` dès le test : la boucle ne s'exécute pas, `nb` reste 1.
2. Rôle. Cette séquence permet de déterminer le nombre de chiffres d'un entier `x` donné (écriture en base décimale).
3. Séquence équivalente sans boucle
```
Convch(x, xch)
nb ← Long(xch)
```
On convertit l'entier en chaîne, puis on prend la longueur de cette chaîne : c'est le nombre de chiffres. Toute solution correcte fondée sur la même idée de conversion est acceptable.