Chaîne de caractère

Anna -  
 Anna -
Bonjour,

Mon prof nous a corrigé l'exercice suivant :

Ecrire un algorithme qui permet de compter le nombre de mots dans une phrase.
La phrase commence obligatoirement par une lettre et les mots sont séparés par des espaces.

Correction:

Algorithme Comptage_Mots
Variables
i, L, nb_mot : Entier
phrase : Chaîne
Début
Ecrire(”Entrer une phrase non vide : ”)
Lire(phrase)
L<--Long(phrase)
nb_mot <-- 1
Pour i de 1 à L Faire
Si(phrase[i] = ” ”) Alors
nb_mot <-- nb_mot + 1
FinSi
FinPour
Ecrire(”Nombre de mots = ”,nb_mot)
Fin.

Mais je vois que dans la correction, il n'a pas testé si le premier caractère est une lettre ou non , il se peut que le premier caractère soit un chiffre ou autre chose ?
Qui peut m'expliquer ça SVP !
A voir également:

2 réponses

Utilisateur anonyme
 
Bonsoir

tel qu'est formulé le sujet
La phrase commence obligatoirement par une lettre et les mots sont séparés par des espaces.
est un fait pas un truc à vérifier.
0
Anna
 
Merci bien.
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Par contre, il n'est rien précisé au sujet du dernier caractère de la chaîne.

Du coup, je pense que l'algorithme donne un résultat faux si la chaîne saisie se termine par un espace... il comptera à mon sens un mot en trop

:-P
0
Anna > [Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention  
 
Il ne faut pas oublier que le parcours ne dépasse pas la longueur de phrase.
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Je ne vois pas le rapport avec ma remarque.

Un espace est un caractère et peut se trouver à la fin de la chaîne, si l'utilisateur l'y met.
0
Utilisateur anonyme
 
Bonsoir Dal, très juste.
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Il faudrait de plus maintenir un drapeau indiquant les espaces consécutifs.
0
Anna
 
T'as raison merci
0