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.
Procédure à paramètres multiples
Procédure à paramètres multiples
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Procédure à paramètres multiples
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)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Procédure à paramètres multiples
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
http://www.purebasic.fr/english/viewtop ... 13#p376680
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Procédure à paramètres multiples
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.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Procédure à paramètres multiples
Finalement, j'ai procédé comme ça
je trouve ça parfait, merci encore falsam.
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)
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Procédure à paramètres multiples
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
Merci Dobro.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !