Tableau

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Tableau

Message par jerexgrz »

Bonjour,

J'aimerais savoir quelles sont les fonctions pour modifier les tableaux ? Je veux utiliser :
dim pixel.decor (999)

je voudrais savoir s'il existe la fonction pour redimensionner un tableau tout en conservant les données à l'intérieur de celui ci, une fonction pour connaitre les index minimums et maximums (ici : 0 et 999) ... pour copier un tableau directement comme ca :

structure decor
X
Y
Color
endstructure

dim pixel.decor (999)
dim point.decor (999)

pixel(1) = point(1)
ici toutes les variables doivent etre transferer à savoir la valeur de X,Y et color !

Je ne veux pas utiliser les listes chainées car le chiffre dans les parentheses permet de controler chaque point (independament)! Je l'appelle le quantificateur car c'est lui qui permet au prog de se retrouver et de gerer les points.
RQ: Si le point 10 n'existe +, le point (11) ne doit surtout pas prendre sa place !!
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Pour redimensionner un tableau sans perdre le contenu n'est pas facile.
1. Creer un tableau tampon
2. Copier le tableau à redimensionner dans le tableau tampon.
3. Redimensionner le tableau.
4. Copier le tableau tampon dans le tableau redimensionné.


Pour faire un égalité entre 1 élément de 2 tableaux, ill faut faire comme ceci :

Code : Tout sélectionner

pixel(1)\x = point(1)\x
pixel(1)\y = point(1)\y 
pixel(1)\Color = point(1)\Color
Il faut faire un égalité champ à champ. Une égalité Structure à Structure est impossible.

J'espère que ça peut d'aider.

A+
Guimauve
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

C vrai, j'y ai pas pensé à créer un tableau tampon comme ca, je redimensionne le tableau principale ! Pour la 2eme methode, je l'utilise dejà ! Ca serait beaucoup mieux d'avoir de vraies fonctions (code = + propre !).
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Bon j'ai un plus de temps...

Voiçi un exemple complet :

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Déclaration de la Structure >>>>>

Structure decor
  
  x.l
  y.l
  Color.l
  
EndStructure

; <<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les mutateurs >>>>>

Procedure Setdecorx(*ObjetA.decor, x.l)
  
  *ObjetA\x = x
  
EndProcedure

Procedure Setdecory(*ObjetA.decor, y.l)
  
  *ObjetA\y = y
  
EndProcedure

Procedure SetdecorColor(*ObjetA.decor, Color.l)
  
  *ObjetA\Color = Color
  
EndProcedure

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les observateurs >>>>>

Procedure.l Getdecorx(*ObjetA.decor)
  
  ProcedureReturn *ObjetA\x
  
EndProcedure

Procedure.l Getdecory(*ObjetA.decor)
  
  ProcedureReturn *ObjetA\y
  
EndProcedure

Procedure.l GetdecorColor(*ObjetA.decor)
  
  ProcedureReturn *ObjetA\Color
  
EndProcedure

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Equal >>>>>

Procedure Equaldecor(*ObjetA.decor, *ObjetB.decor)
  
  Setdecorx(*ObjetA, Getdecorx(*ObjetB))
  Setdecory(*ObjetA, Getdecory(*ObjetB))
  SetdecorColor(*ObjetA, GetdecorColor(*ObjetB))
  
EndProcedure


Dim pixel.decor (999)
Dim Point_Decor.decor (999) 


Setdecorx(@Point_Decor(1), 100)
Setdecory(@Point_Decor(1), 300)
SetdecorColor(@Point_Decor(1), RGB(255,000,255))

Equaldecor(@pixel(1), @Point_Decor(1))

Debug Getdecorx(@pixel(1))
Debug Getdecory(@pixel(1))
Debug GetdecorColor(@pixel(1))
N.B. Il faut comprendre la notion de pointeur et d'adresse pour comprendre comment à marche ce bout de code.

A+
Guimauve
Répondre