π
<-

Modification d'un argument à la sortie d'une fonction

Programmation et implémentation d'algorithmes.

Modification d'un argument à la sortie d'une fonction

Unread postby claiclai » 01 Mar 2015, 17:01

Bonjour,

J'aurais une question de programmation à poser (sur une TI89 Titanum) en TI Basic de manière générale.
Est-il possible d'appeler une fonction avec un argument qui sera modifié à
la sortie de l'appel à cette fonction (l'équivalent du passage par adresse
en langage C) ?

Exemple :

_________________________________________________________
main()
Func
Local Arg, mm

{1,3,4} -> mm
1-> Arg
Foo(Arg, mm)
%%%%: j'aurais voulu qu'ici, à la sortie de l'appel à Foo, mon argument
Arg ait la valeur 2 et mm soit égal à {2,3,4}
EndFunc
_________________________________________________________
Foo(A, m)
Func
A+1 -> A %% (mais cela ne modifiera pas A en sortie de Foo)
A -> m[1] %% ( mais cela ne modifiera pas mm en sortie de Foo)
EndFunc
_________________________________________________________

Est-il possible de faire cela ?
Merci bien !
User avatar
claiclai
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 66.7%
 
Posts: 6
Joined: 01 Mar 2015, 16:54
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Modification d'un argument à la sortie d'une fonction

Unread postby critor » 01 Mar 2015, 17:09

Pas directement, mais on peut arranger ça facilement dans ton cas si il s'agit de modifier 1 seul argument.

_________________________________________________________
main()
Func
Local Arg, mm

{1,3,4} -> mm
1-> Arg
Arg = Foo(Arg, mm)
EndFunc
_________________________________________________________
Foo(A, m)
Func
A+1 -> A
A -> m[1]
return A
EndFunc
_________________________________________________________
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.2%
 
Posts: 42383
Images: 17086
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Modification d'un argument à la sortie d'une fonction

Unread postby Bisam » 01 Mar 2015, 17:47

On ne peut pas agir par effet de bord avec le TI Basic, tout simplement parce que le passage par adresse n'existe pas ! La calculette ne permet que des passages d'argument par valeurs (ce qui peut être parfois très lourd quand il s'agit de passer de grosses matrices).

On peut cependant ruser comme l'a fait Critor, ou encore en utilisant l'indirection (qui permet d'agir sur une variable dont on connaît le nom grâce à une chaîne de caractères contenant ce nom).
Cependant, dans ce deuxième cas, je pense qu'il faudra que les fonctions utilisant l'indirection dans le but de modifier des valeurs soient définies à l'intérieur de la fonction ou du programme définissant les variables devant être modifiées. Si ce n'est pas le cas, l'environnement local de la fonction ne connaîtra pas la variable... et fera donc comme si elle était formelle, ce qui ne modifiera rien du tout dans la fonction appelante.
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

Re: Modification d'un argument à la sortie d'une fonction

Unread postby claiclai » 01 Mar 2015, 21:35

Merci pour cette réponse.
As-tu quelques pistes pour que je me documente sur l'indirection en TI Basic ?
User avatar
claiclai
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 66.7%
 
Posts: 6
Joined: 01 Mar 2015, 16:54
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Modification d'un argument à la sortie d'une fonction

Unread postby Bisam » 01 Mar 2015, 22:00

Oui : le manuel (page 988).

Tu trouveras aussi des exemples plus détaillés dans les manuels plus anciens comme celui-ci.
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

Re: Modification d'un argument à la sortie d'une fonction

Unread postby claiclai » 01 Mar 2015, 22:13

Merci !
User avatar
claiclai
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 66.7%
 
Posts: 6
Joined: 01 Mar 2015, 16:54
Gender: Not specified
Calculator(s):
MyCalcs profile


Return to Programmation

Who is online

Users browsing this forum: ClaudeBot [spider] and 4 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.
1151 utilisateurs:
>1140 invités
>5 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
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)