Page 1 sur 1
Procédure à paramètres multiples
Publié : dim. 01/sept./2013 14:33
par Micoute
Bonjour à tous, j'aimerais savoir s'il est possible de créer une procédure en ne connaissant pas le nombre de paramètres qui lui seront passés, je pense à mettre dedans une liste structurée ou un tableau, par exemple pour calculer la moyenne de tous les paramètres entrés.
Je vous remercie tous beaucoup par anticipation.
Re: Procédure à paramètres multiples
Publié : dim. 01/sept./2013 14:56
par falsam
Le tableau ou la structure me parait plus judicieux.
Code : Tout sélectionner
Procedure.f Getaverage(Array score.f(1), Size.i)
Protected Total.i, i.i
For i = 0 To Size
Total+ Score(i)
Next
ProcedureReturn Total/size
EndProcedure
Dim Score.f(5)
Score(0) = 5.50
Score(1) = 10
Score(2) = 6
Debug GetAverage(Score(), 3)
Re: Procédure à paramètres multiples
Publié : dim. 01/sept./2013 15:01
par falsam
Si tu tiens vraiment à créer une procédure à paramètres multiples, tu as le code de ts-soft.
http://www.purebasic.fr/english/viewtop ... 13#p376680
Re: Procédure à paramètres multiples
Publié : dim. 01/sept./2013 16:05
par Micoute
Bonjour et merci énormément falsam, je ne m'attendais pas à avoir des réponses aussi rapidement, mais juste une idée si on pouvait entrer un nombre de paramètres qu'on ne peut pas déterminer à l'avance et je m'aperçois qu'on peut tout faire avec PB.
Re: Procédure à paramètres multiples
Publié : dim. 01/sept./2013 16:58
par Micoute
Finalement, j'ai procédé comme ça
Code : Tout sélectionner
Procedure.f Moyenne(List Liste.f())
Protected Total.i
ForEach Liste()
Total + Liste()
Next
ProcedureReturn Total/ListSize(Liste())
EndProcedure
Global NewList MaListe.f()
AddElement(MaListe())
MaListe() = 5.50
AddElement(MaListe())
MaListe() = 10
AddElement(MaListe())
MaListe() = 6
Debug StrF(Moyenne(MaListe()),3)
je trouve ça parfait, merci encore falsam.
Re: Procédure à paramètres multiples
Publié : dim. 01/sept./2013 19:11
par Backup
falsam a écrit :Le tableau ou la structure me parait plus judicieux.
Code : Tout sélectionner
Procedure.f Getaverage(Array score.f(1), Size.i)
[/quote]
ou peut etre la liste chainée .. si on ne connais pas a l'avance le nombre de paramètres
la lecture d'une liste pour récupérer ces paramètres c'est une possibilités :)
Re: Procédure à paramètres multiples
Publié : dim. 01/sept./2013 19:28
par Micoute
Merci Dobro.