Lua: Le tutoriel  wxWidgets
Lua
Les tables: Les matrices et les tables à plusieurs dimensions.

Pour faire simple, une matrice est un tableau de nbLignes et nbColonnes.

Colonne 1Colonne 2Colonne 3 Colonne 4Colonne 5Colonne 6Colonnes y
Ligne 1
Ligne 2
Ligne x

La déclaration d'une matrice en LUA est différente de la déclaration d'une matrice avec un autre langage, comme le C ou le Pascal.

Il y a deux façons principales de créer une matrice en LUA.
1- Utiliser une table de table.
2- Rassembler les 2 indices en un seul.


1- Utiliser une table de table

C'est peut-être la plus utilisée, car à mon avis la plus évidente.
Il s'agit d'une table où chaque élément est une autre table.
Par exemple, vous pouvez créer une matrice de 1 à n dimensions par m avec le code suivant:

	matrice = {} -- création de la matrice ( c'est tout simplement une table )
	for i = 1, n do
	  matrice[i] = {} -- création d'un nouveau rang
	  for j = 1, m do
		 matrice[i][j] = valeur	-- création d'une case à l'intérieure du rang
	  end
	end
				

Et pour remplir le tableau donné en exemple ci-dessus:

	local tablePrincipale = {} -- création de la table
	local nbLignes = 3
	local nbColonnes = 7
	for ligne = 1, nbLignes do
	  tablePrincipale[ligne] = {} -- création d'une nlle ligne
	  for colonne = 1, nbColonnes do
		tablePrincipale[ligne][colonne] = tostring(ligne)..tostring(colonne)
	  end
	end		
				

Ce qui donnerait:

Col 1Col 2Col 3 Col 4Col 5Col 6Col 7
Ligne 111121314151617
Ligne 221222324252627
Ligne 331323334353637

tostring(x), est une fonction de base Lua, qui comme sont nom l'indique, transforme x en chaîne de caractères.
tonumber(y), est son contraire et transforme y en nombre. (si cela est possible!)


Puisqu'avec LUA, les tables sont des objets, vous devrez créer les rangées de façon explicite.

L'exemple précédent, pourrait s'écrire de la façon suivante:

table = {} --Construction de la table principale
table.ligne1 = {} --Construction de la ligne1 à l'intérieur de table
table.ligne2 = {} --Construction de la ligne2 à l'intérieur de table
table.ligne3 = {} --Construction de la ligne3 à l'intérieur de table
... etc.

2- Rassembler les 2 indices en un seul

Si les deux indices sont des entiers, vous pourrez multiplier le premier par une constante, puis ajouter le second: Reprenez l'exemple précédent.

	mt = {} -- création de la matrice ( c'est une table )
	for i = 1, n do
	  for j = 1, m do
	  mt[i*m + j] = 0
	  end
	end
				

Si les indices sont des chaînes, vous pourrez créer un indice unique en concaténant de deux indices et en les séparant par un caractère.
Soit une matrice mt et 2 indices s et t ---> mt[s..":"..t] ou mt["s:","t"].

logo wxWidgets Le savoir ne vaut que s'il est partagé par tous...
logo-internet_32x32.png Dernière mise à jour, le 4 décembre 2012.
Valid XHTML 1.0 Transitional

wxlualogo
Flèche haut
Flèche gauche
Flèche haut
Flèche droite