π
<-
Chat plein-écran
[^]

Passage d'une fonction à un programme

Programmation et implémentation d'algorithmes.

Passage d'une fonction à un programme

Message non lude Richou-D-Hunter » 07 Déc 2012, 19:44

Bonjour,

Récemment, j'ai été confronté au problème du passage de fonction à un programme sur TI, et je me suis posé la même question sur Casio. J'espère que ça sera utile à un maximum de personnes !

L'exemple de base est un programme de résolution par dichotomie. Le but de cet algorithme est d'approximer f(x) = 0 dans un intervalle [a;b], en divisant l'intervalle en deux à chaque itération jusqu'à une précision e. Vous trouverez plus d'informations sur Wikipédia (comme toujours) : http://fr.wikipedia.org/wiki/Dichotomie

Voici un algorithme de dichotomie en langage naturel :

Code: Tout sélectionner
Si f(a) × f(b) < 0 alors
   Tant que |b-a| > e faire
      m → (a+b)/2
      Si f(a) × f(m) > 0 alors
         a → m
      Sinon
         b → m
      FinSi
   FinTantQue
   Afficher [a;b]
Sinon
   Si f(a) = 0
      Afficher a
   Sinon
      Si f(b) = 0
         Afficher b
      Sinon
         Afficher "Pas de solution dans [a;b]"
      FinSi
   FinSi
FinSi


En Casio-Basic, le problème qui se pose est l'évaluation de f(a) et f(m). En effet, les variables en Casio-Basic ne peuvent contenir que des nombres ; il est impossible de stocker une fonction dans une variable. Que faire ?

La solution réside dans le menu "Graph" de votre machine. Entrez votre fonction dans le champ Y1. Revenez dans l'éditeur de programme.
À partir de là, vous pouvez évaluer Y1 en entrant le caractère Y dans "Vars" > "Grph" > "Y" suivi d'un 1, qui est à différencier du Y du clavier alphabétique.

De ce fait, écrire ceci
Code: Tout sélectionner
Y1 → F
affectera à F la valeur de Y1, calculée en X. Ainsi, en affectant A à X, on peut évaluer f(A).

Au final, on devra écrire ceci :
Code: Tout sélectionner
A → X
Y1 → F


Pour finir, voici donc le programme complet, en supposant que la fonction aie bien été entrée dans le menu "Graph" :

Code: Tout sélectionner
"A ="? → A
A → X
Y1 → F

"B ="? → B
B → X
Y1 → G

If F × G < 0 Then
   While |B-A| > E
      (A+B)/2 → M

      A → X
      Y1 → F
      M → X
      Y1 → G
      
      If F × G > 0 Then
         A → M
      Else
         B → M
      IfEnd
   WhileEnd
   
   "SOLUTION COMPRISE ENTRE"
   A⦟
   "ET"
   B
Else
   If F = 0 Then
      A⦟
      "EST SOLUTION"
   Else
      If G = 0 Then
         B⦟
         "EST SOLUTION"
      Else
         "PAS DE SOLUTION DANS [A,B]"
      IfEnd
   IfEnd
IfEnd


Et voilà ! Le tour est joué ! Évidemment, il en sera de même pour tous les programmes qui dépendent d'une fonction…
Image
« Quelque soit la branche que vous avez choisie, dans votre vie future, appliquez-vous à développer un progrès aussi minime soit-il. Vous en ferez un bien général. »
— Gustave Eiffel
Avatar de l’utilisateur
Richou-D-Hunter
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 32.8%
 
Messages: 58
Inscription: 28 Oct 2012, 08:59
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Première année, école d'ingénieur info

Re: Passage d'une fonction à un programme

Message non lude Bisam » 07 Déc 2012, 21:22

Bonne astuce, bien expliquée.

On en veut encore !
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.5%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Passage d'une fonction à un programme

Message non lude Richou-D-Hunter » 07 Déc 2012, 23:56

Merci ! :)

Je risque d'être confronté à d'autres problèmes sur la Casio de ma petite amie qui est en Terminale S, alors je n'hésiterai pas à faire part de mes découvertes ! :P
Image
« Quelque soit la branche que vous avez choisie, dans votre vie future, appliquez-vous à développer un progrès aussi minime soit-il. Vous en ferez un bien général. »
— Gustave Eiffel
Avatar de l’utilisateur
Richou-D-Hunter
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 32.8%
 
Messages: 58
Inscription: 28 Oct 2012, 08:59
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Première année, école d'ingénieur info


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
764 utilisateurs:
>735 invités
>24 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)