La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Tableaux en C Mardi 2/05.

Présentations similaires


Présentation au sujet: "Tableaux en C Mardi 2/05."— Transcription de la présentation:

1 Tableaux en C Mardi 2/05

2 Exemple introductif Supposons qu'on veut conserver les notes d'une classe de 30 étudiants pour extraire quelques informations. Par ex. calcul du nombre d'étudiants ayant une note supérieure à 10 Le seul moyen dont nous disposons actuellement consiste à déclarer 30 variables, par ex. N1, …, N30. Après 30 instructions (printf), on doit écrire 30 instructions (if) pour faire le calcul nbre= 0; if (N1 >10) nbre =nbre+1 ; …. if (N30>10) nbre =nbre+1 ; c'est lourd à écrire !!! Et a modifier si nécessaire Les langages de programmation offrent la possibilité de rassembler des variables de meme type (int, float. char., …) dans une seule structure de donnée appelée tableau

3 Définition Un tableau à une dimension (vecteur) est une liste de variables de même type (homogène) stockée séquentiellement en mémoire que l'on peut accéder individuellement par un indice. Pour déclarer un tableau, on utilise la forme générale: type nom_de_variable [tailleMaximale]; type = type de donnée, nom_de_variable = nom du tableau, tailleMaximale = nombre d'éléments du Tableau. Ex: int T[7]; //on déclare un tableau de 7 entiers Celà veut dire que si l'on veut accéder au 1er élément du tableau, on utilise 0 comme index. 1 2 3 4 5 6 Indice

4 Déclaration de tableaux
Type nomTableau[NbreMaxElts]; #define N 30 Dans main(): …….. // declaration sans initialisation int T[N]; // déclaration et initialisation int tab[N] = {9,8,7,6,5}; int t[7] = { 2, 4, 7, 5, 6, 3, 1 }; // on peut omettre la taille du tableau : int t[] = { 2, 4, 7, 5, 6, 3, 1 }; char voyelles[6]={'a','e','i','o','u','y'}; N est une constante designant le nbre max d'elements pouvant contenir le tableau (on peut y stocker un nbre d'elements <= N)

5 Déclarations : types et variables.
int T[5]; T[1] : T[2] : T[3] : T[4]:

6 dimension maximale et effective
dimension maximale d’un tableau (dans la déclaration) dimension effective (dans les calculs) il est conseillé de définir la constante de dimension maximale avec la directive # define. Exemple: …. #define N 100 main(){ int x[N], y[N], z[N]; … } Ce qui permet de faciliter la modification de la dimension d'un tableau ultérieurement.

7 do{printf("nbre elts tab?"); scanf("%d", &n); }
On accède à un élément d'un tableau en donnant l'indice de l'élément entre []. #define N 10 Exemple 1: do{printf("nbre elts tab?"); scanf("%d", &n); } while(n<=0 || n> N); printf("Entrer les entiers du tableau:\n"); for(i=0; i<n ; i++) { printf("T[%d]=", i); scanf("%d", &T[i]); } Exemple 2: printf("le tableau contient les elts:\n"); for(i=0; i<n ; i++) printf("T[%d]=%d\n", i , T[i]); Exemple 3: do{ Printf("entrer l'indice a modifier dans le tableau:"); scanf("%d", &i); } while(i<0 || i>=n); printf("enter la valeur entière a affecter a T[%d]=:", i); nbre elts tab? :7 Enter les els du tableau: T[0]=9 T[1]=3 T[2]=0 T[3]=2 T[4]=7 T[5]=-2 T[6]=-1 9 3 2 7 -2 -1 1 4 5 6 le tableau contient les elts: T[0]=9 T[1]= 3 T[2]= 0 T[3]= 2 T[4]= 7 T[5]= -2 T[6]= -1 entrer l'indice a modifier dans le tableau: 3 entrer la valeur entière a affecter a T[3]= 100 9 3 100 7 -2 -1 1 2 4 5 6

8 printf("incrémenter par 1 les éléments du tableau:\n");
9 3 100 7 -2 -1 1 2 4 5 6 Exemple 4: printf("incrémenter par 1 les éléments du tableau:\n"); for(i=0; i<n ; i++) T[i]++; printf("le tableau devient:\n"); printf("T[%d]=%d\n", i , T[i]); 10 4 1 101 8 -1 2 3 5 6

9 if(abs(T[i])%2==0) T[i]++; // pair else T[i]--; // impair
10 4 1 101 8 -1 2 3 5 6 Exemple 5: printf("incrémenter par 1 les éléments pairs du tableau et décrémenter par 1 les éléments impairs :\n"); for(i=0; i<n ; i++) if(abs(T[i])%2==0) T[i]++; // pair else T[i]--; // impair printf("le tableau devient:\n"); printf("T[%d]=%d\n", i , T[i]); 11 4 100 9 -2 1 2 3 5 6

10 Exemple : lecture et affichage d'un tableau d'entiers
#define N 20 #include<stdio.h> main(){ int t[N],i; do{printf("nbre elts tab?"); scanf("%d", &n); } while(n<=0 || n> N); printf("Entrer les %d entiers a stocker ds le tableau:\n", n); for (i = 0; i <=n-1; i ++) { printf("T[%d]=", i); scanf("%d", &t[i]); } printf("Le tableau contient: \n"); for (i = 0; i < n; i ++) printf("T[%d]=%d", i, T[i]);

11 Exercice1 Ecrire un prog C qui
déclare un tableau de notes --de taille max 100; Lit les notes à partir du clavier puis calcule la somme et la moyenne de ses valeurs. Compte et affiche le nombre d'étudiants qui ont eu des notes supérieures à la moyenne de la classe

12 Tri tableau #include<stdio.h> #define N 30 main(){
int a[N], n, i=0, tmp, j=0; printf("taille tableau?"); scanf("%d", &n); printf("entrer les elts du tableau\n"); for(i=0;i<n;i++) scanf("%d", &a[i]); for(i=0;i<n;i++) //On veut remplir la case i du tableau { for(j=i+1;j<n;j++) //On vérifie s'il n'y a pas de nombre inférieur dans les cases suivantes if(a[j]<a[i]) //Si c'est le cas on echange les valeurs tmp=a[i]; a[i]=a[j]; a[j]=tmp; } printf("apres tri les elts du tableau\n"); for(i=0;i<n;i++) printf("%d ", a[i]);

13 Ecrire un programme C qui:
On considère le polynôme: Qui sera représenté sous forme d'un tableau à une dimension 1 n a0 a1 an indice coefficient Ecrire un programme C qui: lit un nombre n qui sera la puissance maximale du polynôme. lit les coefficients des monômes c'est à dire ai (les valeurs réelles des éléments du tableau). lit une puissance et affiche son coefficient. imprime les puissances ayant un coefficient nul. lit une valeur pour x et donne la valeur du polynôme. réécrire la question e) sous forme d'une fonction qui prend un réel et un tableau et qui retourne la valeur du polynôme.

14 Fiche EXERCICES sur les tableaux


Télécharger ppt "Tableaux en C Mardi 2/05."

Présentations similaires


Annonces Google