Question tte bete sur les tableaux et les boucles for

Résolu
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 - 7 juin 2007 à 14:46
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 - 11 juin 2007 à 15:19
Bonjour à tous !

Donc voilà... Je fais un tableau en 2D avec ca :
var Tab:Array = new Array[3][32]
Logiquement, ca devrait être un tableau avec 3 colonnes et 32 lignes... ok.

Mais voilà :
Question 1 : il fait 3 colonnes... mais pour parcourir la première, je fais quoi ?
Tab[1] ou Tab[0] ?
Question 2 : une boucle "for" définit comme ca :
for(i;i< =3;i++)
Pour parcourrir mon tableau... elle va aller de 0 à 3 (ce qui ferait 4 valeurs distonctes) ou de 1 à 3 ?
Est-il possible de la définir comme tel : for (i=1;i<=3;i++) ou pas ?

En gros : pour parcourrir correctement mon tableau, je dois faire comment, un boucle qui va de 0 à 2, de 1 à 3 ? Car je suis un peu perdu...

De plus je ne peux pas tester mon appli dans l'immédiat car elle est trop incomplète...

Cette question est assez urgente car, bien que tout ca soit dans des fonctions et donc très facilement retrouvable et modifiable, je ne veux pas perdre trop de temps, et passez à autre chose tant que ce n'est pas terminé....

Merci de votre aide !

10 réponses

cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
7 juin 2007 à 15:25
Bonjour
new Array[3][32] t'est pas obligé de te faire suer les tailles sont dynamiques en flash !
Réponse 1 c'est de la prog donc par 0
Ta boucle est juste mais par contre tu pourrais utiliser l'attribut length
3
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
7 juin 2007 à 15:33
Bonjour,

pour faire un tableau de 3 'colonnes' et 32 'lignes'

var Tab:Array = new Array(new Array(3),new Array(32))

Q1 : le premier index d'un array est 0
Q2: parcourir les colonnes du tableau
for(var i:Number =0; i<Tab[0].length ; i++)

enfin, petit exemple pour bien comprendre, comment cibler chaque élément du tableau à 2 dimensions :

for(var colonne:Number=0; colonne<Tab[0].length ;colonne++){
   for(var ligne:Number=0; ligne<Tab[1].length ;ligne++){
      trace('Colonne '+colonne+' Ligne '+ligne+' valeur:'+Tab[colonne][ligne])
   }
}

@+
3
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 1
7 juin 2007 à 15:33
Wow... Merci pour ta réponse, mais tu peux êt replus précis please ?

Les tailles sont dynamiques... oui, avec un flush, je crois ?

Pour la boucle, je suis d'accord, c'est bien ce que je pensais... C'est logique.

Mais pour le tableau, si je déclare mon tableau comme ça, utilisant Tab[3][32], je vais être à l'intersection de la 3ème colonne et de la 32ème ligne, ou de la 4ème colonne et de la 33ème ligne ?

 
0
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 1
7 juin 2007 à 15:36
Yop... Girou, tu as répondu pendant que je postais... désolé...

Du coup, tu as répondu plus ou moins à ma question...
Si je fais Tab[3][32] je vais être à la cellule qui se trouve à l'intersection de la 4ème colone et de la 33ème ligne...
Vrai ?
 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
7 juin 2007 à 16:18
Tab[3][32]
je vais être à la cellule qui se trouve à l'intersection de la 4ème colone et de la 33ème ligne




Yep, tout a fait !

@+
0
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 1
7 juin 2007 à 16:23
Ok d'acc !
Ben merci à tous les deux pour vos réponses !

Dernière question : ce tableau est initialisé (nécessaire) par une première fonction, puis les valeurs y sont ajoutées par une seconde. Une troisième fonction servira à piocher des valeurs dedans.
Mais pour y accéder, à ce tableau, dans mes fonctions, en sachant que le tableau est déclaré au tout début du script...
Je dois obligatoirement le passer en paramètre puis le faire retourner par mes fonctions, où le fait de l'avoir déclaré au début du script me permet de ne pas avoir à le faire passer en paramètre ?
 
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
7 juin 2007 à 16:37
Normalement si tu le déclares au début du script, tu peux l'utiliser dans tes fonctions sans le passer en parametre

@+
0
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 1
11 juin 2007 à 09:28
Merci !

Mais j'ai un autreproblème : quand je clique sur un bouton de test, j'initialise mon tableau comme ça, avec une fonction :
function TabInit():void{
   for(var i;i<=2;i++){
      for(var j;j<=31;j++){
         Tab[i][j] = 0;
      }
   }
}
Puis je veux faire un trace de la valeur suivante :
trace(Tab[1][1]);
Lors du trace, j'ai l'erreur suivante :
TypeError: Error #1009: Cannot access a property or method of a null object reference.
 at contralco1_fla::MainTimeline/FonctionTest()

A savoir que j'ai modifié la manière de déclaration du tableau à cause de l'erreur 1010... que je ne connais plus mais qui veut dire à peu près la même chose que celle d'en dessus...
Je déclare mon tableau comme ca :
var Tab:Array;

Voilà... j'espère que vous pourrez m'aider...

 
0
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 1
11 juin 2007 à 09:57
Car ma fonction d'initialisation n'est pas appelée... et je sais pas pourquoi...
Déjà, j'ai l'erreur en moins ar j'ai mal déclaré mon tableau, donc c'est bon.
J'ai rajouté des "trace" dans ma fonction d'initialisation, et je n'ai rien qui en ressort...

 
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
11 juin 2007 à 15:19
Salut,

essaye en déclarant ton tableau comme ceci :

var Tab:Array=new Array();

@+
0
Rejoignez-nous