Posez votre question Signaler

Algorithme [Résolu]

Lol64 - Dernière réponse le 14 nov. 2009 à 21:51
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.
Lire la suite 

Algorithme »

6 réponses
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
Avec les codes ASCII peut-être ?
Ajouter un commentaire
Réponse
+0
moins plus
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]
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Ce document intitulé « Algorithme » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook