[riscosfr] Re: [riscosfr] Problème de LOCAL

  • From: Cocoa Pod <cocoa.pod@xxxxxxx>
  • To: riscosfr@xxxxxxxxxxxxx
  • Date: Fri, 6 Feb 2015 18:00:30 +0100

Oui, en sortant les tableaux des procédures, ça marche! Mais ça n’explique pas 
pourquoi la documentation décrit des tableaux déclarés en LOCAL. Ci-dessous 
l’exemple de la doc. Donc Je ne comprends pas pourquoi quand j’applique la doc, 
ça ne marche pas!
Le Basic n’est pas non plus ma tasse de thé! Je fais ça juste pour participer 
au concours que je trouve rigolo.
A+
  Miguel

When you declare a local array, the LOCAL statement must be followed by a DIM
statement to dimension the local array. For example, consider the following 
function
which, when passed two vectors of the same size, returns their scalar product:

100 DEF FNscalar_product(A(),B())
110 REM ** Both arrays must have a dimension of 1 **
120 IF DIM(A()) <> 1 OR DIM(B()) <> 1 THEN
130 PRINT "Vectors required"
140 =0
150 ENDIF
160 REM ** Both arrays must be the same size **
170 IF DIM(A(),1) <> DIM(B(),1) THEN
180 PRINT "Vectors must be of same size"
190 =0
200 ENDIF
210 REM ** Create a temporary array of the same size **
220 LOCAL C()
230 DIM C(DIM(A(),1))
240 REM ** Multiply the corresponding elements and place in C() **
250 C() = A()*B()
260 REM ** Finally sum all the elements of C() **
270 =SUM(C())


> Le Fri, Feb 06, 2015 at 01:18:15PM +0100, Cocoa Pod a écrit:
>> REM  calcul dates --------------------------------------------------
>> DEF PROCdoQunu ( Qu%(), Nd%(), cible%, RETURN delta% )
>> 
>> DIM Qn%(6,6) : Qn%() = Qu%()                                                 
>> A
>> DIM C%(6,3) : C%(4,0) = 0 : C%(4,1) = 1                                      
>> B
> 
> Il me semble qu'ici tes tableaux sont dimensionnés à chaque appel, ce qui est 
> impossible.
> N'ayant pas de machine RISC OS sous les yeux (ni la doc di basic), je peux me 
> tromper.
> Mais je pense tu devrais mettre les DIM en dehors de la procédure.
> Si je me trompe (ça fait plus de 10 ans que je ne touche pas au BASIC et j'y 
> touchais peu):
> 1/ pas taper!
> 2/ prière d'accepter mes excuses ;-)
> 
>> LOCAL nbln% : nbln% = 6
>> LOCAL diff% : diff% = 1000
>> LOCAL Z1%
>> LOCAL Z2%
>> 
>> ……  ici suite du programme qui ne pose pas de problème.
> 
> -- 
> http://www.arcangeli.org
> 
> 
> 

Cocoa Pod
http://cocoa.pod.free.fr/
http://www.aconit.org/




Other related posts: