Bonjour,
Je réagis à la rédaction de l'exercice "Statistique" de la demi-finale 2008.
La contextualisation est artificielle. La formulation est incorrecte : on ne demande pas de trouver un "taux" d'apparition (ce qui serait un rapport ie un quotient) mais tout simplement un nombre d'apparition.
L'énoncé n'est pas clair puisqu'on lit d'une part :
"Il n'y aura dans chaque extrait que des caractères alphabétiques en majuscule et en minuscule. "
et d'autre part
" Vous devez ignorer tout autre type de caractère."
(s'il n'y a que des caractères alphabétiques je vois pas ce que peut vouloir dire qu'il faut ignorer les autres types).
La façon dont les données est communiquée à l'utilisateur est imprécise : y-a-t-il des espaces possibles après N ? L'énoncé ne dit même pas que cette donnée figure sur une ligne (ie est suivi d'un saut de ligne). Idem pour le texte à analyser, par quoi se termine-t-il ? par un saut de ligne, par un caractère nul ? tout ça, c'est important pour le mode de saisie.
La chose qui m'a le plus gêné alors que l'exercice est quasi trivial : quel type de caractères sont attendus ? les caractères sont-ils des caractères imprimables (isprint en C) ? Les caractères sont-ils signés ou pas ? Figurez-vous que ça a une importance pour le codage. Peut-il y avoir des caractères spéciaux (accentués, cédille, etc) ?
Je suis quasiment persuadé que vous supposez que les caractères sont de l'ASCII pur. ALORS IL FAUT LE DIRE car sinon c'est beaucoup plus compliqué à coder. Je suis sidéré d'un tel manque de rigueur dans la formulation de l'énoncé, à croire que les personnes qui donnent ce genre d'exo ne sont même pas au fait de ce genre de question.
Il est dit que la sortie est un tableau : pas du tout, c'est tout simplement juste le nombre de caractères a, b, c, etc séparés par des sauts de ligne.
Le code C proposé est horriblement compliqué (malloc pour stocker les 26 caractères de l'alphabet, vraiment n'importe quoi et par ailleurs, si on malloque, on vérifie son retour) et boursouflé et d'une complexité totalement inutile (on n'a même pas besoin de stocker les caractères dans un tableau, ça se fait à la volée).
Bref, un énoncé à la rédaction fort négligée.