|
MAXIMA & les
CHIFFRES Programmation Programme d’extraction des chiffres d’un nombre
et applications. |
Programmes de familiarisation avec Maxima |
|
|
Mon premier
programme |
Comment
trouver les chiffres du nombre 45 et les exprimer sous forme d’une
liste? |
|
Division |
L’instruction
division réalise la division
euclidienne dont la sortie est la liste donnant le quotient suivi du
reste. |
|
Fonction
extraction des unités Optimisation |
On
commence par s’exercer avec une fonction qui fournit les dizaines et les
unités d’un nombre. Les
unités sont le reste de la division par 10 d’un nombre, soit : u = n mod
10. Les
dizaines sont obtenues en retirant les unités et en divisant par 10. On
retourne la liste de ces deux nombres. 1)
L’instruction division donne directement la liste
quotient et reste. 2)
L’instruction block peut être omise. Son rôle
consiste à isoler des variables utilisées localement. 3)
Par défaut, le retour de la fonction est le
dernier calcul. |
|
Extraction des
chiffres |
On
se donne un nombre n dont on veut extraire les chiffres dans une liste Ch. Tant
que n reste positif, on itère les instructions suivantes :
Appel de la fonction unit
définie plus haut.
Dans la liste Ch, on ajoute (append) la part
2 de R (le chiffre des unités).
La valeur de n est mise à jour avec les dizaines
(part 1 de R) |
|
|
||
Fonction
extraction des chiffres |
Commentaires Utilisation
d’un block avec variables locales :
Ch, la liste des chiffres et R, la liste quotient, reste de la division. Le calcul est exactement le même que celui
exposé ci-dessus. La
liste des chiffres Ch est retournée (return). |
|
Fonction
conversion en base b |
Commentaires Programme
qui convertit un nombre décimal en liste des chiffres de ce nombre en base b. L’instruction
division est modifiée en conséquence. Le
premier exemple exprime 1024 = 210 en binaire, un 1 suivi de dix
0. Le
second donne un exemple en base 12. En effet, 150 = 144 + 6 = 122
+ 6. |
|
Extraction des
chiffres et conversion - Autre version |
Une autre version vue sur Internet (Rosetta Code). Même
principe que ci-dessus, avec la nuance que la base 10 est implicite. L’argument
nb est mis sous forme de liste dont la longueur (length) détermine la
suite :
Si la longueur est 1, on est implicitement en
décimal est le dividende b est mis à 10 ;
Sinon, il prend la valeur du deuxième nombre dans
l’argument. Dans
tous les cas, le nombre n à convertir est pris comme le premier élément
(first) de l’argument. |
|
Voir Racines numériques additives
et multiplicatives
|
||
Recherche de
palindrome |
La
fonction palindrome utilise la fonction recherche des chiffres vue ci-dessus. Il
s’agit de vérifier la symétrie des chiffres. Pour cela, on fait l’hypothèse
que le nombre est palindrome (T=1) et si un seul test de symétrie est
défaillant, ce témoin est mis à 0. |
|
Liste de
nombres palindromes |
Ce
programme liste les nombres palindromes dans L. Si
le retour de la fonction Palin est à 1, le nombre est retenu et ajouté à la
liste L (append). On
imprime la liste et sa longueur. |
|
|
||
|
La
recherche des carrés ayant deux chiffres identiques utilise la fonction
Chiffre vue ci-dessus. Une
première boucle explore les nombres n ; une seconde explore les chiffres
de chaque nombre. Si
les chiffres de rang i et i+1 sont égaux, on imprime le nombre et son carré. On
maitrise bien les symboles
Le dollar pour finir ;
La virgule à l’intérieur des boucles, sauf à la
suite de la dernière instruction de boucle.
On ferme bine les parenthèses ouvertes. |
|
|
||
|
Il
s’agit ici de sélectionner les nombres ayant tous ses chiffres différents et
uniques. Avec
la fonction chiffre vue ci-dessus, on forme la liste C des chiffres de n. L’instruction
setify (passer à un ensemble) transforme
la liste c en un ensemble D, lequel élimine les doublons des chiffres. Il
suffit de comparer la taille (length) des deux ensembles. S’i elles sont
égales, alors tous les chiffres sont différents. |
|
Retour |
|
Suite |
Maxima – Liste et
ensembles |
Sites |
Voir
liste en programmation
Maxima &
GnuPlot – Logiciel de calcul formel & logiciel de tracé de courbes – Thomas
Custanet – Tout ce qu’il faut savoir pour débuter |
Cette page |
http://villemin.gerard.free.fr/aInforma/aMaxima/Chiffres.htm
|