Numérique et sciences informatiques

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é :

1
T=[[1,2,3,4],
2
   [5,6,7,8],
3
   [9,10,11,12],
4
   [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éthodeCré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

1
grille=[]#création du tableau
2
ligne=30
3
colonne=20
4
for p in range(0,ligne,1):#pour chaque ligne
5
    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

1
ligne=30
2
colonne=20
3
grille=[[0]*colonne for p in range(ligne)]

MéthodeParcourir un tableau

Le code ci-dessous crée un tableau de 10 lignes et 10 colonnes : (Processing)

1
def setup():
2
    size(200,200)
3
    ligne=10
4
    colonne=10
5
    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 :

1
def setup():
2
    size(200,200)
3
    ligne=10
4
    colonne=10
5
    grille=[[0]*colonne for p in range(ligne)]
6
    #remplissage du tableau
7
    for i in range(0,ligne,1):
8
        for j in range(0,colonne,1):
9
            if (i+j)%2==0:
10
                grille[i][j]=1
11
    #affichage du tableau
12
    for i in range(0,ligne,1):
13
        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

1
def setup():
2
    size(200,200)
3
    ligne=10
4
    colonne=10
5
    grille=[[0]*colonne for p in range(ligne)]
6
    #remplissage du tableau
7
    for i in range(0,ligne,1):
8
        for j in range(0,colonne,1):
9
            if (i+j)%2==0:
10
                grille[i][j]=1
11
    #affichage du tableau
12
    for i in range(0,ligne,1):
13
        print(grille[i])
14
    # affichage du damier
15
    # attention les abscisses correspondent aux colonnes
16
    # donc les ordonnées aux lignes
17
    # pour dessiner un carré, on dessine un rectangle (largeur=hauteur)
18
    #rect(abscisse_coin_sup_gauche, ordonnée_coin_sup_gauche, largeur, hauteur)
19
    for i in range(0,ligne,1):
20
        for j in range(0,colonne,1):
21
            if grille[i][j]==1:
22
                fill(0)#remplissage noir
23
                rect(j*20,i*20,20,20)
24
            else:
25
                fill(255)
26
                rect(j*20,i*20,20,20)
27

Remarque : vous comprenez maintenant pourquoi ce tableau se nomme grille

SimulationExercice (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é

1
def setup():
2
    size(400,600)
3
    k=20
4
    colonne=width//k
5
    ligne=height//k
6
    print(ligne)
7
    print(colonne)
8
    grille=[]
9
    for p in range(0,ligne,1):
10
        grille.append([0]*colonne)
11
    # grille=[[0]*colonne for p in range(ligne)]
12
    for i in range(0,ligne,1):
13
        for j in range(0,colonne,1):
14
            if (i+j)%2==0:
15
                grille[i][j]=1
16
    # print(grille[58][39])
17
    for i in range(0,ligne,1):
18
        for j in range(0,colonne,1):
19
            if grille[i][j]==0:
20
                fill(0)
21
                rect(j*k,i*k,k,k)
22
            else:
23
                fill(255)
24
                rect(j*k,i*k,k,k)
PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Stéphan Van Zuijlen Licence de documentation libre GNURéalisé avec Scenari (nouvelle fenêtre)