Silmul. appel de fonctions avec un nb variable d'arguments

Répondre
Michel
Messages : 405
Enregistré le : mer. oct. 30, 2002 11:20 pm
Localisation : Voie Lactée
Contact :

Silmul. appel de fonctions avec un nb variable d'arguments

Message par Michel » ven. mai 21, 2004 5:29 pm

Bonjour !


Voici un exemple, qui montre une façon de faire :
var
param array[] anytype
endvar
proc p(a anytype) smallint
param.addlast(a)
return(1)
endproc





proc tst(a smallint)
msginfo("Nb de paramètres",a)
param.view()
param.empty()
endproc


proc tadd(a smallint) number
var
result number
nb smallint
endvar
result=0
for nb from 1 to a
result=result+param[nb]
endfor
param.empty()
return result
endproc






method pushButton(var eventInfo Event)
var
r number
endvar

tst(p(1)+p(2)+p(3))

tst(p("Azerty")+p(1000))

tst(p(123456.78 ))


r=tadd(p(3)+p(4))
msginfo("3+4", r)

r=tadd(p(10)+p(1)+p(3)+p(22)+p(200)+p(1000))
msginfo("10+1+3+22+200+1000", r)

r=tadd(p(12345.67))
msginfo("12345.67", r)

endMethod
Bon, le nombre de parenthèses est un peu péjoratif, mais le principe est déjà utilisable.

Prochaine étape : retourner un nombre variable de valeurs.

:idea: :idea: :idea: :idea: :idea: :idea: :idea: :idea: :idea: :idea: :idea: :idea: :idea: :idea: :idea: :idea:
Michel Claveau Informatique

Michel
Messages : 405
Enregistré le : mer. oct. 30, 2002 11:20 pm
Localisation : Voie Lactée
Contact :

Message par Michel » ven. mai 21, 2004 5:33 pm

Détail : dans
tst(p(123456.78 ))
J'ai été obligé d'ajouter un espace après la 8, à cause de la programmation de Côme, qui convertit intempestivement les caractères en smiley...

:oops:
Michel Claveau Informatique

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » ven. mai 21, 2004 6:22 pm

Tsss ! Tu peux désactiver le BBCode dans un message tout comme les Smilies...
Note bien que je n'ai pas essayé avec ton code :oops:

Michel
Messages : 405
Enregistré le : mer. oct. 30, 2002 11:20 pm
Localisation : Voie Lactée
Contact :

Message par Michel » ven. mai 21, 2004 9:51 pm

Tout ça, c'est du bla-bla, pour éviter de lire mon code object-Pal.

Mais, bon, je n'aurais pas voulu que cela t'empêche de boire un coup...
:new_bdaysmile: :new_all_coholic: :new_bdaysmile: :new_all_coholic: :new_bdaysmile: :new_all_coholic: :new_bdaysmile: :new_all_coholic: :new_bdaysmile: :new_all_coholic: :new_bdaysmile: :new_all_coholic: :new_bdaysmile: :new_all_coholic: :new_bdaysmile: :new_all_coholic: :new_bdaysmile: :new_all_coholic: :new_bdaysmile:
Michel Claveau Informatique

Répondre