Les Tableaux
Un tableau c'est quoi ?
Une liste est un tableau d'une ligne :
L=[1,2,3,4]
une ligne et quatre colonnes
Pour créer un tableau de 4 lignes et 4 colonnes, il faut donc créer une liste qui contient quatre listes :
T=[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
On peut la représenter comme ceci pour davantage de lisibilité :
T=[[1,2,3,4],
[5,6,7,8],
[9,10,11,12],
[13,14,15,16]]
Pour accéder à une ligne du tableau, on utilise l'index de la sous-liste :
ligne 1 : print(T[0])
ligne 2 : print(T[1])
ligne 3 : print(T[2])
ligne 4 : print(T[3])
Pour accéder à un élément en particulier, on utilise l'index de l'élément :
le chiffre 10 est sur la 3ème ligne (index :2) et 2ème colonne ( index : 1 de la sous-liste)
soit : print(T[2][1])
Méthode : Créer des tableaux
Pour créer des tableaux de dimensions quelconques, on utilise la méthode suivante :
Le code ci-dessous crée un tableau de 30 lignes par 20 colonnes ne contenant que des 0
grille=[]#création du tableau
ligne=30
colonne=20
for p in range(0,ligne,1):#pour chaque ligne
grille.append([0]*colonne)#on rajoute le nombre de colonne voulu
On peut réduire les deux dernières lignes de code à une seule ligne :
Ce code a le même effet que le précédent
ligne=30
colonne=20
grille=[[0]*colonne for p in range(ligne)]
Méthode : Parcourir un tableau
Le code ci-dessous crée un tableau de 10 lignes et 10 colonnes : (Processing)
def setup():
size(200,200)
ligne=10
colonne=10
grille=[[0]*colonne for p in range(ligne)]
Remplissons ce tableau avec des 1 quand : n° de ligne + n° de colonne est un nombre pair
Pour cela, il faut parcourir le tableau avec une double boucle :
def setup():
size(200,200)
ligne=10
colonne=10
grille=[[0]*colonne for p in range(ligne)]
#remplissage du tableau
for i in range(0,ligne,1):
for j in range(0,colonne,1):
if (i+j)%2==0:
grille[i][j]=1
#affichage du tableau
for i in range(0,ligne,1):
print(grille[i])
En sortie :
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0]
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
Créons maintenant un damier à l'aide de cette grille :
Si l'élément de la grille vaut 1 on dessinera un carré noir, sinon ce sera un carré blanc
def setup():
size(200,200)
ligne=10
colonne=10
grille=[[0]*colonne for p in range(ligne)]
#remplissage du tableau
for i in range(0,ligne,1):
for j in range(0,colonne,1):
if (i+j)%2==0:
grille[i][j]=1
#affichage du tableau
for i in range(0,ligne,1):
print(grille[i])
# affichage du damier
# attention les abscisses correspondent aux colonnes
# donc les ordonnées aux lignes
# pour dessiner un carré, on dessine un rectangle (largeur=hauteur)
#rect(abscisse_coin_sup_gauche, ordonnée_coin_sup_gauche, largeur, hauteur)
for i in range(0,ligne,1):
for j in range(0,colonne,1):
if grille[i][j]==1:
fill(0)#remplissage noir
rect(j*20,i*20,20,20)
else:
fill(255)
rect(j*20,i*20,20,20)
Remarque : vous comprenez maintenant pourquoi ce tableau se nomme grille
Simulation : Exercice (Processing)
En vous inspirant du programme précédent :
Réalisez un programme qui dessine un damier dans une fenêtre de dimensions quelconques
On devra pouvoir modifier le nombre de case en agissant sur une seule variable
Corrigé
def setup():
size(400,600)
k=20
colonne=width//k
ligne=height//k
print(ligne)
print(colonne)
grille=[]
for p in range(0,ligne,1):
grille.append([0]*colonne)
# grille=[[0]*colonne for p in range(ligne)]
for i in range(0,ligne,1):
for j in range(0,colonne,1):
if (i+j)%2==0:
grille[i][j]=1
# print(grille[58][39])
for i in range(0,ligne,1):
for j in range(0,colonne,1):
if grille[i][j]==0:
fill(0)
rect(j*k,i*k,k,k)
else:
fill(255)
rect(j*k,i*k,k,k)