0% ont trouvé ce document utile (0 vote)
5 vues21 pages

Tableaux en Algorithmique et C

Transféré par

aimanjintar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues21 pages

Tableaux en Algorithmique et C

Transféré par

aimanjintar
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours d'Algorithmique 1

LES TABLEAUX EN ALGORITHMIQUE ET EN LANGAGE C


Introduction
 Un tableau est une variable structurée composée d’un nombre de
variables de même type.

 Ces variables simples sont appelées éléments ou composantes du tableau, elles sont stockées en
mémoire à des emplacements contigus (l’un après l’autre) → Adresses mémoires successives.

 Toutes les variables d’un tableau sont du même type.

2 Cours d'Algorithmique 1
Introduction

En Algorithmique, les indices des cases d’un tableau commencent à partir


de un (1).

1 2 3 4 5 6 7

1 1 345 4 81 34 41 52
2 -6 .. … … … … …
3 4
4 3 … … … … … …

3 Cours d'Algorithmique 1
Introduction
En langage C, les indices des cases d’un tableau commencent à partir de zéro (0).

4 Cours d'Algorithmique 1
Introduction
 On peut définir des tableaux à une dimension (tableau unidimensionnel ou
vecteur) : Tableau T 1 2 4 -3 7 2 -1 6
Indices 1 2 3 4 5 6 7 8
Indices en C 0 1 2 3 4 5 6 7

 Ou des tableaux à plusieurs dimensions (tableau multidimensionnel) :


Colonnes
0 1 2 3 4 5 6 Indices en C
Indices en algo 1 2 3 4 5 6 7

1 1 345 4 81 34 41 52 0

Lignes 2 -6 12 7 90 23 24 76 1
3 4 9 0 89 73 21 -234 2
4 3 2 -67 13 87 94 567 3
5 Cours d'Algorithmique 1
Tableaux à une dimension > Déclaration
 La déclaration d'un tableau à une dimension s'effectue en précisant le type de
ses éléments et sa dimension (le nombre de ses éléments) :

 Syntaxe : Tableau NomTableau(TailleMaximale);


Constante entière positive!
 Syntaxe en C : Type identificateur[dimension];

 Exemples :
 Tableau Notes(40) : réel  float Notes[40]; // Notes

 Tableau Numero(30) : entier  int Numero[30];

 Tableau Voyelles(7) : caractère  char Voyelles[7]; // Voyelles

6 Cours d'Algorithmique 1
Tableaux à une dimension > Initialisation
 Pour initialiser les éléments d’un tableau lors de la déclaration, on indique la
liste des valeurs respectives entre accolades.

 Exemples :
 int Numero[30] = {1, 10, 32, 24, 7 } ;
0 1 2 3 4 … 28 29
1 10 32 24 7 …

 float Notes[40] = {11.4, 13.67, 19.5, 17.1} ;


0 1 2 3 … 38 39
11.4 13.67 19.5 17.1 …
7 Cours d'Algorithmique 1
Tableaux à une dimension > Initialisation
 char Nom[6] = { ‘A’, ‘h’, ‘m’, ‘e’, ‘d’, ‘\0’ } ;
0 1 2 3 4 5
‘A’ ‘h’ ‘m’ ‘e’ ‘d’ ‘\0’

 la liste ne doit pas contenir plus de valeurs que la dimension du tableau.


 short T[3] = {1, 2, 3, 4, 5} ; → Erreur !

 On peut ne pas indiquer la taille explicitement lors de l'initialisation. Dans ce


cas elle est égale au nombre de valeurs de la liste.
 short T[ ] = { 1, 2, 3, 4, 5 } ; → Tableau de 5 éléments

8 Cours d'Algorithmique 1
Tableaux à une dimension > Accès aux éléments
 Les éléments d’un tableau sont accessibles par leurs indices. Ces indices
varient entre 1 et la Taille Maximale du tableau.

 Ainsi, si on suppose qu’on dispose du tableau T suivant :


1 -7 3 4 5 6
 Tableau T T(1) T(2) T(3) T(4) T(5) T(6)
 T(1): élément de la première case du tableau T (ici vaut :1)

 T(2) 10 // affecter 10 à la 2ème case du tableau T 1 10 3 4 5 6


T(1) T(2) T(3) T(4) T(5) T(6)
 A  T(3) + T(6) // A vaut 9

 T( i ) : élément de la ième case du tableau T (avec i entre 1 et Taille Maximale)

9 Cours d'Algorithmique 1
Tableaux à une dimension > Accès aux éléments
 Les éléments d’un tableau sont accessibles par leurs indices. En C ces indices
varient entre 0 et la Taille Maximale -1 du tableau.
 int T[6] = { 1, 2, 3, 4, 5, 6 } , A ;

 Ainsi nous avons :


 T[0] : élément de la première case du tableau T (ici vaut :1)

 T[1] =10 ; // affecter 10 à la 2ème case du tableau T

 A = T[2] + T[5] ; // A vaut 9 1 10 3 4 5 6


T[0] T[1] T[2] T[3] T[4] T[5]
 T[ i ] : élément de la ième case du tableau T (avec i entre 0 et 5)

10 Cours d'Algorithmique 1
Tableaux à une dimension > Lecture (Remplissage)
 Pour lire les éléments d’un tableau, on utilise une boucle (vu que les indices
des cases sont successifs). Par Exemple :

Tableau T(10) : entier Tableau Notes(100) : réel


Variables Variables
i : entier i, n : entier
Début Début
Pour i allant de 1 à 10 faire Ecrire("Donner le nombre de
Ecrire("Donner l’entier ", i) notes à saisir")
Lire(T(i)) Lire(n)
FinPour Pour i allant de 1 à n faire
Fin Ecrire("Donner la note", i)
Lire(Notes(i))
FinPour
Fin
11 Cours d'Algorithmique 1
Tableaux à une dimension > Lecture
 Pour lire les éléments d’un tableau en langage C, Par Exemple :

int T[100], n, i ; char ch[30], n, i ;


printf("Donner le nombre d’entiers à printf("Donner le nombre de caractères à saisir\n");
saisir\n"); scanf("%d", &n);
scanf("%d", &n); for(i=0 ; i<n ; i++){
for(i=0 ; i<n ; i++){ printf("Donner le caractère %d\n", i+1);

printf("Donner l’entier %d\n", i+1); scanf(" %c", &ch[ i ]);


scanf("%d", &T[ i ]); }
}

12 Cours d'Algorithmique 1
Tableaux à une dimension > Ecriture (Affichage)
 De même, pour afficher un tableau, on utilise une boucle. Par exemple :
Tableau T(10) : entier Tableau Notes(100) : réel
Variables Variables
i : entier i, n : entier
Début Début
Ecrire("Donner le nombre de notes à saisir")
Pour i allant de 1 à 10 faire
Lire(n)
Ecrire("Donner l’entier ", i) Pour i allant de 1 à n faire
Lire(T(i)) Ecrire("Donner la note", i)
FinPour Lire(Notes(i))
//Affichage FinPour
Pour i allant de 1 à 10 faire //Affichage
Ecrire(T(i)) Pour i allant de 1 à n faire
FinPour Ecrire(Notes(i))
FinPour
Fin Fin

13 Cours d'Algorithmique 1
Tableaux à une dimension > Exemple Complet
Tableau Notes(100) : réel S  S+ Notes(i)
Variables FinPour
NS, NI, i, n : entier Moy  S/n
moy, S : réel Ecrire("La moyenne est :", Moy)
Début //Nombre de notes >= et < à la Moyenne calculée
Ecrire("Donner le nombre de notes à saisir") NS  0;
Lire(n) NI 0
Pour i allant de 1 à n faire Pour i allant de 1 à n faire
Ecrire("Donner la note", i) Si Notes(i) >= Moy alors
Lire(Notes(i)) NS  NS +1
FinPour Sinon
//Affichage NI  NI+1
Pour i allant de 1 à n faire FinSi
Ecrire(Notes(i)) FinPour
FinPour Ecrire("Nombre de notes >= Moy :", NS)
//Moyenne Ecrire("Nombre de notes < Moy :", NI)
S0 Fin
Pour i allant de 1 à n faire
14 Cours d'Algorithmique 1
Tableaux à une dimension > Ecriture
 Pour écrire les éléments d’un tableau, on utilise une boucle.

 Exemple : Pour l’affichage des 2 tableaux supposés déjà remplis :

int T[100], n, i ; char ch[30], n, i ;


printf("Donner le nombre d’entiers à saisir\n"); printf("Donner le nombre de caractères à saisir\n");
scanf("%d", &n); scanf("%d", &n);
for(i=0 ; i<n ; i++){ for(i=0 ; i<n ; i++){
printf("L’entier %d est : %d\n", i+1, T[ i ]); printf("Le caractère %d est : %d\n", i+1, ch[ i ]);
} }

15 Cours d'Algorithmique 1
Tableaux à une dimension > Exemple
 Lecture d’un tableau d’entiers et affichage de la moyenne des ses éléments :
main( ){
int T[100], n, i , s=0;
printf("Donner le nombre d’entiers à saisir\n");
scanf("%d", &n);
for(i=0 ; i<n ; i++){
printf("Donner l’entier %d\n", i+1);
scanf("%d", &T[ i ]); }
for(i=0 ; i<n ; i++){
s = s + T[ i ] ; }
printf("Moyenne des éléments du tableau : %f\n", (float) s/n);
}
16 Cours d'Algorithmique 1
Tableaux à deux dimensions > Déclaration
 La déclaration d'un tableau à une dimension s'effectue en précisant le type de
ses éléments et sa dimension (le nombre de ses éléments) :

 Syntaxe : Tableau NomTableau(nombre_lignes, nombre_colonnes);


Constante entière positive!
 Syntaxe en C :Type identificateur [nombre_de_lignes][nombre_de_colonnes];

 Exemples :
 Tableau Notes(40, 3) : réel  float Notes[40][3]; // Notes

 Tableau Numero(30, 2) : entier  int Numero[30][2];

17 Cours d'Algorithmique 1
Tableaux à une dimension > Initialisation
 Pour initialiser les éléments d’un tableau lors de la déclaration, on indique la
liste des valeurs respectives entre accolades.

 Exemples :
 float Notes[2] [4] = {{11.4, 13.67, 19.5, 17.1} , {12.5, 14.75, 13.5, 12.1} };

0 1 2 3
0 11.4 13.67 19.5 17.1
1 12.5 14.75 13.5 12.1

18 Cours d'Algorithmique 1
Tableaux à une dimension > Accès aux éléments
 Les éléments d’un tableau sont accessibles par leurs indices.
 float Notes[2] [4] = {{11.4, 13.67, 19.5, 17.1} , {12.5, 14.75, 13.5, 12.1} }, A;

 Ainsi nous avons :


 Notes[0][0] : élément de la première case (première ligne et première colonne) du tableau
Notes(ici vaut :11.4)
0 1 2 3
 T[1][1] =10 ; // affecter 10 à la 2ème case du tableau T 0 11.4 13.67 19.5 17.1
1 12.5 10 13.5 12.1
 A = T[0][3] + T[1][3] ; // A vaut 29.2

 T[ i ][ j ] : élément avec la ligne i et la colonne j du tableau T (avec i entre 0 et 1 et j entre 0 et 3)

19 Cours d'Algorithmique 1
Tableaux à une dimension > Lecture (Remplissage)
 Pour lire les éléments d’un tableau à deux dimensions, on utilise deux boucles (une boucle pour
parcourir les lignes et une boucle pour parcourir les colonnes). Par Exemple :

Tableau Notes(100, 10) : réel float notes[100][10];


Variables int i, j, n, m;
i, j, n, m : entier printf("Donner le nombre d’étudiants à saisir\n");
Début
Ecrire("Donner le nombre d’étudiants à saisir") scanf("%d", &n);
Lire(n) printf("Donner le nombre de notes à saisir \n");
Ecrire("Donner le nombre de notes à saisir") scanf("%d", &m);
Lire(m) for( i=0; i<n ; i++){
Pour i allant de 1 à n faire for( j=0;j<m; j++){
Pour j allant de 1 à m faire printf("Donner la note %d \n", j);
Ecrire("Donner la note", j)
scanf("%f", &notes[i][j]);
Lire(Notes(i, j))
FinPour }
FinPour }
Fin
20 Cours d'Algorithmique 1
Tableaux à une dimension > Ecriture (Affichage)
 De même, pour afficher un tableau, on utilise deux boucles. Par exemple :
Tableau Notes(100, 10) : réel float notes[100][10];
Variables int i, j, n, m;
i, j, n, m : entier for( i=0; i<n ; i++){
Début for( j=0;j<m; j++){
Pour i allant de 1 à n faire printf("%f", notes[i][j]);
Pour j allant de 1 à m faire }
Ecrire(Notes(i, j))
}
FinPour
FinPour
Fin

21 Cours d'Algorithmique 1

Vous aimerez peut-être aussi