Les nombres en mots
Programme avec Texte Seulement
PC-BASIC
Le français est peut-être mieux décrit comme une langue d'exceptions. Ces innombrables exceptions aux règles sont lourdes à gérer lors de la programmation de tout ce qui fera varier une sortie de texte en fonction de certaines entrées de l'utilisateur.
Par exemple, considérez les mots utilisés pour décrire les nombres, en particulier les nombres entiers. De 0 à 9, il y a dix mots uniques, comme vous vous en doutez. Mais ensuite, de 10 à 19, il y a encore dix mots uniques. Et 20 a aussi son propre mot unique.
Ce n'est que lorsque nous arrivons à 21 que les mots commencent à être réutilisés : vingt et un, vingt-deux, vingt-trois, et ainsi de suite. Le modèle continue jusqu'à 100, moment auquel d'autres règles entrent en jeu.
Un programme qui prend en entrée un nombre - disons, de 0 à 999 - et sort le nombre en mots doit tenir compte de tous les mots uniques.
Mais le programme ne devrait pas non plus être complètement brutal; clairement, coder en chaînes pour chaque nombre de 0 à 999 serait une perte de temps et de mémoire, et, pire encore, ce serait s'engager dans un style de codage médiocre.
Le programme NUMBERS.BAS vite ces problèmes.
Après avoir obtenu le numéro de l'utilisateur, le programme utilise la fonction LEN pour déterminer la longueur de la chaîne et la fonction MID$ pour examiner chaque valeur de position. (Notez que le nombre doit être saisi sous forme de chaîne pour utiliser les éléments susmentionnés.)
À partir de là, il s'agit simplement d'attribuer les mots corrects - ou combinaison de mots - à chaque nombre possible entre 0 et 999, tout en n'écrivant pas trop de code pour le faire. NUMBERS.BAS donne les mots pour les nombres en anglais pour nous aider à les apprendre.
Certainement NUMBERS.BAS pourrait être étendu pour permettre une plus grande gamme d'entrées ; en plus d'augmenter l'entier maximum autorisé (vous voudrez peut-être ajouter du code pour signaler à l'utilisateur s'il entre un nombre hors limites), envisagez également des sous-programmes pour gérer les décimales.
De plus, vous pourriez envisager d'inverser l'algorithme : faire en sorte que l'utilisateur saisisse le nombre en mots et que le programme convertisse ses mots en nombre approprié.
À partir de là, un programme de calcul d'entrée entièrement basé sur des mots (avec addition, soustraction, multiplication et division de deux nombres ou plus) pourrait être conçu.