DevInformatique Ralis par HACHIMI SAFAE Module N 2

  • Slides: 11
Download presentation
Dev-Informatique Réalisé par : HACHIMI SAFAE

Dev-Informatique Réalisé par : HACHIMI SAFAE

Module N° 2 : Techniques de programmation structurée Partie 4 : Les Tableaux à

Module N° 2 : Techniques de programmation structurée Partie 4 : Les Tableaux à une dimension • « Si on ment à un compilateur, il prendra sa revanche. » Henry Spencer. 1 - Utilité des tableaux : • Lorsque les données sont nombreuses et de même type, afin d'éviter de multiplier le nombre des variables, on les regroupe dans un tableau. • Le type d'un tableau précise le type (commun) de tous les éléments. 2 - Déclaration/Initialisation : A)-Représentation : variable N : Entier /taille du tableau/ Indice : I 0 I 1 I 2 Elément : V 0 V 1 V 2 variable i : Entier/indice d’itération/ In Vn Syntaxe : tableau type_des_éléments[borne_inf. . . borne_sup] B)-Déclaration : variable T[] : Entier/tableau indice entier[0…N-1]/

 • Ensuite, on peut accéder au i-ème élément du pour (i=0 à N-1)faire

• Ensuite, on peut accéder au i-ème élément du pour (i=0 à N-1)faire tableau en écrivant : T[i] Ecrire(T[i]) • Tab[2] est le troisième élément du tableau Tab fin pour ! ATTENTION: selon les langages de programmation, les tableaux commencent: Ecriture D)-Accès : q à l'indice 1 (pseudo langages, Pascal). • Dans la suite, on écrira juste "lire le tableau T" et "écrire le tableau T". q à l'indice 0 (en C et C++). • Les tableaux à une dimension ou vecteurs. C)- Lire et écrire des tableaux: T[1]=4 T[3]=20 i 0 1 2 3 T[i] 25 4 • Pour lire ou écrire un tableau a de N éléments, N=4 on utilisera des boucle: i=0 DLD 0 pour (i=0 à N-1)faire i=1 DLD 1 écrire ("entrez l‘élément " , i) Lecture i=2 DLD 2 lire (T[i]) i=3 DLD 3 fin pour DLD=Donnée L’élément D’indice i 9 20

Exemple : Ecrire un programme qui permet d’afficher et remplir et afficher les éléments

Exemple : Ecrire un programme qui permet d’afficher et remplir et afficher les éléments du tableau. variable T[10] : Entier /Tableau des entiers/ variable N : Entier /Taille du tableau/ variable i : Entier /indice d’itération/ Début Ecrire("Donner la taille du tableau : " ) Lire(N) pour (i=0 à N-1)faire Ecrire("entrez l‘élément " , i) Lire(T[i]) Lecture fin pour (i=0 à N-1)faire Ecrire(T[i]) fin pour fin Ecriture

3 -Les traitements : Ecrire("entrez l‘élément " , i) A)-Calcule de la somme des

3 -Les traitements : Ecrire("entrez l‘élément " , i) A)-Calcule de la somme des éléments d’un tableau d’une seule dimension : Lire(T[i]) Exp 1: Ecrire un programme qui permet de calculer la somme des elts d’un tableau d’entier T d’une dimension N. variable T[10] : Entier /Tableau des entiers/ variable N : Entier /Taille du tableau/ variable i : Entier /indice d’itération/ Variable S : Entier/Résultat/ Début S<- 0 Ecrire("Donner la taille du tableau : " ) Lire(N) pour (i=0 à N-1)faire fin pour (i=0 à N-1)faire S<-S+T[i] fin pour Ecrire(S) fin Exécution : N=3 T[0 ] T[1 ] T[2 ] 10 14 i=0 8 S=0+T[0]=8 i=1 S=8+T[1]=8+10 i=2 S=18+T[2]=18+14=32

B)-Tri par sélection : Donnée : un tableau A de N nombres entiers A[1];

B)-Tri par sélection : Donnée : un tableau A de N nombres entiers A[1]; : : : ; A[N]. Résultat: Réarrangement croissant B[1]; : : : ; B[N] des nombres A[i]. Problème : Trier les éléments d’un tableau selon l’ordre croissant. Exemple: A= 24 5 81 2 45 B= 2 5 24 45 81 Principe: A la i-ème étape, on cherche le minimum de A[i]; A[i + 1]; : : : ; A[N]et on l‘échange avec A[i]. • Il faut toujours N(N + 1)/2 itérations. Conception : variables A, N, i , j, imin: Entiers /Donnée d’entrée/ Variable temp : Entier/variable d’aide/ Début Ecrire("Donner la taille du tableau : " ) Lire(N) pour (i=0 à N-1)faire Ecrire("entrez l‘élément " , i) Lire(T[i]) fin pour (i <- 0 à N-2 )faire imin <- i /* cherche index du minimum de A[i]. . . A[n] */ pour (j <- i+1 à N-1) faire si (A[j] < A[i]) alors imin <- j fin si fin pour temp <- A[i] /* echange A[i] et A[imin] */ A[i] <- A[imin] <- temp fin pour ecrire le tableau A Fin

C)-Suppression d’un élément dans un tableau : Ecrire("entrez l‘élément " , i) Exp 1:

C)-Suppression d’un élément dans un tableau : Ecrire("entrez l‘élément " , i) Exp 1: Ecrire un programme qui permet de supprimer un élt dans un tableau A(utiliser un autre tableau B). Lire(T[i]) Conception : j <- 0 variable A[] : Entier /Donnée d’entrée/ pour (i=0 à N-1)faire variable B[] : Entier /Donnée de sortie/ si(A[i]<>x)alors variable x : Entier /Donnée élt à supprimer/ B[j]<-A[i] variable i, j : Entier /indice d’itération/ j<-j+1 variable N : Entier /taille du tableau/ finsi fin pour Début fin pour Ecrire("Donner la taille du tableau : " ) pour(i=0 à j-1)faire Lire(N) Ecrire(B[i]) Ecrire("Donner l’élément à supprimer: " ) fin pour Lire(x) fin pour (i=0 à N-1)faire

D)-Insertion dans un tableau : pour (i=0 à N-1)faire Exp 1: Ecrire un algorithme

D)-Insertion dans un tableau : pour (i=0 à N-1)faire Exp 1: Ecrire un algorithme qui permet d’insérer un élt entier x à la fin d’un tableau d’entier T de dimension N. Ecrire("entrez l‘élément " , i) Conception : fin pour variable A[] : Entier /Donnée d’entrée/ N<-N-1 variable x : Entier /Donnée élt à insérer/ T[N-1]<-x variable i : Entier /indice d’itération/ pour(i=0 à N-1)faire variable N : Entier /taille du tableau/ Ecrire(T[i]) Début fin pour Ecrire("Donner la taille du tableau : " ) fin Lire(N) Ecrire("Donner l’élément à insérer: " ) Lire(x) Lire(T[i])

E) Inversion de l’ordre d’un tableau : fin pour Conception : pour( i =

E) Inversion de l’ordre d’un tableau : fin pour Conception : pour( i = 0 à N/2 )faire variable T[] : Entier*Donnée d’entrée* Temp<-T[i ] variable N: Entier *Dimension* T[i]<-T[N-i-1]) variable i: Entier *indice d’itération* T[N-i-1]<-temp variable temp : Entier*Variable d’aide* fin pour Début pour(i=0 à N-1)faire Ecrire("Donner la taille du tableau : " ) Ecrire(T[i]) Lire(N) fin pour (i=0 à N-1)faire fin Ecrire("entrez l‘élément " , i) Lire(T[i])

F)- Recherche d'un élément (méthode naïve) : Ecrire ("Donner l’élément recherché : " )

F)- Recherche d'un élément (méthode naïve) : Ecrire ("Donner l’élément recherché : " ) Exp 1: Ecrire un programme qui permet de recher une Lire(e) élt x dans un tableau T de Dimension N d’entier. la machine affiche le msg existe si le premier élt existe dans le pour (i=0 à N-1)faire tableaux et le msg n’existe pas si les élts x n’existe pas dans le tableau T. Ecrire("entrez l‘élément " , i) Conception : Lire(T[i]) /* calcule le premier i tel que T[i]= e, s'il existe */ fin pour variable T[] : Entier*Donnée d’entrée* i <- 0 variable N: Entier *Dimension* tant que ((trouve = faux) et i<N) faire variable i: Entier *indice d’itération* i <- i+1 variable trouve : Booléen si (T[i] = e)alors trouve <- vrai variable e: Entier *Elément recherché* fin si trouve <- faux fin tant que Début si (trouve=vrai) alors écrire i finsi Ecrire("Donner la taille du tableau : " ) fin Lire(N)

Dev-Informatique MERCI POUR VOTRE ATTENTION

Dev-Informatique MERCI POUR VOTRE ATTENTION