Page 1 of 1

Programme calcul coordonnées entières hyperbole

Unread postPosted: 20 Apr 2014, 00:37
by CX-CAS
Bonjour, je débute dans la programmation en Lua sur la TI-Nspire. J'ai voulu effectuer un programme simple qui permette de déterminer des coordonnées entières (et positives) de l'hyperbole d'équation 13y² - x² = 1.
Le but est de les déterminer pour y<n où n est un entier non nul donné.

Pour y=0, ça ne marche pas donc on commence à y=1 et il suffit alors de vérifier pour quelles valeurs entières de y ( supérieur ou égal à1), x=sqrt(13y²-1) est entier.

Voilà mon programme :

Code: Select all
Define hyperbole(n)
Prgm
local y
For y,1,n
  If sqrt(13*y²-1) = floor ( sqrt(13*y²-1) ) Then Disp ( sqrt(13*y²-1) , y)
  End If
End For
End Prgm


Il y a une erreur de syntaxe mais je n'arrive pas à la voir. Ca doit probablement être évident mais j'y connais pas grand chose..

J'ai aussi une question plus générale : peut-on créer des programmes sans argument?

Merci d'avance à ceux qui pourront m'apporter de l'aide.

Re: Programme calcul coordonnées entières hyperbole

Unread postPosted: 20 Apr 2014, 01:15
by Levak
Bonjour,

Ce que tu nous montres comme code n'est pas du Lua, mais du Nspire-Basic.

Je déplace.

Pour répondre à ta question maintenant, je vois effectivement des erreurs de syntaxe, mais s'agit-il d'erreurs de recopie ?
Then Disp => Then : Disp (ou un retour à la ligne)
End If => EndIf
End For => EndFor
End Prgm => EndPrgm

Re: Programme calcul coordonnées entières hyperbole

Unread postPosted: 20 Apr 2014, 12:49
by CX-CAS
Ah je fais même pas la différence entre TI-Basic et Lua^^, désolé.

Merci pour ta réponse rapide : il manquait juste les deux points après le Then. Il faut toujours les deux points après Then ou c'est juste quand il y a Disp qui suit?

Et pour ma question du post précédent : est-ce qu'on peut créer des programmes sans argument?

Re: Programme calcul coordonnées entières hyperbole

Unread postPosted: 20 Apr 2014, 13:00
by Adriweb
En fait, les 2 points c'est pour dire que c'est la fin de l'instruction courante. C'est donc la même chose qu'aller à la ligne.

Pour créer un programme sans argument, oui, pas de problème, quand tu le crées (et quand tu l'exécutes), tu ne mets rien entre les parenthèses.
Il te faudra donc probablement créer des variables locales, et/ou demander des valeurs (si besoin) à l'utilisateur, notamment grâce à Request/RequestStr.

Re: Programme calcul coordonnées entières hyperbole

Unread postPosted: 20 Apr 2014, 14:25
by CX-CAS
D'accord pour les programmes sans arguments, merci.

Mais en ce qui concerne les 2 points j'ai pas trop compris:
Pour moi l'instruction n'est pas finie après le Then. J'aurais plutôt dit qu'elle se finit après le "Disp ..."

Re: Programme calcul coordonnées entières hyperbole

Unread postPosted: 20 Apr 2014, 15:23
by Adriweb
par instruction, c'est "Then" que je voulais dire dans ce cas.
TI a voulu qu'il y ait un retour à la ligne (ou 2 points, donc) après ce mot-clé, et... c'est comme ca, c'est tout :P
"Disp toto" serait aussi une instruction, car elle est sur sa propre ligne.

Re: Programme calcul coordonnées entières hyperbole

Unread postPosted: 20 Apr 2014, 15:56
by CX-CAS
Ah ok, j'ai compris .

Donc revenir à la ligne ou mettre les 2 points est équivalent?

Re: Programme calcul coordonnées entières hyperbole

Unread postPosted: 20 Apr 2014, 15:58
by Levak
CX-CAS wrote:Donc revenir à la ligne ou mettre les 2 points est équivalent?

Ça fait 3 posts qu'on répond à cette question :

Then Disp => Then : Disp (ou un retour à la ligne)
En fait, les 2 points c'est pour dire que c'es la fin de l'instruction courante. C'est donc la même chose qu'aller à la ligne.
un retour à la ligne (ou 2 points, donc)

Re: Programme calcul coordonnées entières hyperbole

Unread postPosted: 20 Apr 2014, 16:51
by CX-CAS
C'est juste pour être sûr. Parce que ça n'aurait pu marcher que pour ce cas particulier, j'en sais rien..je suis un débutant.

En tout cas c'est plus clair maintenant. Merci pour vos réponses