Le comptage d’une manière générale
97
si ncar = 0 alors écrire «votre texte comporte 0 caractères»
sinon { pourcent := (100.0 * ne) / ncar
écrire «votre texte comporte », pourcent, « pour cent de lettres e»
}
donnez une suite de caractères terminée par un point :
je me figure ce zouave qui joue du xylophone en buvant du whisksy.
votre texte comporte 12.50 pour cent de lettres e
donnez une suite de caractères terminée par un point :
C, C++, Java, PHP, C# = Langages de programmation.
votre texte comporte 4.16 pour cent de lettres e
Calcul du pourcentage de lettres e d’un texte
Notez que si l’utilisateur fournit simplement un point comme donnée, la variable ncar prendra la valeur 0 et le calcul de pourcentage conduira à une division par zéro. C’est pourquoi
nous avons évité cette situation.
On notera que, dans la première exécution, nous avons fourni en données, une suite de caractères constituant une « phrase ». Dans ces conditions, on peut être gêné par le fait que les
espaces soient comptabilisés dans le nombre total de caractères. Mais, il faut bien voir que
notre programme a été écrit pour une « suite de caractères quelconques », comme le montre
le deuxième exemple. Si l’on voulait qu’il considère simplement les lettres d’un texte, il faudrait pouvoir éliminer, non seulement les espaces, mais aussi les symboles de ponctuation,
les symboles opératoires...
Remarque
Dans notre calcul de pourcentage, l’expression :
(100.0 * ne) / ncar
est une expression mixte, dans laquelle la valeur de ne est convertie en réel, avant d’être
multipliée par 100.0. Le résultat est divisé par la valeur de ncar, elle aussi convertie en
réel. En revanche, nous n’aurions pas obtenu les résultats escomptés en écrivant :
pourcent = ne / ncar * 100.0 ;
En effet, dans ce cas, il y aurait tout d’abord division entière de ne par ncar, ce qui fournirait comme résultat 0 (sauf si ne est égal à ncar, auquel cas, on obtiendrait 1) ; ce n’est
qu’ensuite que ce résultat serait converti en réel, conduisant à une valeur de pourcent
égale à 0 ou 100 !
Exercice 6.1 Écrire un programme qui lit 20 notes entières et qui indique le pourcentage de
notes supérieures à 10.
Précédent

- 120/370

Suivant