Vous êtes sur la page 1sur 24

Algorithmique et structures de

données(3)
Les tableaux
Prof.A. MOUTAOUKKIL

BTS DSI Guelmim 1


Situation problème

Écrire un Algorithme qui demande à l’utilisateur 5


notes, les stockés puis calcule et affiche la
moyenne de ces notes

BTS DSI Guelmim 2


Solution
Algorithme Moyenne_Note
Variables:
Note1, Note2, Note3, Note4, Note5: Réels
DEBUT:
Pour i allant de 1 à 5 Faire
Ecrire("Entrer la note N » ,i)
Lire(Note1
Fin Pour

BTS DSI Guelmim 3


C’est quoi un tableau?

• Une structure de données homogènes


• Sert à stocker dans une même variable, un nombre fini d’élément sde
même type.

BTS DSI Guelmim 4


On distingue deux types:
Tableau à une dimension Tableau à deux dimension

• Avec une seule ligne • Avec plusieurs lignes


• Donc des lignes et des colonnes

BTS DSI Guelmim 5


Tableau à une dimension

Déclaration, Accès…

BTS DSI Guelmim 6


Tableau à une dimension: Déclaration (1)

Syntaxe:

Identificateur: Tableau[indice1….indiceN] de type_contenu

Exemple:

A: Tableau[1….10] de Entier

BTS DSI Guelmim 7


Tableau à une dimension: Accès (2)
Exemple:

• Un élément du tableau est une Case


• Les cases d’une variable de type tableau sont accessible en utilisant :
▪ L’identificateur de la variable
▪ L’indice ou le numéro de la case (doit être entre indice1 et indice N)

BTS DSI Guelmim 8


Tableau à une dimension: Accès (2)
Exemple:

Question: Comment accéder à cette case?


Réponse:
• L’identificateur du tableau est : A
• L’indice de la case est : 5
• Donc l’instruction convenable est: A[5]

BTS DSI Guelmim 9


Tableau à une dimension: Accès (2)

Exemples:

• A[3] Désigne la case numéro 3 du tableau A


• A[10] Désigne la case numéro 10 du tableau A
• A[20] ?
• A[i] Désigne la case numéro i du tableau A tel que
indice1<=i<=indiceN

BTS DSI Guelmim 10


Tableau à une dimension: Accès (2)
Règles importantes:

• Les cases d’un tableau jouent le rôle d’une variable


• On peut les utiliser dans des actions: d’affectation,
lecture, écriture, etc
Exemples:

• A[3] 100
• Lire(A[10])

BTS DSI Guelmim 11


Tableau à une dimension: Exercice d’application (3)

Ecrire un algorithme qui permet de créer un tableau de


dimension 5 et le remplir par des 0.

BTS DSI Guelmim 12


Programmation
procédurale C(3)
Les tableaux
Prof.A. MOUTAOUKKIL

BTS DSI Guelmim 13


Problème:
Pour conserver par exemple simultanément les notes de 10 élèves, il
nous faut 10 variables différentes (et si on avait 100 ou 1000 élèves?!!)

Inconvénients:
• Un nom pour chaque variable;
• Aucun lien entre les différentes variables.

BTS DSI Guelmim 14


Solution
Disposer d’un objet plus complexe, pour stocker ces notes, et y accéder à
l’aide d’un indice :

Intérêts:
• Gain de temps;
• rétrécissement du volume du programme;
• possibilité de réutilisation de toutes les valeurs ultérieurement dans le
programme

BTS DSI Guelmim 15


• Un tableau est caractérisé par :
• Son nom ;
un tableau? • Sa taille ;
• Sa dimension ;
• Le type de ses éléments.

BTS DSI Guelmim 16


Tableau à une dimension: Déclaration (1)

Syntaxe:

<TypeSimple> <NomTableau> [<Taille>];

Exemple:

• float Notes [20];


• int A [100];
• char Alphabet [26];

BTS DSI Guelmim 17


Le tableau en C?
• <Taille> est nécessairement une valeur numérique. Ce ne peut être en aucun cas
une combinaison des variables du programme
• Pour un tableau de taille N, le compilateur C réserve N places en mémoire pour
ranger les éléments du tableau
• Un élément du tableau est repéré par son indice. En langage C les tableaux
commencent à l'indice 0. L'indice maximum est donc N-1
• En langage C, le nom d’un tableau est le représentant de l’adresse du premier
élément du tableau
• Les adresses des autres composantes sont calculées (automatiquement)
relativement à cette adresse
• Espace occupé en mémoire: Taille d’une composante en octets x N
• Exemples:
▪ short A [4]; /* Taille = 2 octets x 4 */
▪ int TAB [10]; /* Taille = 4 octets x 10 */

BTS DSI Guelmim 18


Tableau à une dimension: initialisation (2)
• Lors de la déclaration d’un tableau, on peut initialiser les composantes du
tableau en indiquant la liste des valeurs respectivement entre {}
Exemples:
• short A [5] = {1, 10, 9, 4, 5} ;
• Réservation de (2 x 5) octets
• float B [ ] = {2.4, 1.6, 3.33};
• Réservation automatique de (4x3) octets ( la dimension n ’est pas indiquée
• explicitement)
• short A [4] = {1, 10, 9, 4, 5} ;
• Erreur!

BTS DSI Guelmim 19


Tableau à une dimension: Accès (3)
Syntaxe:
<NomTableau> [<indice>]

Exemple:

• Pour un tableau T de taille N:


• T[0] pour accéder au premier élément
• T[N-1] pour accéder au dernier élément

BTS DSI Guelmim 20


Tableau à une dimension: Affectation (3)
Syntaxe:
<NomTableau> [<indice>] = <expression>;

Exemple:

• T[2] = 3;
int Notes [100];
int i;
for (i = 0; i < 100; i++) /* Remplissage du tableau */
{ printf (“Entrez la note de l ’étudiant N° %d\n“, i+1 );
scanf (“%d “, &Notes[i]);
}

BTS DSI Guelmim 21


BTS DSI Guelmim 22
Tableau à une dimension: Remplissage (4)

BTS DSI Guelmim 23


Exemple: Copie, comparaison: Attention !

BTS DSI Guelmim 24

Vous aimerez peut-être aussi