Procédure à paramètres multiples

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Procédure à paramètres multiples

Message 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.
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 !
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Procédure à paramètres multiples

Message 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)
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%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Procédure à paramètres multiples

Message 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
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%
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Procédure à paramètres multiples

Message 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.
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 !
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Procédure à paramètres multiples

Message 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.
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 !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Procédure à paramètres multiples

Message 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 :)
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Procédure à paramètres multiples

Message par Micoute »

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 !
Répondre