Énoncé
Saisir une chaîne non vide et compter les lettres A, E, I, O, U et Y, sans distinguer majuscules et minuscules. Les lettres accentuées sont exclues de cette version.
Exemples et cas limites
Saisissez ces valeurs dans la console pour vérifier votre résultat :
Pour une chaîne, ne tapez pas les guillemets. Pour "", validez une saisie vide.
Entrée
Chaîne = "AlgoTN"
Sortie attendue
2
Entrée
Chaîne = "AEIOUY"
Sortie attendue
6
Entrée
Chaîne = "" Chaîne = "bc"
Sortie attendue
0
Code algorithmique
| 1 | algorithme compter_voyelles |
| 2 | debut |
| 3 | repeter |
| 4 | ecrire("Chaîne = ") |
| 5 | lire(ch) |
| 6 | jusqua long(ch) > 0 |
| 7 | // compléter le traitement demandé dans l’énoncé. |
| 8 | fin |
| 1 | algorithme compter_voyelles |
| 2 | debut |
| 3 | repeter |
| 4 | ecrire("Chaîne = ") |
| 5 | lire(ch) |
| 6 | jusqua long(ch) > 0 |
| 7 | nombre ← 0 |
| 8 | pour i de 0 à long(ch) - 1 faire |
| 9 | si majus(ch[i]) ∈ ["A", "E", "I", "O", "U", "Y"] alors |
| 10 | nombre ← nombre + 1 |
| 11 | fin si |
| 12 | fin_pour |
| 13 | ecrire_nl(nombre) |
| 14 | fin |
Méthode
- Parcourir les caractères ch[i], de 0 à LONG(ch) − 1.
- Tester MAJUS(ch[i]) dans la liste des six voyelles.
Comprendre la correction
Déroulement sur un exemple
- Pour ch = "AlgoTN", on parcourt les indices 0 à 5 et nombre commence à 0.
- MAJUS(ch[0]) vaut "A" et MAJUS(ch[3]) vaut "O". Ces deux caractères appartiennent à la liste des voyelles.
- Les autres caractères ne changent pas le compteur. Le résultat est 2, sans modifier la chaîne d’origine.
Erreurs à éviter
- Testez chaque caractère avec ch[i]. Une sous-chaîne n’est pas nécessaire ici.
- La liste inclut Y mais pas les lettres accentuées. Respectez cette définition de l’énoncé.