<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#330000">
Oups, désolé.<br>
Global ne marche effectivement pas avec l'optimisation<br>
<br>
<br>
On 04/06/2012 14:27, Adrien Vogt-Schilb wrote:
<blockquote cite="mid:4FCCA9CA.4070804@centre-cired.fr" type="cite">
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
Bonjour<br>
<br>
global est votre ami:<br>
<br>
function update_a()<br>
global a<br>
a =a +1<br>
endfunction<br>
<br>
<br>
global a<br>
<br>
a= 0<br>
update_a()<br>
a<br>
update_a();<br>
update_a();<br>
update_a();<br>
update_a();<br>
<br>
a<br>
<br>
<br>
<br>
à lire:<br>
<br>
help global<br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://wiki.scilab.org/howto/global%20and%20local%20variables">http://wiki.scilab.org/howto/global%20and%20local%20variables</a><br>
<br>
On 01/06/2012 22:56, Binoyte wrote:
<blockquote
cite="mid:CAJO2YB5KMAAkxYLz6-MBELf3ALHPMpEPjF4-jtSSMgeORPiZBA@mail.gmail.com"
type="cite">Bonjour,<br>
<br>
je voudrais savoir si il est possible de passer les arguments
par référence a une fonction écrite en Scilab. En gros je
cherche une analogie à l'écriture C++ suivante : <br>
<br>
<span style="font-family:courier
new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">void
ma_fonction(struct & parametre) </span><br
style="font-family:courier
new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">
<span style="font-family:courier
new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)"><span
style=""></span>{</span><br style="font-family:courier
new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">
<br style="font-family:courier
new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">
<span style="font-family:courier
new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">
parametre.propriete = ....;</span><br
style="font-family:courier
new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">
<br style="font-family:courier
new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">
<span style="font-family:courier
new,monospace;background-color:rgb(255,255,255);color:rgb(0,0,153)">}</span><br
style="color:rgb(0,0,153);background-color:rgb(255,255,255)">
<br>
<br>
En Scilab je ne trouve pas trop d'autres solutions que d'écrire
: <br>
<br>
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)">function this =
ma_fonction (parametre)</span><br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)"> this = parametre;</span><br
style="font-family:courier new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)"> this.propriete =
.....</span><br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)">endfunction</span><br>
<br>
<br>
Le problème c'est qu'avec la version Scilab on fait d'abord une
copie de la variable, ça prend du temps et beaucoup de
ressources. D'autant qu'ensuite, dans mon programme, les
fonctions sont appelées de nombreuses fois vue que je lance par
la suite des fonctions d’optimisation. J'utilise des structures
qui décrivent les composants mécaniques d'un système.
L’optimisation peut faire varier le nombre de composants. Dans
ce cas je ne pense pas pouvoir utiliser les variables globales,
en tout cas, pas selon l'exemple ci- après :<br>
<br>
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)">function ma_fonction
(parametre)</span><br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)"> </span><br
style="font-family:courier new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)"> global parametre;</span><br
style="font-family:courier new,monospace;color:rgb(51,51,153)">
<br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)"> parametre.propriete =
.....</span><br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)">endfunction</span><br
style="font-family:courier new,monospace;color:rgb(51,51,153)">
<br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)">//************</span><br
style="font-family:courier new,monospace;color:rgb(51,51,153)">
<br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)">global Monsieur;</span><br
style="font-family:courier new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)">Monsieur.Age = 31;</span><br
style="font-family:courier new,monospace;color:rgb(51,51,153)">
<br style="font-family:courier
new,monospace;color:rgb(51,51,153)">
<span style="font-family:courier
new,monospace;color:rgb(51,51,153)">ma_fonction(Monsieur);</span><br>
<br>
Je vous remercie par avance de vos conseils.<br>
<br>
Cordialement,<br>
<br>
</blockquote>
<br>
</blockquote>
<br>
</body>
</html>