Résumé sur les tableaux (partie2) A =[10 20 30 40] M= 4 Je veux insérer x = 15
Résumé sur les tableaux (partie2) A =[10 20 30 40] M= 4 Je veux insérer x = 15 à la position pos = 1 T[1]= 15 for(int I = M ; I > pos ;I--) A[I] = A[I-1]; A[I] = x; C’est équivalent à : I = M ; While(I > pos) { A[I] = A[I-1]; I--; } A[I] = x; Execution à la main I = 4 ; I > 1>vrai A[4] = A[3] I = 3 I>1>vrai A[3] = A[2] I = 2 I>1>vrai A[2] = A[1] I = 1 I>1>faux A[1] = 15 A 10 15 20 30 40 I 0 1 2 3 4 Indice Ex1 S=S+U[i]*V[i] Indice Ex2 J’initialise pos à -1 Tester si pos change alors afficher la position de l’elt Val Sinon on a tjrs pos = -1 et donc val n’existe pas Indice Ex3 Nbre d’occurrence d’un caractère c=’c’ dans une chaîne ch Indice Ex4 sur insertion Déjà corrigé Indice Ex5 On va supprimer toutes les occurrences de valeur 0 puis tasser càd compresser le tableau Comme application Ça revient à appliquer l’algo de compression audio MPEG ou bien compression image JPEG A 10 0 20 0 40 I 0 1 2 3 4 Après compression le tableau devient A 10 20 40 I 0 2 4 Correct ex5 N = 5 T 0 10 0 20 30 T 10 20 30 I = 0, j =0 0 I = 1 , j = 0 T[0] = 10 J = 1 I = 2 , j = 1 T[1] = 0 J = 1 I = 3 , j =1 T[1] = 20 J=2 I = 4 T[2] = 30 J = 3 I = 5<5 10 20 30 0 1 2 Indice Ex6 Tri par sélection Résumé sur les pointeurs Int a = 10 ; Int *p ; //déclaration d’un pointeur p = &a ; // p pointe sur l’adresse de a Faire attention il faut que le pointeur et la variable sur laquelle il pointe en même type printf(« %d »,a) ;// il affiche 10 printf(« %d »,*p) ;// il affiche 10 Faire attention p affiche l’adresse où se trouve a dans la mémoire Lorsqu’on par de valeur on doit mettre * devant la variable pointeur p *p = 4 ; printf(« %d »,*p) ;// il affiche 4 printf(« %d »,a) ;// il affiche 4 -On doit déclarer le pointeur en utilisant * int *p ; - on doit pointer sur une variable p= & a ; - Si on change le contenu de p alors automatiquement le contenu de la variable sur lequel pointe le pointeur change. - Pour afficher le contenu d’un pointeur, on doit utiliser * Utilisation des pointeurs dans les tableaux Le pointeur pointe sur le début du tableau donc p = &T[0] ; d’après la normalisation o n peut écrire p = T ; // lecture d'un tableau 1D sans l’utilisation d’un pointeur for (I=0; I<M; I++) scanf("%d", &T[I]); // lecture d'un tableau 1D avec l’utilisation d’un pointeur for (p=T; p<=T+M; p++) scanf("%d", p); - L’initialisation du tableau: pointeur p se pointe sur le début du tableau donc p = &T[0] p = T - Ensuite le p s’incrémente chaque fois de 2 octets (entier) pour passer à l’élément suivant donc p++ - Il faut que le pointeur ne sorte pas du tableau donc le dernier élément à lire est : p=&T[M]<=<> p =T+M donc il ne faut pas que p dépasse cet élément Donc p<=T+M - Chaque fois p se pointe sur un élément du tableau T càd lire &T[i] Donc scanf("%d", p); For (i=0 ;i<N ; i++) scanf(« %d », & T[i]) ; For (p=&T[0], p <&T[N], p++) Scanf(« %d », p) ; p=&T[0] < p =T p=&T[1] < p =T+1 … p=&T[i] < …p = T+i … p=&T[N] < p =T+N For (p=T], p <T+N, p++) Scanf(« %d », p) ; uploads/Litterature/ resume-11-11-2020-c.pdf
Documents similaires










-
29
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 03, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.0693MB