Année universitaire:2024/2025
Filière:ELT
Programming Techniques : I
- Le Langage C –
Tableaux
Pr: [Link]
E-mail: ahmedchater11@[Link]
array ( tableaux)
Declare an array (Déclarer un tableau)
Initializing an array (Initialisation d’un tableau)
Access an element (Accéder un élément)
Show table elements (Afficher les éléments)
Fill table (Remplir tableau)
Tableaux
◼ Introduction et Définition
◼ Tableaux à une dimension (Vecteurs)
◼ Déclaration ; Initialisation ; Accès ; …
◼ Tableaux à plusieurs dimensions
◼ Déclaration
◼ Tableaux à deux dimensions (matrices) :
◼ Déclaration ; Initialisation ; Accès ; …
◼ Exemples
◼ Représentation en mémoire des tableaux
Tableaux
◼ Les variables, telles que nous les avons vues, ne permettent de
stocker qu'une seule donnée à la fois.
◼ Pour mémoriser et manipuler de nombreuses données (100, 1000,
…), des variables distinctes seraient beaucoup trop lourdes à gérer.
◼ Pour résoudre ce problème, le langage C (ainsi que les autres langages
de programmations)
◼ propose une structure de données permettant de stocker l'ensemble de
ces données dans une "variable commune" appelée :<
Tableau
Tableaux
Définition
◼ On appelle tableau une variable composée de données de même type,
stockée de manière contiguë en mémoire (les unes à la suite des autres).
◼ La taille d’un tableau est conditionnée (ou définie) par le type et le nombre
de ces éléments :
Taille tableau (en octet) = taille du type de donnée (en octet) * le nombre des éléments
◼ Le type des éléments du tableau peut être :
◼ simple : char, int, float, double, ...
tableau à une dimension ou tableau unidimensionnel
◼ tableau
tableau à plusieurs dimensions ou tableau multidimensionnel
◼ Autres : Pointeurs et Structures
Table Declaration (Déclaration)
La déclaration d’un tableau à une dimension se fait de la façon suivante :
<Type Simple> Nom_du_Tableau [Nombre_Elements];
Type Simple: définit le type d’élément que contient le tableau (char, int,…)
Nom_du_Tableau: est le nom que l'on décide de donner au tableau, le nom
du tableau suit les mêmes règles qu'un nom de variable.
Nombre_Elements : est une expression constante entière positive.
Exemples :
char caracteres[12] ; //Taille en octet : 1 octet * 12 = 12 octets
float reels_SP[8] ; //Taille en octet : 4 octets * 8 = 32 octet
#define N 10 //define permet d’assigner un nom à une constante
int entier[N] ; //Taille en octet : 2 octets * 10 = 20 octets
double reel_DP[2*N-5] ; //Taille en octet : 8 octets * 15 = 120 octets
Initialization and declaration (Initialisation à la déclaration)
Il est possible d’initialiser le tableau à la définition :
◼
<Type> Tableau [Nombre_Elements] = {C1, C2, … , Cn};
Où C1, C2, .., Cn sont des constantes dont le nombre ne doit pas dépasser
le Nombre_Elements (n<=Nombre_Elements).
Si la liste de constantes ne contient pas assez de valeurs pour tous les éléments,les éléments
restantes sont initialisées à zéro.
Exemples :
char voyelles[6] = { 'a' , 'e' , 'i' , 'o' , 'u' , 'y' } ;
int Tableau_entier1[10] = {10 , 5 , 9 , -2 , 011 , 0xaf , 0XBDE};
float Tableau_reel[8] = { 1.5 , 1.5e3 , 0.7E4 };
short A[3] = {12 , 23 , 34 , 45 , 56}; //Erreur !
int Tableau_entier2[] = { 15 , -8 , 027 , 0XABDE } //Tableau de 4 éléments
Accessing the components of an array(Accès aux composantes d’un tableau)
Tableaux à une dimension (vecteur)
▪
Pour accéder à un élément du tableau, il suffit de donner le nom du tableau, suivi
de l’indice de l’élément entre crochets :
Nom_du_Tableau [indice]
Où indice est une expression entière positive ou nulle.
Un indice est toujours positif ou nul ;
L’indice du premier élément du tableau est 0 ;
L’indice du dernier élément du tableau est égal au nombre d’éléments – 1.
Exemple :
short A[5] = {12 , 23 , 34 , 45 , 56};
A[0] donne accès au 1er élément du tableau A
int i = 4; A[i] donne accès au dernier élément du Tableau A
int j = 2; A[2*j-1] donne accès au 4ème élément de A
Syntaxe d’affectation
Nom_tab[indice]=valeur
Exemple : affectation des valeurs aux éléments du tableau T
T[0]=6;
T[1]= T[0]-4;
T[2]=T[0]*T[1];
T[3]=20;
T[4]=T[0]+T[1]+ T[2]+T[3];
Fill in a table (Remplir un tableau)
Writing syntax :
scanf(‘’%....’’,&nom_tab[indice]);
Exemple: Remplissage de tous les éléments du tableau T avec l’instruction
scanf:
for(i=0;i<5;i++){
Scanf(‘’%f’’,&T[i]);}
Displaying the elements of the table (Affichage des éléments du
tableau
Reading syntax :
printf(‘’%...,nom_tab[indice]);
Exemple: Affichage des valeurs de tous les éléments du tableau T:
for(i=0;i<5;i++){
printf(‘’%d’’,T[i]);
Exemple :Déclaration, initialisation, affichage et
remplissage.
#include<stdio.h>
#include<stdlib.h>
int main(){
int tab[7];
int i;
for(i = 0; i < 7; i++){
printf("entre la valeur de %d = ", i);
scanf("%d",&tab[i]);
}
for(i = 0; i < 7; i++)
printf("%d\t", tab[i]);
return 0;
}
Application exercise (Exercie d’application)
Écrire un programme qui permet de demander à l’utilisateur de saisir les
notes des étudiants (10 étudiants), puis le programme calcule et affiche
la moyenne des notes.
Solution:
Tableaux
Tableaux à une dimension (vecteur)
Remarques
◼ Chaque élément ( TAB[i] ) d’un tableau ( int TAB[20] ) est manipulé
comme une simple variable (lvalue), on peut :
scanf("%d", &TAB[i] ); TAB[i] sera initialisé par un entier saisi depuis le clavier
printf("TAB[%d] = %d", i , TAB[i] ); Le contenu de TAB[i] sera affiché sur
écran
Apparaître comme opérande d’un opérateur d’incrémentation : TAB[i]++ ou --
TAB[i]
◼ Pour initialiser un tableau (TAB1) par les éléments d’un autre tableau
(TAB2) :
◼ évitez d’écrire TAB1 = TAB2 (incorrect)
◼ On peut par exemple écrire :
for( i = 0 ; i < taille_tableau ; i++ )
TAB1[i] = TAB2[i];
Some practical exercises on the tables
Exercice1 : un programme qui déclare, remplisse et affiche un tableau de
10 entiers en les mettant tous à zéro.
Solution:
Some practical exercises on the tables
Exercice 2: Ecrire un programme qui déclare , remplisse et affiche un tableau contenant les
six voyelles de l’alphabet français.
solution
Some practical exercises on the tables
Exercice 3: Ecrire un programme qui effectue le produit scalaire de deux
vecteurs de même taille (trois éléments) représentés par des tableaux à une
dimension.
Some practical exercises on the tables
Exercice 4: Ecrire un programme qui demande à l’utilisateur de saisir 10entiers qu’on
stocke dans un tableau T. ensuite, le programme détermine et affiche le minimum des
éléments du table T
Some practical exercises on the tables
Exercice 5: Ecrire un programme qui demande à l’utilisateur de saisir 10
entiers qu’on stocke dans un tableau T. Ensuite, le programme détermine et
affiche le maximum des éléments du tableau T.