Page 1 of 2

Aide programme

Unread postPosted: 09 Dec 2012, 17:33
by Loique
Bonsoir, j'ai acheté une TI-Nspire CX CAS pour ma rentrée en seconde, mais je n'arrive pas a faire tourner le programme suivant il faut que je comprenne comment le faire pour Lundi ;

Dans le manuel :

Variables :
x,a,b,y, quatres nombres réels.

Début
Saisir x.
Affecter à a la valeur de x+2
Affecter à b la valeur de 1/(a^2+1)
Affecter à y la valeur de a+1/b
Afficher y
Fin

Sur la calculatrice :

Code: Select all
Define LibPub algo(x,a,b,y)=
Prgm
:Define x
:a→x+2
:b→((1)/(a^(2)+1))
:y→a+((1)/(b))
:Disp x
:EndPrgm


Et j'ai aussi un autre "type" d'algorithme à connaitre

Dans le manuel :

Variables :
x,a,b,y, quatres nombres réels.

Début
Saisir x.
Affecter à a la valeur de 2x
Si a>=2
Alors affecter à b la valeur de (a+2)^2
Sinon affecter à b la valeur de a^2+2
Fin Si
Affecter à y la valeur de a+b
Afficher y
Fin

Pour ma calculatrice : à voir

Donc voici ce que je doit savoir faire tourner mais j'y arrive pas. Et aussi est-il possible de mettre un texte à la fin comme "résultat"? Sur algobox j'y arrive mais pas sur ma calculatrice. Merci beaucoup de votre aide.
Loique

Re: Aide programme

Unread postPosted: 09 Dec 2012, 17:42
by Excale
Pour le premier:
Define LibPub algo(x,a,b,y)=

Ce qu'il y a a mettre entre parenthèses n'est pas les variables utilisées, mais les variables d'entrées. Ici, c'est x.
En gros, au lieu de demander x à l'utilisateur dans le programme, tu lances le programme en faisant algo(4) par exemple.
(Et de Define sert à complètement autre chose)
Si tu veux que tes variables n'aient un sens qu'à l’intérieur (c'est à dire qu'elles sont "supprimées" à la fin du programme) de ton programme (ce que je t'encourage à faire), il faut utiliser local (et les variables d'entrée sont locales par défaut, pas besoin de les remettre).
D'autre part, tu utilises "→" à l'envers. Pour que ça ressemble plus à ton algobox, je te conseille d'utiliser := .
Dernier détail, selon l'algo c'est Disp y et non Disp x.

Ce qui donne:
Code: Select all
Define LibPub algo(x)=
Prgm
Local a,b,y
a:=x+2
b:=((1)/(a^(2)+1))
y:=a+((1)/(b))
Disp y
EndPrgm


Pour le deuxième, je te laisse tenter de faire quelque chose et on verra après si ça ne marche pas :).

PS: N'oublie pas d'enregistrer ton programme avec ctrl+B, ce qui n'est pas pareil que d'enregistrer le classeur (ctrl+S).

PS²: Pour mettre ton "Résultat", il suffit d'utiliser une chaine de caractère, donc du texte entre "".
Exemple:
Code: Select all
Disp "Résultat: ",y

Re: Aide programme

Unread postPosted: 09 Dec 2012, 17:45
by Loique
Merci je vais tenter je vous tien au courant...
J'oubliait ça veut dire quoi les deux points avant local, a, etc?
Merci

Re: Aide programme

Unread postPosted: 09 Dec 2012, 17:57
by Excale
Les : servent à séparer les instructions. En pratique, dans l'éditeur de la calculatrice, un retour à la ligne marche tout aussi bien. Mais quand tu fais un copier coller, ben il garde les : .

Donc en pratique, si tu mets des retours à la ligne, tu peux les enlever.

PS: Par contre, := est une entité à part entière. := veux dire "affecter", et a besoin de son : . :)

Re: Aide programme

Unread postPosted: 09 Dec 2012, 18:02
by Loique
Merci Excale, j'ai fait :

Code: Select all
Define LibPub algoii(x)=
Prgm
:Local a,b,y
:a:=2x
:If a>=2 Then
:b:=(a+2)²

:Else
:a²+2

:EndIf
:Disp "y:", y
:EndPrgm



Mais le me met :

Manque d’une instruction de début ou de fin de
bloc.

Et j'ai des doutes pour l'écriture de >=.

Re: Aide programme

Unread postPosted: 09 Dec 2012, 18:05
by Excale
Il faut effectivement taper ≥ et non >=.
(Accessible via :nsct: :nseq: ).

Et aussi, utilise ^2 et non ², sinon l'éditeur va râler.

Re: Aide programme

Unread postPosted: 09 Dec 2012, 18:11
by Loique
Il me met la même chose :

Manque d’une instruction de début ou de fin de
bloc.

Sinon pour ^2 il le met automatiquement en ²...

Re: Aide programme

Unread postPosted: 09 Dec 2012, 18:14
by Excale
Bon, je viens de tester. En fait l'éditeur corrige tout seul le >= en ≥, et il plante sur le ².
C'est normal qu'il t'affiche un 2 en exposant, mais il faut bien taper ^ puis 2.

Re: Aide programme

Unread postPosted: 09 Dec 2012, 18:20
by Loique
Code: Select all
Define LibPub algoii(x)=
Prgm
:Local a,b,y
:a:=2*x
:If a≥2 Then
:b:=(a+2)^(2)
:
:Else
:b:=a^(2)+2
:
:EndIf
:Disp "y:",y
:EndPrgm


Voilà, j'ai fait comme ceci et cette fois il m'écrit :

La variable n’est pas définie

Aucune valeur n’a été associée à la variable.
Utilisez l’une des commandes suivantes :
sto →
:=
Define
pour assigner des valeurs aux variables.

Mais elles le sont toutes.

Re: Aide programme

Unread postPosted: 09 Dec 2012, 18:23
by Excale
Ah? "y" est assigné quand? :)

Et euh sinon, je vois dans ton profil que tu as une CX CAS, ce serait pas plutôt une CX tout court?