Vous êtes sur la page 1sur 31

Les tableaux

Dfinition Un tableau est une suite d'lments de mme type. Cette suite est reprsente par un nom appel nom du tableau: Variable tableau. Exemple de tableau (reprsentation logique)
m 1 4 11 13 10

Remarque Les lments d'un tableau sont stocks de manire adjacentes.

Taille et type d'un tableau Un tableau est caractris par : - un nom - une taille : nombre d'lments - un type : int, char

Exemple
m 1 4 11 13 10

nom du tableau? taille? type?


5

Dclaration d'un tableau type nom_tableau[taille]; Exemple double notes[4]; double note1, note2;

Accs aux lments d'un tableau Chaque lment du tableau possde un indice pour y accder. Si un lment du tableau se trouve la case n, son indice est n-1. Le premier lment a l'indice 0 On accde l'lment d'indice i par nom_tableau[i]

Exemple
m 1 4 11 13 10

0 1 m[0] a la valeur 4. m[4] a la valeur 10.

Accs aux lments d'un tableau Exemple double notes[4]; notes*0+, notes*1+

Oprations sur les tableaux Les lments d'un tableau de type t subissent les mmes oprations qu'une variable de type t.
Affectation Lecture criture Oprations arithmtiques Etc.

10

Exemples float x[5]; x[0]=14; x[1]++; scanf("%f",&x[2]); printf("%f",x[3]);

11

Initialisation d'un tableau la dclaration type nom_tableau*taille+=,val1,val2valn-; Exemple int x[2]={1,2}; x[0] a la valeur 1 et x[1] a la valeur 2.

12

Initialisation d'un tableau la dclaration(suite) type nom_tableau*+=,val1,val2valn-; Exemple int x[]={1,2}; x[0] a la valeur 1 et x[1] a la valeur 2.

13

Initialisation d'un tableau la dclaration(suite) type nom_tableau*+=,val1,val2valn-; Exemple int x[3]={1,2}; x[0] a la valeur 1 et x[1] a la valeur 2.

14

Utilisation de sizeof sizeof(type) donne la taille du type Exemple sizeof(int) est 4 sizeof(variable) sizeof(nom_tableau)

15

Manipulation des lments d'un tableau Manipulation individuelle via indice:


Lecture Ecriture Affectation

16

Exercice Construire un programme C qui lit les lments d'un tableau de rels de taille n (n lire aussi), les affiche , calcule leur somme et leur moyenne.

17

Rponse main() { int i,nb; float t[10], s=0; scanf("%d",&nb); //la taille effective du tableau for(i=0; i<nb; i++) scanf("%f",&t[i]); for(i=0; i<nb; i++) printf(t*%d+=%f,i,t*i+); for( i=0; i<nb; i++) s+=t[i]; printf("la somme est:%f",s); printf("la moyenne est:%f",s/n); }
18

Construire les procedure suivantes : void lecture(int t[], int nb) pour lire les lments du tableau t de taille nb. void affiche(int t[], int nb) pour afficher les lments du tableau t de taille nb.

19

Rponse void affiche(int t[], int nb) { int i; for(i=0;i<nb; i++) printf("%d\n",t[i]); }

20

Rponse (suite) void lecture (int t[], int nb) { int i; for(i=0;i<nb; i++) scanf("%d",&t[i]); }

21

Rponse (suite) main() { int t[3]; lecture(t,3); affiche(t,3); }

22

Rponse

#include <stdio.h> void affiche (int t[], int nb) { int i; for(i=0;i<nb; i++) printf("%d\n",t[i]); } void lecture (int t[], int nb) { int i; for(i=0;i<nb; i++) scanf("%d",&t[i]); } main() { int t[3]; lecture(t,3); affiche(t,3); }
23

Les tableaux 2 dimensions: La dclaration : Exemple int t[3][5]; rserve un tableau de 15 (3x5) lements. Un lement quelconque de ce tableau se trouve alors repr par deux indices comme dans ces notations : t*2+*3+; t*i+*j+ etc .

24

Initialisation d'un tableau la dclaration type nom_tableau*+*+=,val1,val2valnint tab[2][3]={1,2,3,4,5,6};


int tab[2][3]={{1,2,3},{4,5,6}};

25

exemple #include <stdio.h> Main() { int tab[2][3]={1,2,3,4,5,6}; inj i,j; for (i=0;i<2;i++) for (j=0;i<2;j++) printf (%d , tab*i+*j+) }

26

#include<stdio.h> #define TAILLE 5 int main(void){ long int les_entiers [3] [4] = { {1,2,3,4}, {5,6}, {9,10,11,12} }; int la_colonne, la_ligne ; printf(" Taille du tableau : %d\n", sizeof (les_entiers)) ; printf(" Contenu :\n") ; for(la_ligne = 0 ; la_ligne <3 ; la_ligne++,printf("\n") ) for(la_colonne = 0 ; la_colonne <4 ; la_colonne++) printf(" %ld ", les_entiers[la_ligne][la_colonne]) ;

27

crire un programme qui lit 10 nombres entiers dans un tableau avant den chercher le plus grand et le plus petit.
Dfinir un programme C qui trie les lments dun tableau et les affiche lcran.

28

#include <stdio.h> #define nval 10 Main() { int i, min, max, t[nval]; printf (donnez %d valeurs\n ,nval); for (i=0;i<nval;i++) scanf(%d;&t*i+); max = min = t[0]; for (i=1;i<nval;i++) { if (t[i] > max) max = t[i]; if (t[i] < min ) min = t[i];} printf (valeur max : %d\n, max); printf (valeur min : %d\n, min); }
29

Exo 2 : #include<stdio.h> main() { int tab[100]; //tableau d'entiers int nb; //nombre d'lments int i ,j; int aux ; //variable pour changer le contenu des cases du tab. printf("donner le nombre effectif d'lments du tableau:"); scanf("%d",&nb); //lecture du tableau printf("saisie des lments:\n"); for(i=0;i<nb; i++) scanf("%d",&t[i]);
30

Exo 2 : //tri des lments du tab //tri par selection for(i=0;i<nb-1;i++) for(j=i+1;j<nb;j++) if(tab[i]>tab[j]) { aux=tab[i]; tab[i]=tab[j]; tab[j]=aux; } printf("affichage du tableau ordonn\n"); for(i=0;i<nb; i++) printf("%d\n",t[i]); }
31