π
<-

Problème Programmation

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

Problème Programmation

Unread postby corentin legros » 16 Dec 2012, 17:13

Bonjour à tous,

Je débute actuellement sur Nspire CAS.

Je tente actuellement de créer un programme qui m'effectue les calculs vectorielle pour la mécanique torsorielle.

J'ai effectué ce meme programme sur une TI-83, j'ai donc tenté de faire un équivalent sur Nspire.

Voila à quoi j'arrive :
Code: Select all
Define vectorielle(a)=
Prgm
:If a=0 Then
:Disp"Nouveau Point"
:Request "X Nouveau Point =",xa
:Request "Y Nouveau Point =",ya
:Request "Z Nouveau Point =",za
:ClrErr
:Disp "Ancien Point"
:Request "X Ancien Point",xb
:Request "Y Ancien Point",yb
:Request "Z Ancien Point",zb
:ClrErr
:xd:=xa-xb
:yd:=ya-yb
:zd:=za-zb
:EndIf
:If a=1 Then
:Disp "Vecteur directeur"
:Request "Xdir",xd
:Request "Ydir",yd
:Request "Zdir" ,zd
:ClrErr
:EndIf
:Disp "Force"
:Request "X Force",xf
:Request "Y Force",yf
:Request "Z Force",zf
:ClrErr
:l:=yd*zf-yf*zd
:m:=zd*xf-zf*xd
:n:=xd*yf-yd*xf
:Disp "Vecteur Direction"
:Disp "Xdir=",xd
:Disp "Ydir=",yd
:Disp "Zdir=",zd
:Disp "Moment résultant"
:Disp "L=",l
:Disp "M=",m
:Disp "N=",n
:EndPrgm


(Le "a" que je définit au départ me sers juste à savoir de quelle façon je rentre mes variables par la suite, en fonction des données de départ)

Seul problème lorsque je lance mon programme j'ai un message d'erreur qu'il me dit qu'il y a trop d'arguments.

Je ne sais pas d'ou cela peut venir ...
Je ne suis pas sur également de l'utilisation des fonction REQUEST.

Pourriez vous m'éclairer sur ma programmation ?

Cordialement
User avatar
corentin legros
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 26.7%
 
Posts: 5
Joined: 16 Dec 2012, 17:03
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Problème Programmation

Unread postby Levak » 16 Dec 2012, 17:16

Salut,

1) Il faut que tu appelles ton programme avec vectorielle(0) ou vectorielle(1).
Si tu penses que l'assertion précédente est d'une évidence même, je t'invite à faire un Ctrl+B sur ton programme, et à recommencer.

2) ClrErr ne fait pas ce que tu penses. Je t'invite à regarder du côté de Request "var", var, 0

3) ElseIf sert à quelque chose

4) Local est magique aussi
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: Problème Programmation

Unread postby corentin legros » 16 Dec 2012, 18:39

Merci Levak pour ton aide.

Merci pour le coup de pouce pour le elseif.

Pour les Clrerr je pensai que c'était une toute autre fonction.

J'ai déclarer mes variables en local à chaque début de chaque partie mais toujours ce problème d'argument. J'ai également essayer de toute les déclarer en debut de programme mais j'ai également eu un problème.

Et depuis le début j'appelle mon programme avec vectorielle(0) ou (1).

Code: Select all
Define vectorielle(a)=
Prgm
:If a=0 Then
:Local xa,ya,za,xb,yb,zb,xd,yd,zd
:Request "X Nouveau Point =",xa
:Request "Y Nouveau Point =",ya
:Request "Z Nouveau Point =",za
:Request "X Ancien Point",xb
:Request "Y Ancien Point",yb
:Request "Z Ancien Point",zb
:xd:=xa-xb
:yd:=ya-yb
:zd:=za-zb
:Elseif a=1 Then
:Local xd,yd,zd
:Request "Xdir",xd
:Request "Ydir",yd
:Request "Zdir" ,zd
:EndIf
:Local xf,yf,zf,l,m,n
:Request "X Force",xf
:Request "Y Force",yf
:Request "Z Force",zf
:l:=yd*zf-yf*zd
:m:=zd*xf-zf*xd
:n:=xd*yf-yd*xf
:Disp "Vecteur Direction"
:Disp "Xdir",xd
:Disp "Ydir",yd
:Disp "Zdir",zd
:Disp "Moment résultant"
:Disp "L=",l
:Disp "M=",m
:Disp "N=",n
:EndPrgm


Il n'y a t'il pas un nombre de variable limité par programme ?
User avatar
corentin legros
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 26.7%
 
Posts: 5
Joined: 16 Dec 2012, 17:03
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Problème Programmation

Unread postby Levak » 16 Dec 2012, 18:41

Et le Ctrl+B ?

edit : le local est plus pratique au début du programme, mais c'est pas le point ici.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: Problème Programmation

Unread postby corentin legros » 16 Dec 2012, 18:59

Merci beaucoup le ctrl+B a résolu le problème

Un problème de compilation ?

Un grand merci à toi Levak :D
User avatar
corentin legros
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 26.7%
 
Posts: 5
Joined: 16 Dec 2012, 17:03
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Problème Programmation

Unread postby Levak » 16 Dec 2012, 19:04

corentin legros wrote:Un problème de compilation ?

Le TI-Basic n'est pas compilé.
Ctrl+B exécute simplement ce que tu as tapé dans l'éditeur, ce qui revient à affecter vectorielle à la définition d'un programme (Define vectorielle(a) = Prgm ... EndPrgm). Si tu ne fais pas ça c'est comme si tu tapais a:=1 et que tu effaçais la ligne sans la lancer.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: Problème Programmation

Unread postby corentin legros » 16 Dec 2012, 19:05

Je voudrai améliorer mon programme, pour que celui-ci effectue des calcul formel.

Je m'explique :
J'insere une variable genre "x" à la place d'un chiffre et qu'il me le resorte dans les resultat ?

Avez vous une idée pour effectuer ceci ?
User avatar
corentin legros
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 26.7%
 
Posts: 5
Joined: 16 Dec 2012, 17:03
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Problème Programmation

Unread postby Levak » 16 Dec 2012, 19:06

Si tu as une TI-Nspire CAS, tu peux très bien mettre x (non défini) dans les Request.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: Problème Programmation

Unread postby corentin legros » 16 Dec 2012, 19:09

J'ai tenté de remplacer une des valeur par un x, mais il m'indique que la variable n'est pas défini.

Meme si j'ai la CAS il faut que j'effectue des modif dans le programme non ?

EDIT : J'ai réussi à faire un calcul avec des inconnu

Mais depuis pas moyen il me sors toujours le problème de variable non défini

EDIT 2 : Sa fonctionne avec le a=0 (en écrivant les points) mais avec le a=1 (mode vecteur), sa ne marche pas

EDIT 3 : Problème résolu, je déclarer mes variables dans le premier if mais pas dans le elseif, je les ai donc déclarées avant de rentrer dans la boucle du if et là ça marche nickel.

Un grand merci !

Je joins mon programme en version finale si quelqu'un veut le réutiliser :

Code: Select all
Define vectoriel()=
Prgm
:Local a
:Request "Mode Points (0) - Mode Vecteur (1)",a
:Local xa,ya,za,xb,yb,zb,xd,yd,zd
:If a=0 Then
:Request "X Nouveau Point =",xa
:Request "Y Nouveau Point =",ya
:Request "Z Nouveau Point =",za
:Request "X Ancien Point",xb
:Request "Y Ancien Point",yb
:Request "Z Ancien Point",zb
:xd:=xa-xb
:yd:=ya-yb
:zd:=za-zb
:ElseIf a=1 Then
:Request "Xdir",xd
:Request "Ydir",yd
:Request "Zdir",zd
:EndIf
:Local xf,yf,zf,l,m,n
:Request "X Force",xf
:Request "Y Force",yf
:Request "Z Force",zf
:l:=yd*zf-yf*zd
:m:=zd*xf-zf*xd
:n:=xd*yf-yd*xf
:Disp "Vecteur Direction"
:Disp "Xdir",xd
:Disp "Ydir",yd
:Disp "Zdir",zd
:Disp "Moment résultant"
:Disp "L=",l
:Disp "M=",m
:Disp "N=",n
:EndPrgm
User avatar
corentin legros
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 26.7%
 
Posts: 5
Joined: 16 Dec 2012, 17:03
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Problème Programmation

Unread postby Bisam » 19 Dec 2012, 21:32

En fait, en utilisant les listes, tu peux simplifier énormément ton programme.
Voici ce que ça peut donner :
Code: Select all
Define vectoriel()=
Prgm
:Local mode, pta, ptb, vd, vf, mom
:Request "Mode Points (0) - Mode Vecteur (1)",mode
:If mode=0 Then
:  Request "Nouveau Point",pta
:  Request "Ancien Point",ptb
:  vd:=pta-ptb
:ElseIf mode=1 Then
:  Request "Vecteur direction",vd
:EndIf
:Request "Vecteur Force",vf
:mom:=crossp(vd,vf)
:Disp "Vecteur Direction",vd,"Moment résultant",mom
:EndPrgm

Pour l'utiliser, il suffit de rentrer des listes (contenant les coordonnées des point ou des vecteurs concernés) à la place des coordonnées 1 par 1.
En fait, ta calculatrice SAIT calculer des produits vectoriels !!
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile


Return to Problèmes divers / Aide débutants

Who is online

Users browsing this forum: ClaudeBot [spider] and 10 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1624 utilisateurs:
>1550 invités
>66 membres
>8 robots
Record simultané (sur 6 mois):
7582 utilisateurs (le 25/06/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)