La fonction sschaine

Fermé
bodeckson Messages postés 2 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 21 avril 2009 - 21 avril 2009 à 01:22
 bodeckson - 23 avril 2009 à 21:07
Bonjour,
sil vous plait, pouvez-vous me corriger cet algorithme qui calcule et affiche le nombre de mots d'une phrase tapé au clavier? et comment pourais-je le traduire en langage pascal? Merci

Algorithme compter_mot ;
Etiquète (label) : 10 ;
Var
Nb_mot, i, j : entier ;
Phrase : chaine de caractère (string) ;
Début
Ecrire (« entrer une phrase ») ;
Lire (phrase) ;
i :=1 ; nb_mot :=0 ;
10 : tant que sschaine (phrase,i, 1) different de « »(espace)
Faire
i :=i+1 ;
Fin tant que ;
nb_mot:=nb_mot +1 ;
J :=i+1 ;
Si sschaine (phrase,j,1) different de « »(espace)
alors
I :=j ;
Aller à 10 (étiquette)
Finsi ;
Ecrire (‘ votre phrase contient : ‘, nb_mot,’ mots') ;
Fin.

1 réponse

plop!

1. je ne vois pas quand s'arrêtera ton pgm. il faudrait peut-être utiliser la fonction longueur(chaine) qui renvoie la longueur de la chaine. avec cette fonction, tu pourrais détecter qu'il est temps d'arrêter la boucle principale.
2. tu utilises un label :-( en fait, tu pourrais ne pas l'utiliser. essaies donc d'écrire ton algo sans "étiquette" ni "aller à".
3. pour ce qui est de la traduction : vu que ton algo est quasiment en pascal, une bête traduction mot à mot devrait suffire.

à demain
0
salut
En fait, sachant que la phrase tapée par l'utilisateur aura comme dernier caractère l'espace,
je me dit que ma boucle (tant que) s'arrêtera definitivement, lors de la detection de ce dernier espace.
Et en pascal mon veritable probleme est de savoir à quoi correspond la fonction (sschaine). Merci
0