Académique Documents
Professionnel Documents
Culture Documents
Durée : 3h
Objectif
Le but de ce TP est de se familiariser avec les tableaux unidimensionnel et
.bidimensionnel en C
Introduction
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:
Solution:
Disposer d’un objet plus complexe, pour stocker ces notes, et y accéder à l’aide d’un indice :
Note 15 12 9 10 14 11 14 9 15 8
Indice 1 2 3 4 5 6 7 8 9 10
Définition :
Un tableau est une structure de donnée permettant de stocker des données de même type.
Chacune des valeurs est repérée par un indice indiquant la position de la donnée dans le tableau.
▪ Son nom;
▪ Sa taille;
1
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation
▪ Sa dimension;
▪
Manipulation 4.1 : Tableau à une dimension (uni-dimensionnel)
Un tableau uni-dimensionnel (vecteur) est une manière de ranger des éléments ou des valeurs de même
type. Il regroupe ces éléments dans une structure fixe et permet d’accéder à chaque élément par
l’intermédiaire de son rang ou indice.
Tableau A
..…
N composantes
Déclaration
En langage C, la déclaration d’un tableau à une dimension est définie comme suit :
Syntaxe 4.1.1
<TypeSimple> <NomTableau> [<Taille>];
Exemple 4.1.1
float Notes [20];
int A [100];
char Alphabet [26];
▪ <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.
2
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation
▪ 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
Initialisation
Lors de la déclaration d’un tableau, on peut initialiser les composantes du tableau en indiquant la liste
des valeurs respectivement entre {}.
Accès
<NomTableau> [<indice>]
3
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation
Affectation
<NomTableau>[<indice>] = <expression>;
T[2]=3;
Exercice 4.1.1
On a enregistré les températures maximales et minimales de la région de Nabeul
pendant 12 mois de l’année 2020. On aimerait connaitre la température moyenne
pour chaque mois.
Ecrire un programme C qui saisit au clavier les deux tableaux Tmax et Tmin puis
remplit le tableau Tmoy à partir des 2 tableaux précèdent..
Exercice 4.1.2
Etant donné un entier positif X, on se propose d’écrire un algorithme qui permet de donner
son code binaire suivant cette méthode:
1. On divise (division entière) le nombre X par 2.
2. On sauvegarde le reste de la division.
3. On refait les deux étapes précédentes, jusqu’à avoir un quotient nul.
4. Le regroupement des restes en sens inverse de leurs apparitions donne la valeur du
nombre X en binaire.
Exemple:
Si X=13 alors
la division entière de 13 par 2 donne un quotient =6 et un reste = 1
4
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation
Exercice 4.1.3
Ecrire un algorithme qui permet de :
Exemple :
N : 11
T : 1
6 8 2 8 2 6 6 2 1 6
0
T_occurences : 3 4 0
1 0 0 0 0 2 1
4 7 1
1 2 3 5 6 8 9
0
TT : 1
8 8 6 6 6 6 2 2 2 1
0
5
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation
Déclaration
En langage C, la déclaration d’un tableau à deux dimensions est définie comme suit :
char T[12][18];
float A[2][2];
▪ Les composantes d’un tableau à 2 dimensions sont stockés ligne par ligne dans la mémoire
6
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation
Initialisation
Lors de la déclaration d’un tableau, on peut initialiser les composantes du tableau en indiquant la liste
des valeurs respectivement entre {}. A l’intérieur de la liste, les composantes de chaque ligne sont
entre {}.
Accès
<NomTableau> [<Ligne>][<Colonne>]
/ \
| . . . . . . . . . . . . . . . |
\ /
Exemple:
7
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation
Affectation
T[0][1] = 2,
int i, j;
Exercice 4.2.1
L’addition
La somme de est
Exercice 4.2.2
8
S.REFAI & N.DAGHFOUS
2 0 21- 2 0 22 | F a s c i c u l e d e T P : A t e l i e r Programmation
Soit une matrice M de n lignes et m colonnes à valeurs entières. Ecrire un algorithme qui
permet de saisir la matrice sachant que n et m sont des valeurs positives. Il détermine et
affiche l’indice de la ligne dont la somme de ses éléments est maximale.
9
S.REFAI & N.DAGHFOUS