Vous êtes sur la page 1sur 35

Les tableaux

Fatma ANNABI Technologue à l’ISET de radès


fatma.annabi@gmail.com

1 Fatma Annabi Djemal Programmation C


Plan du Chapitre
 Introduction

 Les tableaux à une dimension

 Les tableaux à plusieurs dimensions

 Les chaînes de caractères

2 Fatma Annabi Djemal Programmation C


Introduction

 variables structurées les plus populaires

 disponibles dans tous les langages de programmation

3 Fatma Annabi Djemal Programmation C


Les tableaux à une dimension

 variable structurée formée d'un nombre entier N de


variables simples du même type

 Les N entiers sont appelées les composantes du tableau

 Le nombre de composantes N est la dimension du tableau

4 Fatma Annabi Djemal Programmation C


Les tableaux à une dimension Suite 1

A: …

N composantes

Exemple :

int JOURS[12] = {31,28,31,30,31,30,31,31,30,31,30,31};

 On peut accéder à la première composante par JOURS[0],


à la deuxième par JOURS[1], . . . , à la dernière par
JOURS[11].
5 Fatma Annabi Djemal Programmation C
Les tableaux à une dimension Suite 2

En langage C

<TypeSimple> <NomTableau> [<Dimension>] ;

6 Fatma Annabi Djemal Programmation C


Les tableaux à une dimension Suite 3

Initialisation

 en indiquant la liste des valeurs respectives entre accolades 


 le nombre de valeurs dans la liste corresponde à la dimension du
tableau
 Sinon les composantes restantes sont initialisées par zéro
 en faisant des opérations d’affectation appropriées

7 Fatma Annabi Djemal Programmation C


Les tableaux à une dimension Suite 4

Exemple1 :

float B[4] = {-1.05, 3.33, 87e-5, -12.3E4};

Exemple2 :

int D[2] ;
D[0]=1 ; D[1]=2 ;

8 Fatma Annabi Djemal Programmation C


Les tableaux à une dimension Suite 5

Accès aux composantes

 Soit un tableau T de dimension N :

En C :

 l'accès au premier élément du tableau se fait par T[0]

 l'accès au dernier élément du tableau se fait par T[N-1]

9 Fatma Annabi Djemal Programmation C


Les tableaux à une dimension Suite 6

Exemple

int A[5] = {123, 345, 987, 23, 67};

A: 123 345 987 23 67


A [0] A [1] A [2] A [3] A [4]

10 Fatma Annabi Djemal Programmation C


Les tableaux à une dimension Suite 7

Affichage du contenu d'un tableau

 il faut affecter des valeurs aux composantes d'un tableau avant


de les afficher

main()
{
int A[5], i;
for (i=0; i<5; i++)
printf(" %d " , A[i])
}

11 Fatma Annabi Djemal Programmation C


Les tableaux à une dimension Suite 8

Affichage du contenu d'un tableau

 Pour séparer les valeurs lors de l'affichage il faut :

 inclure au moins un espace dans la chaîne de format


 printf("%d\t",A[I]); /* tabulateur */
 printf("%7d",A[I]); /* format d'affichage */

12 Fatma Annabi Djemal Programmation C


Les tableaux à une dimension Suite 9

Affectation d'un tableau

main()
{
int A[5], I;
for (I=0; I<5; I++)
scanf("%d", &A[I]);
}

13 Fatma Annabi Djemal Programmation C


Application

 Ecrire un programme qui lit la dimension N d'un tableau T


du type int (dimension maximale: 50 composantes),
remplit le tableau par des valeurs entrées au clavier et
affiche le tableau.

Calculer et afficher ensuite la somme des éléments du


tableau.

14 Fatma Annabi Djemal Programmation C


Les chaînes de caractères
 Une chaîne de caractères est un tableau de caractères à
une dimension terminé par le caractère'\0' (marque de fin
de chaîne).
 Les chaînes de caractères sont manipulées par
l'intermédiaire de fonctions spécifiques déclarées dans
<string.h>.

15 Fatma Annabi Djemal Programmation C


Les chaînes de caractères Suite 1

 Déclaration :

char <NomVariable> [<Longueur>];

 Exemples :

char NOM [20];


char PRENOM [20];
char PHRASE [300];

16 Fatma Annabi Djemal Programmation C


Les chaînes de caractères Suite 2

 Initialisation :

 En général, les tableaux sont initialisés par l'indication de


la liste des éléments du tableau entre accolades:
char CHAINE[6] = {'H','e','l','l','o','\0'};

 Pour le cas spécial des tableaux de caractères, nous


pouvons utiliser une initialisation plus confortable en
indiquant simplement une chaîne de caractère constante :

char CHAINE[6] = "Hello";

17 Fatma Annabi Djemal Programmation C


Les chaînes de caractères Suite 3

 L’argument de la fonction scanf ne doit pas être précédé


de l'opérateur adresse '&'
 Le nom d'une chaîne de caractères est le représentant de
l'adresse du premier caractère de la chaîne

 Exemples :

scanf(" %s ",NOM);

18 Fatma Annabi Djemal Programmation C


Les chaînes de caractères Suite 4

 Affichage d’une chaîne de caractères


 puts() : insère automatiquement un "\n" à la fin de la chaîne

 Lecture d’une chaîne de caractères


 gets() : Le retour à la ligne final est remplacé par le symbole
de fin de chaîne '\0'.

19 Fatma Annabi Djemal Programmation C


Les chaînes de caractères Suite 5

 Les fonctions de <string>


Dans ce qui suit :

 <n> représente un nombre du type int.


 Les symboles <s> et <t> peuvent être remplacés par :

 une chaîne de caractères constante


 le nom d'une variable déclarée comme tableau de char
 un pointeur sur char

20 Fatma Annabi Djemal Programmation C


Les chaînes de caractères Suite 6

strlen(<s>) fournit la longueur de la chaîne sans compter le '\0' final

strcpy(<s>, <t>) copie <t> vers <s>

strcat(<s>, <t>) ajoute <t> à la fin de <s>

strcmp(<s>, <t>) compare <s> et <t> lexicographiquement et fournit un


résultat :
 négatif si <s> précède <t>
 zéro si <s> est égal à <t>
 positif si <s> suit <t>
strncpy(<s>, <t>, <n>) copie au plus <n> caractères de <t> vers <s>

strncat(<s>, <t>, <n>) ajoute au plus <n> caractères de <t> à la fin de <s>

21 Fatma Annabi Djemal Programmation C


Les chaînes de caractères Suite 7

 Les fonctions de <stdlib>

La bibliothèque <stdlib> contient des déclarations de


fonctions pour la conversion de nombres en chaînes de
caractères et vice-versa

22 Fatma Annabi Djemal Programmation C


Les chaînes de caractères Suite 8

 Chaîne --> Nombre


atoi(<s>) retourne la valeur numérique représentée par <s> comme int
atol(<s>) retourne la valeur numérique représentée par <s> comme long
atof(<s>) retourne la valeur numérique représentée par <s> comme double
 Nombre --> Chaîne
itoa (<n_int>, <s>, <b>)
ltoa (<n_long>, <s>, <b>)
ultoa (<n_uns_long>, <s>, <b>)

Chacune de ces trois procédures convertit son premier


argument en une chaîne de caractères qui sera ensuite
attribuée à <s>. La conversion se fait dans la base <b>
23 Fatma Annabi Djemal Programmation C
Les chaînes de caractères Suite 9

 Les fonctions de <ctype>


La fonction : retourne une valeur différente de zéro,
isupper(<c>) si <c> est une majuscule ('A'...'Z')
islower(<c>) si <c> est une minuscule ('a'...'z')
isdigit(<c>) si <c> est un chiffre décimal ('0'...'9')
isalpha(<c>) si islower(<c>) ou isupper(<c>)
isalnum(<c>) si isalpha(<c>) ou isdigit(<c>)
isxdigit(<c>) si <c> est un chiffre hexadécimal
('0'...'9' ou 'A'...'F' ou 'a'...'f')
isspace(<c>) si <c> est un signe d'espacement (' ',
'\t', '\n', '\r', '\f')

24 Fatma Annabi Djemal Programmation C


Les chaînes de caractères Suite 10

tolower(<c>) retourne <c> converti en minuscule si <c> est une majuscule

toupper(<c>) retourne <c> converti en majuscule si <c> est une minuscule

25 Fatma Annabi Djemal Programmation C


Les tableaux à plusieurs dimensions

 Le nombre de dimensions d’un tableau n’est pas limité

 il est donné par le nombre des valeurs entières entre


crochets (e1,e2,e3,...,en)

 Exemple :

int K[3][4]; un tableau bidirectionnel K possédant 3*4=12 éléments.

26 Fatma Annabi Djemal Programmation C


Les tableaux à plusieurs dimensions Suite1

 Syntaxe :

<type> <nom du tableau> [e1] [e2] [e3]...[en];

27 Fatma Annabi Djemal Programmation C


Tableaux à deux dimensions

 Interpréter comme un tableau (unidimensionnel) de


dimension L dont chaque composante est un tableau
(unidimensionnel) de dimension C.

 On appelle L le nombre de lignes du tableau et C le nombre


de colonnes du tableau.

 L et C sont alors les deux dimensions du tableau.

 Un tableau à deux dimensions contient L*C composantes.

28 Fatma Annabi Djemal Programmation C


Tableaux à deux dimensions

 Interpréter comme un tableau (unidimensionnel) de


dimension L dont chaque composante est un tableau
(unidimensionnel) de dimension C.

 On appelle L le nombre de lignes du tableau et C le nombre


de colonnes du tableau.

 L et C sont alors les deux dimensions du tableau.

 Un tableau à deux dimensions contient L*C composantes.

29 Fatma Annabi Djemal Programmation C


Les tableaux à deux dimensions Suite 1

Initialisation

 En indiquant la liste des valeurs respectives entre accolades

 A l'intérieur de la liste, les composantes de chaque ligne du


tableau sont encore une fois comprises entre accolades

30 Fatma Annabi Djemal Programmation C


Les tableaux à deux dimensions Suite 2

Exemple1 :

int A[3][10] ={{ 0,10,20,30,40,50,60,70,80,90},


{10,11,12,13,14,15,16,17,18,19},
{ 1,12,23,34,45,56,67,78,89,90}};

Exemple2 :

int D[2] [3] ;


D[0] [0]=1 ; D[1] [0]=2 ;
31 Fatma Annabi Djemal Programmation C
Les tableaux à deux dimensions Suite 3

Accès aux composantes

 <NomTableau>[<Ligne>][<Colonne>]

A[0][0] A[0][1] A[0][2] . . . A[0][C-1]


A[1][0] A[1][1] A[1][2] . . . A[1][C-1]
A[2][0] A[2][1] A[2][2] . . . A[2][C-1]
... ... ... ... ... ... ... ...
A[L-1][0] A[L-1][1] A[L-1][2] . . . A[L-1][C-1]

 les indices du tableau varient de 0 à L-1, respectivement de 0 à C-1.


 la composante de la Nième ligne et Mième colonne est notée:
A[N-1][M-1]
32 Fatma Annabi Djemal Programmation C
Les tableaux à deux dimensions Suite 4

Affichage
main()
{
int A[5][10];
int I,J;
/* Pour chaque ligne ... */
for (I=0; I<5; I++)
{
/* ... considérer chaque composante */
for (J=0; J<10; J++)
printf("%7d", A[I][J]);
/* Retour à la ligne */
printf("\n");
}
return 0;
}
33 Fatma Annabi Djemal Programmation C
Les tableaux à deux dimensions Suite 5

affectation
main()
{
int A[5][10];
int I,J;
/* Pour chaque ligne ... */
for (I=0; I<5; I++)
/* ... considérer chaque composante */
for (J=0; J<10; J++)
scanf("%d", &A[I][J]);
return 0;
}
34 Fatma Annabi Djemal Programmation C
Application

 Ecrire un programme qui lit les dimensions L et C d'un


tableau T à deux dimensions du type int (dimensions
maximales: 50 lignes et 50 colonnes). Remplir le tableau
par des valeurs entrées au clavier et afficher le tableau
ainsi que la somme de tous ses éléments.

35 Fatma Annabi Djemal Programmation C

Vous aimerez peut-être aussi