Procédures avec tableaux

Informations pour bien débuter en PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Procédures avec tableaux

Message par microdevweb »

Beaucoup le savent déjà, mais pour les novices voici comment passer un tableau à une procédure.

Quel est l'intérêt ?
  • Passer plusieurs valeurs en un seul paramètre (tableau)
  • Modifier plusieurs paramètres avec la procédure et récupérer les paramètres en dehors de la procédure
Noter bien: Dans la procédure on renseigne le nombre de dimensions du tableau (1 minimum) et pas le nombre d'éléments

Première exemple Tableau à une dimension

Code : Tout sélectionner

Enumeration 
    #X
    #Y
    #W
    #H
EndEnumeration
; ATTENTION ici est le piège
; Le chiffre 1 représente le nombre de dimensions du tableau et PAS le nombre d'éléments
Procedure Calcul(Array Pos(1))
    Pos(#X)=50
    Pos(#Y)=150
    Pos(#W)=250
    Pos(#H)=350
EndProcedure
; Exemple de calcul de dimension d'un rectangle par exemple
; je dimensionne un tableau
Dim myPos(#H) ; remarquez j'utilise une énumération pour que ce soit plus claire
Calcul(myPos())
Debug "Position X = "+Str(myPos(#X))
Debug "Position Y = "+Str(myPos(#Y))
Debug "Position W = "+Str(myPos(#W))
Debug "Position H = "+Str(myPos(#H))
Deuxième exemple Tableau à deux dimensions

Code : Tout sélectionner

Enumeration 
    #Position
    #LigneSize
EndEnumeration
Enumeration 
    #X
    #Y
    #W
    #H
EndEnumeration
; ATTENTION ici est le piège
; Le chiffre 2 représente le nombre de dimensions du tableau et PAS le nombre d'éléments
Procedure Calcul(Array Pos(2))
    Pos(#Position,#X)=50
    Pos(#LigneSize,#X)=5
    Pos(#Position,#Y)=150
    Pos(#LigneSize,#Y)=15
    Pos(#Position,#W)=250
    Pos(#LigneSize,#W)=25
    Pos(#Position,#H)=350
    Pos(#LigneSize,#H)=35
EndProcedure
; Exemple de calcul de dimension d'un rectangle par exemple mais cette
; fois avec la taille de la ligne (ceci n'est évidement qu'un exemple)
; je dimensionne un tableau
Dim myPos(#LigneSize,#H) ; remarquez j'utilise une énumération pour que ce soit plus claire
Calcul(myPos())
Debug "Position X = "+Str(myPos(#Position,#X))+"  et une ligne de "+Str(myPos(#LigneSize,#X))
Debug "Position Y = "+Str(myPos(#Position,#Y))+"  et une ligne de "+Str(myPos(#LigneSize,#Y))
Debug "Position W = "+Str(myPos(#Position,#W))+"  et une ligne de "+Str(myPos(#LigneSize,#W))
Debug "Position H = "+Str(myPos(#Position,#H))+"  et une ligne de "+Str(myPos(#LigneSize,#H))
Voila c'est un petit tuto très court, mais j'espère qu'il pourra vous être utile
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Kevin Black
Messages : 3
Inscription : mer. 29/juin/2016 12:05

Re: Procédures avec tableaux

Message par Kevin Black »

Merci pour le post, ça m'a beaucoup aidé :D
Répondre