Rechercher : dans
Par :

Algorithme

Dernière réponse le 14 nov 2009 à 21:51:15 Lol64, le 14 nov 2009 à 18:57:00 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un problème avec un algorithme :

Compter le nombres de voyelles dans une chaîne.

Programme : compter Nb voyelles

Cst : NB
Var : i:entier
chaine[NB]:car
Début
Afficher"Saisir chaîne de caractère"
Saisir chaîne
tant que (chaine[i]<>'\0') Faire
Si (chaine[i] ?????? // Je ne vois pas la condition à mettre
i <- i+1
Fin si
Fin tant que
Fin.

Merci pour votre aide.

Configuration: Windows XP
Firefox 3.0.7

Meilleures réponses pour « Algorithme » dans :
Introduction à l'algorithmique Voir Notion d'algorithme La mise au point d'un programme informatique se fait en plusieurs étapes. Il s'agit de fournir la solution à un problème, la première étape consiste donc à analyser le problème, c'est-à-dire en cerner les limites et le mettre...

1

Le concombre laminé, le 14 nov 2009 à 19:01:04

Salut
si tu connais pas la fonction pour tester l'appartenance de chaine[i] à une chaine de voyelles, tu peux peut-être tester isolément l'égalité entre chaine[i] avec une voyelle, et répéter ce test pour chaque voyelle...

Répondre à Le concombre laminé

3

Lol64, le 14 nov 2009 à 19:03:43

Imagine si c'était les consonnes donc non pour le test de tous les voyelles.
Sinon c'est quoi cette fonction ?
Mais il doit avoir une autre méthode non ?

Répondre à Lol64

4

Lol64, le 14 nov 2009 à 19:23:22

Avec les codes ASCII peut-être ?

Répondre à Lol64

5

Pacorabanix, le 14 nov 2009 à 19:54:36

SI "Le caractère est une voyelle", c'est ça que tu dois mettre.
ALORS incrémenter le nombre de voyelle

plus précisément :

SI Le caractère est un 'a' OU le caracatère est un 'b' OU ...
ALORS incrémenter le nombre de voyelle

le caractère c'est chaine[i]

Répondre à Pacorabanix

6

Lol64, le 14 nov 2009 à 20:01:29

Oui mais comment tu la note ta condition, j'ai pas envie de faire 20 tests pour les consonnes ou 6 tests pour les voyelles.

Répondre à Lol64

7

 Pacorabanix, le 14 nov 2009 à 21:51:15

Mais ton but est de compter les voyelles non ?

Sinon le mieux est de faire une fonction séparée "VerifieSiLeCaractereEstDansLaListe(caractère, liste)" qui renvoie vrai ou faux, où liste est la chaine de tout ce que tu dois tester et caractère. Dans ton cas liste est "aeiou".

Pour chaque caractère dans la chaine, si Verifie...(chaine[i], "aeiou") est vrai, alors augmenter ton compteur de "voyelles", sinon ne rien faire avec ce compteur.

et l'algorithme de Vérifie...(caractère, liste) serait un truc du genre :

POUR chaque i de 0 à Longueur de liste-1
  SI caractère == liste[i] ALORS finir la fonction en renvoyant VRAI.
FIN POUR
finir la fonction en renvoyant FAUX.


à adapter pour la manière dont tu fais tes boucles etc...

Répondre à Pacorabanix