Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une...
-
Upload
tristand-dumont -
Category
Documents
-
view
117 -
download
4
Transcript of Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une...
Les tableaux
Tableau?Erreur de langage !
Un tableau est généralement une liste…C’est donc une liste de mêmes éléments :
Liste de notesListe de noms d’étudiantsListe de caractères (pour former un mot)…
Un tableau a une taille maximale
Création d’un tableauLors de la déclaration de la variable de type
tableau, il faut :Donner la taille max
C’est ici que l’on donne le nombre maximal de cases à réserver
Donner le type des cases C’est ici qu’on donne le type des valeurs que l’on
souhaite mettre dans les cases.Donner le nom du tableau
C’est grâce à ce nom qu’on pourra modifier le contenu du tableau.
Ce qu’il se passe en mémoire…Mémoire vive de
l’ordinateur
0xAABA
0xAABC
0xAABD
0xAABE
0xAABF
0xAAC0
0xAAC1
0xAAC2
0xAAC3
Adresse mémoire
Ce qu’il se passe en mémoire…
monTableau Cellule de rang 1
Cellule de rang 2
Cellule de rang 3
Cellule de rang 4
Mémoire vive de
l’ordinateur
Ce qu’on peut faire…Accéder à une case du tableau :
monTableau[0]Mettre une valeur dans le tableau :
monTableau[2]=120
monTableau
Ce qu’on peut faire…Accéder à une case du tableau :
monTableau[0]Mettre une valeur dans le tableau :
monTableau[2]=120
monTableau
12
Ce qu’il se passe en vrai !Quand on manipule une case du tableau :
monTableau[2]Le compilateur C++ transforme cette instruction en adresse mémoire :
@monTableau+20xAABD+20xAABF
C’est pour ça que la première caseest à l’indice 0…
0monTableau
12
0
0
0xAABA
0xAABC
0xAABD
0xAABE
0xAABF
0xAAC0
0xAAC1
0xAAC2
0xAAC3
Ce qu’il se passe en vrai !C’est vrai aussi pour les variables normales !
Quand on déclare une variable dans un programme : int cpt;
On peut ensuite l’utiliser pour faire des calculs : cpt=cpt+1;
Ce qu’il se passe que on appuie sur ctrl-F5 :Partout où Visual Studio voit le mot cpt, il remplace
ce mot par l’adresse de la case cpt. Ainsi :cpt=cpt+1; 0x0001<=0x0001+1
Ce qu’il faut savoirÀ gauche d’un « égal », il faut une adresse en
mémoirePour une variable « normale », c’est son nomPour un tableau, c’est une de ses cases
À droite, c’est un calcul avec la possibilité de mettre des adresses en mémoire pour récupérer des valeurs
Pour le reste, on verra ça plus tard avec les pointeursDemandez aux redoublants, c’est le bonheur ;-)
Petit parallèle avec ExcelExcel, c’est un tableur fait par Microsoft :
Petit parallèle avec ExcelOn a vu qu’un tableau en C++ n’est pas un
vrai tableauPar contre, une colonne sous Excel peut être
vue comme un tableau de grande taille.
Exemple sous Excel…
Pourquoi utiliser des tableaux?Permet de répéter le même traitement sur
plusieurs valeurs en faisant varier l’indice du tableau :Tab[i], avec i qui varie sur toutes les cases (en
utilisant une boucle…)Impossible de traiter un grand nombre de
données sans tableaux
Et les matrices?Les matrices, c’est souvent utile :
Une image, c’est une matriceLes notes d’une classe, c’est une matrice
Ça se déclare comme ça :int maMatrice[15][20];Bien entendu, le type, le nom et les nombres
peuvent être changés…Il faut ensuite considérer la matrice comme un
tableau Excel, et donc pour accéder à une case, il faut faire :maMatrice[2][3] (pour la 2ème colonne et 3ème
ligne)