Programmation Basic Casio/Des programmes utiles et rapides à faire

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

Nous allons voir des programmes qui peuvent améliorer le quotidien de n'importe qui possédant une calculatrice...

Calculs répétitifs[modifier | modifier le wikicode]

En travaux pratiques, un exercice commun est d'effectuer une série de mesures et à partir de ces mesures, leur appliquer toujours la même formule pour trouver la donnée manquante. Pour que ces programmes soient réellement utiles, il faut que le temps consacré à les taper soit inférieur au temps qu'on consacrerait à taper la formule entière à chaque fois. Avec la pratique, cela ne prend que quelques dizaines de seconde, voire quelques secondes si on ne s'encombre pas à afficher du texte (dans l'éventualité où l'on désire partager son programme et qu'on veuille qu'il soit compréhensible par les autres).

Principe[modifier | modifier le wikicode]

Il s’agit d’une des formes les plus simples de programmation : le programme demande à l’utilisateur une variable. Cette variable est intégrée à une fonction ensuite exécutée. Le programme obtient alors un résultat et l’affiche. On peut étendre ce principe à des calculs impliquant plusieurs variables, des paramètres ou nécessitant plusieurs fonctions successives (algorithme).

Exemples[modifier | modifier le wikicode]

Calculeur de tension
Convertisseur années-lumière/mètre
Do
"DISTANCE EN METRES"?->A
A/9.4608E15
"L'EQUIVALENT EN AL EST :"
Ans
LpWhile 1

Générateur de tableaux statistiques[modifier | modifier le wikicode]

De même, avec une série de plusieurs mesures statistiques, il est facile de faire un programme qui produise un tableau indiquant les moyennes, les écarts types, et tous les indicateurs voulus, au sein d'un tableau généré automatiquement.

Principe[modifier | modifier le wikicode]

Là on va entrer des valeurs dans des Listes et Matrices (voir chapitres précédent), c'est à dire qu'on va demander 10 fois la même question et entrer la valeur dans 10 cases successives, seules les listes et les matrices permettent ca car leurs valeurs sont indicées (ou indexées...). On demande a l'utilisateur combien d'entrées ou de lignes il veut

?->A

On créé une matrice de cette taille, c'est à dire un tableau de tableaux (qui sont des données consécutives indicées on le rapelle)

{A,9}→Dim Mat A

On sait que notre programme traitera sur 9 facteurs différents ; pour chaque entrée, 8 choses lui corresponderont...

Ensuite on demande A fois d'entrer des valeurs, qu'on peuplera dans la matrice, si on enlève le superflu

For 1→B To A
?→C
C→Mat A[B,1]
Next
For 1→B To A
?→C
C→Mat A[B,2]
Next

On voit que la première fois on écrit dans la première « colonne » de la matrice, puis dans la deuxième... On réutilise les variables B et C car elles sont locales. On peut faire ca plusieurs fois...

Pour les valeurs qu'on déduit à partir des données entrées on fait également une boucle for, mais on demande pas d'entrée a l'utilisateur

For 1→B To A
Mat A[B,2]*100/D→Mat A[B,3]
Next

On prend juste les valeurs de la colonne 2 on les multiplie par 100 on la divise par D.

Note : la valeur de D est au vu la boucle précédente la somme des "REPONSES PRIX EXCF" vu que la valeur de D a été augmentée (et non incrémentée !) de la valeur C a chaque itération, mais on entre dans des détails

For 1→B To A
For 1→G To B
Mat A[G,3]+Mat A[B,4]→Mat A[B,4]
Next
Next

Cette fois si on remplit la colonne 4

Etc.

L'idée est qu'on utilise des boucles For et des données indicées pour entrer des « vollées » d'informations.

Une fois la dernière colonne remplie

→Mat A[B,9]

On extrait semble il le plus grande valeur de la colonne 9

0→E
For 1→B To A
Mat A[B,9]→D
If D≥E
Then D→E
B→F
IfEnd
Next
Locate 1,3,"LE MEILLEUR PRIX EST"
Locate 3,4,Mat A[F,1]

Même si on aurait pu utiliser les possibilités natives de la calculatrice pour cela (fonction Max())

Exemple[modifier | modifier le wikicode]

Un programme qui calcule le meilleur prix psychologique (le prix qui ne parait ni trop cher, ni trop dépréciatif aux yeux des clients). Utile lorsqu'on fait des études commerciales et qu'on ne peut se permettre de transporter un ordinateur avec soi en cours.

Le programme doit analyser une série de mesures statistiques entrées par l'utilisateurs, puis avec celles-ci produire toutes les données nécessaires.

Il faut tout d'abord rentrer X nombres de prix. Ensuite il faut rentrer les prix, reponses prix excessif, et réponses qualité insuffisante. A partir de là le programme doit calculer des pourcentages suite à reponses prix excessif, les pourcentages cumulés croissants (en vert). Après avoir rentré réponses qualité insuffisante au départ, le programme doit calculer également le pourcentage suite à reponses qualité insuffisante, le pourcentage cumulés décroissants (en bleu). Pour finir le programme doit calculer les deux dernières cases avec l'aide du bleu et vert et comparer la première et la dernière colone pour déduire le prix psychologique en jaune.

Px psyco.jpg

Note : le code ci-dessous a été adapté pour l'unicode et n'est donc pas compatible avec le set de caractères utilisés par les logiciels de transfert pour calculatrices.

ClrText
"-==PRIX PSYCHO==-"
Do:GetKey
LpWhile Not Ans
Do
"COMBIEN DE PRIX?"
"ENTREZ VALEUR PUIS"
"APPUYEZ SUR [EXE]"
?→A
{A,9}→Dim Mat A
For 1→B To A
ClrText:" ":" "
Locate 1,1,"NIVEAU DE PRIX"
Locate 1,2,B
?→C
C→Mat A[B,1]
Next
0→D
For 1→B To A
ClrText:" ":" "
Locate 1,1,"REPONSES PRIX EXCF ?"
Locate 1,2,B
?→C
C→Mat A[B,2]
D+C→D
Next
For 1→B To A
Mat A[B,2]*100/D→Mat A[B,3]
Next
For 1→B To A
For 1→G To B
Mat A[G,3]+Mat A[B,4]→Mat A[B,4]
Next
Next
0→D
For 1→B To A
ClrText:" ":" "
Locate 1,1,"REP QLT INSF"
Locate 1,2,B
?→C
C→Mat A[B,5]
C+D→D
Next
For 1→B To A
Mat A[B,5]*100/D→Mat A[B,6]
Next
For A→B To 1 Step –1
For A→G To B Step –1
Mat A[G,6]+Mat A[B,7]→Mat A[B,7]
Next
Next
ClrText
Locate 1,1,"CALCUL NON ACHAT"
For 1→B To A
Mat A[B,4]+Mat A[B,7]→Mat A[B,8]
Next
Locate 1,2,"CALCUL ACHAT"
For 1→B To A
100-Mat A[B,4]-Mat A[B,7]→Mat A[B,9]
Next
0→E
For 1→B To A
Mat A[B,9]→D
If D≥E
Then D→E
B→F
IfEnd
Next
Locate 1,3,"LE MEILLEUR PRIX EST"
Locate 3,4,Mat A[F,1]
Do:GetKey
LpWhile Not Ans
Mat A
ClrText
"RECOMMENCER?"
"[EXE]:OUI"
Do:GetKey
LpWhile Not Ans
Ans≠31⇒Break
LpWhile 1

Chargement des variables[modifier | modifier le wikicode]

Si vous installez des jeux ou des programmes, ceux-ci changeront les variables que vous aurez enregistrées: vos calculs seront tous faux ! Pour éviter ces petits problèmes, il est possible de faire un programme qui charge vos variables. Si vous souhaitez enregistrer 8,902 dans H et 2093 dans I, voici le petit code à insérer:

"CHARGEMENT DES VARIABLES"
8,902→H
2093→I
"FIN DU CHARGEMENT DES VARIABLES"

Les plus imaginatifs feront:

"CHARGEMENT DES"
"VARIABLES EN COURS..."

"CHIFFRE H..."
8,902→H
"H CHARGE"
"CHIFFRE I..."
2093→I
"I CHARGE"

"VARIABLES CHARGEES"
"APPUYEZ SUR (EXE) POUR RECOMMENCER"