Forum

Catégorie : Programmes
Forum : Aide à la programmation
Vues : 747
Réponses : 9
Type : discussion
Etat : réponses autorisées

Variation d’une fonction

monsaibert le 06/01/2012 à 19:31
Code de l'etude des variations d'une fonction

prompt A, B, N
(B-A)/N -> P
Input Y1
I=0
For(X,A,B P)
If Y1(X+P) > Y1(X)
I+1 ->I
End
Disp I

avec A=0, B=5 N=100 (f(crazy.gif=0.5x-1).
Je pensais obtenir 100. 1er resultat:107/ 2ème 208/ 3ème..309
linkakro le 06/01/2012 à 20:47
Il manque une remise à zéro de la variable I au début du programme car "I=0" est un test et non une affection. 0->I ou bien EffVar I

Cette approche est originale.
En revanche la valeur de I me semble difficilement exploitable pour écrire un tableau.
sandro le 06/01/2012 à 20:56
sinon, tu peut faire:
Code
Imput Y1
"nbreDérivé(Y1(X),X,X)" -> Y2     //dans math/8 ; en angalais : nbreDérivé(=nDeriv(


Et comme ça, tu as la fonction dérivée dans Y2 (enfin, de manière numérique) et tu n'aura plus qu'à faire Y2(X) avec x l'abscisse du point pour optenir le nombre dérivé en ce point.

Sandro
monsaibert le 07/01/2012 à 13:35
linkakro peux-tu m'expliquer :
"Il manque une remise à zéro de la variable I au début du programme car "I=0" est un test et non une affection. 0->I ou bien EffVar I"

Rq: je n'ai pas fait le code par la derivée parceque je compte utiliser tout celà pour faire du soutien à des élèves de seconde (pareil pour le coefficient directeur..)je souhaite donc toujours dans vos reponses avoir les explications d'"en bas" et celles d'en"haut"..si je puis dire!
ta phrase d'ailleur m'est toute à fait sybilline! c'est une phrase de connaisseur tout de même.
sandro le 07/01/2012 à 16:09
Citation
linkakro peux-tu m'expliquer :
"Il manque une remise à zéro de la variable I au début du programme car "I=0" est un test et non une affection. 0->I ou bien EffVar I"

Ce qu'il veut dire, c'est que, en TI-Basic (le langage de programmation qu'on voit au lycée si on a une Texas Instrument de type TI82(stats(.fr)), TI83(+(.frr)), TI84+(SE,pocket) ), contrairement à d'autres langage de programmation, le symbôle "=" cert exclusivement pour des tests (résultat 0:faux ; 1:vrai) : ton I=0 ,'a donc aucun sens : la calculatrice calcule si I vaut 0 ou pas, mais tu ne te sert pas tu résultat.

Ce qu'il te faut, c'est utiliser la flèche (qui, sur le forum, est généralement symbôlisée par "->" ou par " -> ") qui ce trouve juste audessus de la touche [On] et qui signifie de stoquer ce qu'il y à a gauche dans la variable qu'il y a à droite :
Code
0 -> I

signifie :
Code
Affecter à I la valeur 0


Sandro

PS : s'il s'agit de donner du soutiens à des secondes, tu peut oublier la méthode du nombre dérivé (hors programme), ainsi que le "EffVar I" qui est une notient plus avancée et qui ne sert que à libérer de la place ou a optimiser des programmes.
linkakro le 08/01/2012 à 18:27
Dans une TI, le symbole "=" effectue un test et "->" stocke la valeur de gauche dans la variable de droite.
Dans pratiquement tout autre language (C par exemple) ":=" stocke la valeur de droite dans la variable de gauche et "==" effectue un test.
Donc dans ton programme "I=0" n'affecte pas I à 0 mais effectue un test.
(affecter I à 0 signifie stocker 0 dans la variable I)

En conclusion remplace dans ton programme "I=0" par "0->I".

Tu peux aussi écrire "EffVar I" à la place de "0->I".
"EffVar I" libère de la mémoire en plus de remettre I à zéro.
(EffVar a un autre avantage plus compliqué qui ne concerne pas ton programme, d'où la négation de sandro à propos de EffVar.)
sandro le 08/01/2012 à 19:47
Pour effvar, c'est surtout que, même parmis les profs, je ne suis pas sur qu'il y ai quelcun au lycée a part 1 ou 2 qui programment un petit peu qui n'en ai seulement entendu parler, donc pour un soutient à des secondes, j'en parles même pas. (enfin, elle est pas bien compliquée à utiliser, mais ne sert à rien tant que l'on ne cherche pas à optimiser ou a faire des programmes vraiment très pointus)
monsalbert le 10/01/2012 à 20:09
Je pense que celà marche .On trouve I=101 ( pour N=100 c.à.d. pas= (B-A)/100).
Pouquoi 101 et pas 100? quel est le detail du For(X, A,B,P) dans le comptage par rapport à I? I valant 0 au depart ?
sandro le 10/01/2012 à 20:35
tout simplement car, si on numéraute les points de 0 à 100, il y en a 101.


Sinon, la commande for n'affecte pas ici la variable I, par contre elle est augmentée de 1 à chaque fois qu'on "fait un tour dans" (une itération de) la boucle.

Example :
Code
0 -> I
For(A,0,5,1
I+1 -> A
Disp A,I
End


Te donnera

première execution de la boucle (car 0 inférieur ou égal à 5)
0 (A)
1 (I)

2nde execution de la boucle (car 1 inférieur ou égal à 5)
1 (A)
2 (I)

3ème execution de la boucle (car 2 inférieur ou égal à 5)
2 (A)
3 (I)

4ème execution de la boucle (car 3 inférieur ou égal à 5)
3 (A)
4 (I)

5ème execution de la boucle (car 4 inférieur ou égal à 5)
4 (A)
5 (I)

6ème execution de la boucle (car 5 inférieur ou égal à 5)
5 (A)
6 (I)

Pas de 7ème car 6>5

Sandro
monsaibert le 12/01/2012 à 19:54
merci Sandro,indiscutable.merci.