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
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
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
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
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
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
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
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