1

J'ai un expression type 3*(-1)^floor(n) et je voudrais afficher 3*(-1)^n dans l'écran IO
Je veux remplacer floor(n) par n et je suis obliger d'utiliser les parties entières dans mon calucul.
quelqu'un a t-il une idée?

Sinon, quelqu'un pourrait il me dire comment afficher dans l'écran I/O et sur la même ligne
"la valeur de n est :" valeur de n

Merci d'avance.

Toutes ces questions parceque j'essaye de faire un programme faisant l'approximation d'une fonction periodique par le developpement en séries de fourrier.
En effet, je n'ai pas trouvé de programme complet la dessus (aucun ne definit la periode par plus de 3 fonctions et ils ne donnent pas les valeurs exactes de bn et an ...)
si là je viens de dire une connerie dite le moi scotch

Saphari

2

pour la deuxoeme question : pause "la valeur de n est :"&string(n)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

3

pour ton 1er probleme : et si faisais ca en 2 temps ?
floor(n)->n2
3*(-1)^n2

apres pour que ca soit plus joli tu peux inverser les noms et tout (ou utiliser la meme variable)
(je ne guarantis pas que ca fonctionne)

enfin pour etre bien sur du probleme : tu fais du calcul symbolique ? (n n'a pas de valeur)
avatar

4

"la valeur de n est :"&string(n) ça, ca marche wink

"floor(n)->n2 " ça ne marche pas car la ti préfere afficher "floor(n)" qui est plus précis que n2.

A mon avis, après reflexion,
il y aurait peut être moyen d'en faire un chaine de caractère,
de faire identifier chaque caractère et situer sa position dans la chaine,
et quand les valeurs retournées sont un "f" puis un "l" puis un "o".... "oor(n)",
les faire remplacer par "n"
puis convertir en expression.

Ca me parait bien galère pour ce que ca apporte.

J'ai uploader mon programme ici (Si ca intéresse) :

http://databob.free.fr/Volume/files/basic.fourrier.89p

Il fait : permet de casser sa période en autant de fonctions qu'on veut,calcul de an et bn, determine les équations de chaque harmonique jusqu'au rang qu'on veut, calculer le taux de distorsion harmonique et la valeur efficace. .
j'ai l'intention de le mettre sur ti-calc.org dans quelques temps.

5

Utilise plutot approx(floor(n))

6

Ca ne change rien tsss

7

pause "la valeur de n est :"&string(approx(n)) ??
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

8

J'ai un expression type 3*(-1)^floor(n) et je voudrais afficher 3*(-1)^n dans l'écran IO

je parlais de ce problème là: Je veux remplacer floor(n) par n dans une expression

L'autre problème est résolu en utilisant la syntaxe ci dessus.

9

10

pour virer le floor(nà, pour moi, je ne vois que la solution de passer par une chaîne.
jette un coup d'oeil à la fonction inString() qui te permettra de retrouver le mot floor( sans effort.
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

11

ou tu fais ça à la barbare^^

mod(n,10)+when(n-mod(n,10)>4,1,0)->n
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

12

Ta technique me donne une "circular définition" ou parfois une autre érreur
Je vous remercie. La technique de Link me semble plus longue mais plus fiable.

13

Je pense qu'il n'y a pas d'autres solutions.
Tu peux faire :
(ex est ton expression)
string(ex)->ex
inString(ex,"floor(n)")->pos
expr(left(ex,pos-1)&"n"&right(ex,din(ex)-pos-7)->ex
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici

14

Circular définition, c pasque tu n'as pas donné de valeur à n avant d'éxécuter la ligne.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

15

C'est justement ça le truc, je ne veux pas donner de valeur à n.

16

Ok, j'av pas compris...

Donc passes par la fonction instring(). Aprés, tu recole la chaine avec left() et la concaténation.
En gros, tu devrais avoir un truc du genre :
string(3*(-1)^floor(n))->s
instring(s,"floor("))->x
left(s,x-1)&"n"->s
pause s
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

17

sinon y'a peut etre moyen avec la fonction part uitlisée dans une fonction recursive pour virer tous les floor de ton expression, mais je ne vois absolument pas ce qui t'empeche d'ecrire directement 3*(-1)^n dans ton programme ??
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

18

Je crois que ça dépend de son mode de "complex format"
Selon le mode, ça peut être refusé, je crois bien...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

19

En fait La ti calcule beaucoup de cos(n*pi) ou d'autre expressions similaires. En lui indiquant que n est un entier, elle va beaucoup plus loin dans le calcul et mon programme devient alors utile.

par exemple:

cos(n*pi)=(-1)^n a condition que n soit un entier. (idem pour les sinus : sin(n*pi)=0 si n est un entier)

20

De toute façon je viens de réaliser qu'il suffit de remplcer n par @n1 pour faire comprendre à la ti qu'il s'agit d'un entier! trifus.
Ceci dit j'ai quand même appris à me servir de la fonction instring.
Merci de vos réponses.