les tableaux. tableau? erreur de langage ! un tableau est généralement une liste… cest donc une...

19
Les tableaux

Upload: tristand-dumont

Post on 03-Apr-2015

115 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

Les tableaux

Page 2: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

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

Page 3: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

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.

Page 4: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

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

Page 5: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

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

Page 6: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

Ce qu’on peut faire…Accéder à une case du tableau :

monTableau[0]Mettre une valeur dans le tableau :

monTableau[2]=120

monTableau

Page 7: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

Ce qu’on peut faire…Accéder à une case du tableau :

monTableau[0]Mettre une valeur dans le tableau :

monTableau[2]=120

monTableau

12

Page 8: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

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

Page 9: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

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

Page 10: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

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 ;-)

Page 11: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

Petit parallèle avec ExcelExcel, c’est un tableur fait par Microsoft :

Page 12: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

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…

Page 13: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms
Page 14: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms
Page 15: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms
Page 16: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms
Page 17: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms
Page 18: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

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

Page 19: Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms

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)