Bonjour,
j'ai réalisé un algorithme avec Algobox, le voici :
1 VARIABLES
2 n EST_DU_TYPE NOMBRE
3 U EST_DU_TYPE LISTE
4 i EST_DU_TYPE NOMBRE
5 a EST_DU_TYPE NOMBRE
6 DEBUT_ALGORITHME
7 LIRE a
8 LIRE n
9 U[0] PREND_LA_VALEUR a
10 POUR i ALLANT_DE 0 A n-1
11 DEBUT_POUR
12 U[i+1] PREND_LA_VALEUR 2*U[i]-i-2011
13 FIN_POUR
14 AFFICHER U[n]
15 FIN_ALGORITHME
Je dois maintenant le transcrire en TI-Basic pour le mettre sur ma calculette TI-89 Titanium, mais mes connaissances en TI-Basic sont quasi-nulles. Voici ce que j'ai commencé à faire :
: algo()
: Prgm
: Local n,U,i,a
: Input a
: Input n
: U[0]->a
: For i,0,n-1,1
: U[i+1]->U[i]-i-2011
: EndFor
: Disp U[n]
: EndPrgm
Mais ça ne marche, j'ai un problème de syntaxe. Pouvez-vous m'aider ?
Merci d'avance.
Salut,
Essai de remplacer tes majuscules par des minuscules (je sais pas si la 89 supporte la dualité majuscules/minuscules)
La première valeur de la liste est 1 et non 0 (pfff, ça change pour chaque langage )
Il faut que tu définisse u->{} (avec une liste 'vide')
et ça devrait marcher...
Merci de ta réponse. Tout d'abord j'avais fais une erreur (l'assignation fonctionne dans l'autre sens) :
: algo()
: Prgm
: Local n,u,i,a
: Input a
: Input n
: a->u[0]
: For i,0,n-1,1
: 2*u[i]-i-2011->u[i+1]
: EndFor
: Disp u[n]
: EndPrgm
Mais si je commence la suite par u1 (u1=a), cela va tout me changer au niveau des résultats. Comment faire ?
Et je n'ai pas très bien compris :
-Créer une liste est assez "spéciale", avec le ti basic, il faut faire une simili déclaration de variable pour les listes et les matrices. Soit tu créer une liste vide avec les crochets soit tu met directement ta variable dedans {a}
-Le premier élément de la liste est numéroté 1 et non 0 ; ex: L={1;2;3;4} L[0]=ERROR L[1]=1, etc
: algo()
: Prgm
: Local n,u,i,a
: Input a
: Input n
: {a}->u
: For i,0,n-1,1
: 2*u[i+1]-i-2011->u[i+2]
: EndFor
: Disp u[n+1]
: EndPrgm
Il faut donc rajouter 1 à toutes tes références de listes...
Merci ça marche !!
Mais je n'
: algo()
: Prgm
: Local n,u,i,a
: Input a
: Input n
: {a}->u
: For i,0,n-1,1
: 2*u[i+1]-i-2011->u[i+2]
: EndFor
: Disp u[n+1]
: EndPrgm
Oops, j'ai appuyé sur "envoi en cours" sans le vouloir...
Donc je disais :
Le programme marche nickel, merci beaucoup !!
Mais j'ai pas trop compris la ligne en gras ({a}->u) : pourquoi nous ne mettons pas {a}->u[1]. Et peux-tu aussi m'expliquer le principe de la boucle "For ... EndFor" (parce que j'avais compris mais on a un peu modifié) ?
: algo()
: Prgm
: Local n,u,i,a
: Input a
: Input n
: {a}->u
: For i,0,n-1,1
: 2*u[i+1]-i-2011->u[i+2]
: EndFor
: Disp u[n+1]
: EndPrgm
Et j'aimerais apporté quelques modifications dans le programme :
- je voudrais écrire "valeur de a", "valeur de n" au début et "valeur de un" à la fin (par exemple si n=2 : "valeur de u2")
- j'aimerais que, dès que le programme se termine, je puisse le relancer à nouveau, en appuyant sur une touche, par exemple (et pas le relancer à partir du menu "var-link")
- je voudrais qu'à chaque nouvelle session, l'écran s'efface ; c'est-à-dire que dès que je relance le programme, les résultats précédents disparaissent (je crois que c'est avec "ClrHome" mais je ne suis pas sur).
Si tu fais a->u[1], la calculatrice t'enverra balader car elle ne sait pas que u est liste, par défaut, celle ci est une variable dans lequel on ne peut mettre qu'un chiffre ou du texte. Essaie de le taper directement dans les calculs...
Autrement dit, pour pouvoir ajouter une valeur à une liste avec son numéro, il faut déjà que cette liste soit une liste !!!
Il faut insérer un Lbl (label au début) puis à la fin demander 1 ou 0 pour revenir à Lbl x avec la commande Goto
Lbl ma
...
Disp "recommencer ? 0/1 "
Input a
If a=1
Then
Goto ma
EndIf
je suis pas sur de la syntaxe du if
Pour relancer le programme à nouveau, on peut aussi faire soit :
: Prgm
: Lbl start
: ...
: ...
: Goto start
: EndPrgm
soit ça :
: Prgm
: Loop
: ...
: ...
: EndLoop
: EndPrgm
Pour le texte, ça marche ! Et pour ClrHome, ça ne fonctionne pas donc je vais voir sur le manuel pour voir comment faire...
En tout cas, merci beaucoup pour ton aide !!
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :