Les Tableaux

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 23

Université Ibn Tofail

Faculté des Science


Département de Physique

Filière : Sciences de la Matière Physique


Module 2 :Analyse Numérique
Semestre 3

Pr. E. M. Chakir
16/05/2024 1
Les tableaux
Supposons que nous avons à déterminer à partir de 30 notes fournies en entrée,
le nombre d’étudiants qui ont une note supérieure à la moyenne de la classe.
Pour parvenir à un tel résultat, nous devons :
1. Lire les 30 notes
2. Déterminer la moyenne de la classe : m
3. Compter combien parmi les 30 notes sont supérieures à la moyenne m.
Il faut donc conserver les notes en mémoire afin qu’elles soient accessibles
durant l’exécution du programme.

16/05/2024 2
Solution 1 : utiliser 30 variables réelles nommées x1, x2, …, x30
Cette façon de faire présente deux inconvénients :
- il faut trouver un nom de variable par note ;
- il n’existe aucun lien entre ces différentes valeurs. Or, dans certains cas, on
est appelé à appliquer le même traitement à l’ensemble ou à une partie de
ces valeurs.
Solution 2 : utiliser la notion de tableau qui consiste à :
- attribuer un seul nom à l’ensemble des 30 notes, par exemple Tnote,
- repérer chaque note par ce nom suivi entre crochets d’un numéro
entre 1 et 30 : Tnote[1], Tnote[2], … Tnote[30].

16/05/2024 3
• Les tableaux permettent de gérer un ensemble de variables de même
type.

• Un tableau est une zone mémoire constituée de cases contiguës où


sont rangées des données de même type. Les cases ont donc une
taille identique. Un tableau possède un nombre fixé de cases qui doit
être connu quand il est créé. La zone mémoire possède donc un
début et une fin. Pour accéder à une case, nous utilisons un indice qui
repère le numéro de la case à laquelle on fait référence.

• L'indice d'un tableau est un index, il y a ainsi un lien étroit entre


tableau et pointeur comme nous allons le voir dans ce chapitre.

• Comme toute variable, une case d'un tableau doit être initialisée
avant d'être utilisée.
16/05/2024 4
Le Tableaux unidimensionnels:
Un tableau à une dimension, appelé aussi vecteur, est une structure de données
constituée d’un nombre fini d’éléments de même type et directement accessibles
par leurs indices ou indexes.
Déclaration d’un tableau
Pour définir une variable de type tableau, il faut préciser :
- le nom (identifiant du tableau)
- l’indice (généralement de type entier ou caractère)
- le type des éléments (entier, réel, caractère, etc.)
on note : Variables
Nom_tab : Tableau [PremInd..DernInd]: Type_éléments
Exemple
Tnote : Tableau[1..30] : Réel Schématiquement, ce tableau peut être représenté
comme suit :
16/05/2024 5
Remarque
Il est également possible de définir un type tableau comme dans l’exemple
suivant :
Variables
T : Tableau[1..n] : Entier

Identification d’un élément du tableau


Un élément dans un tableau est identifié de la façon suivante :
NomTab[position de l’élément]
Cela traduit bien l’accès direct aux éléments du tableau.

16/05/2024 6
Ainsi, Tnote[3] désigne la note du 3ème étudiant et d’une façon générale,
T[i] désigne le ième élément du tableau T.
L’indice i peut être une valeur, une variable ou une expression dont la
valeur appartient à l’intervalle des indices.

16/05/2024 7
Remplissage d’un tableau
Un tableau peut être rempli élément par élément à l’aide d’une série d’affectations :

constante : n=10
Variables
i : Entier
T: Tableau[1..n]:entier
Début
Pour i de 1 à n Faire
Ecrire(‘Entrer un entier : ‘)
Lire(T[i])
FinPour
16/05/2024 8
Fin
Affichage des éléments d’un tableau
L’affichage des éléments d’un tableau se fait également élément par élément.
Seulement, le tableau constitue ici un paramètre donné et non pas un résultat
comme dans la procédure de remplissage.

Constante: n=10
Variables
i : Entier
T: Tableau[1..n]:entier
Début
Pour i de 1 à n Faire
Ecrire(T[i])
FinPour
Fin
16/05/2024 9
Exemple:
Soit T un tableau contenant n éléments de type entier.
Ecrire algorithme qui détermine le plus petit élément de ce tableau.

16/05/2024 10
Solution
On suppose initialement que le premier élément du tableau est le minimum puis on le compare
à tous les autres éléments. Chaque fois qu’on trouve un élément qui lui est inférieur, ce dernier
devient le minimum.
Constante: n=20
Variables
T: Tableau [1..n]:entier
m,i : Entier
Début
m¬ T[1]
Pour i de 2 à n Faire
Si (T[i] < m) Alors
m¬ T[i]
FinSi
FinPour
ecrire (‘le minimum du tableau est’, m)
16/05/2024 Fin 11
Recherche séquentielle d’un élément dans un tableau
Soit T un tableau contenant n éléments de type entier.
On veut écrire une procédure dont l’entête sera :
Procédure recherche(T : Tab, x : Entier)
Cette procédure affiche :

16/05/2024 12
Principe
Comparer x aux différents éléments du tableau jusqu’à trouver x ou atteindre la fin
du tableau.

Constante: n=20
Variables
i : Entier
Début
Pour i de 1 à n Faire
Ecrire(”Entrer un entier : ”)
Lire(T[i])
FinPour
Fin
16/05/2024 13
Tableaux multidimensionnels
Les tableaux multidimensionnels sont des tableaux qui contiennent des
tableau. Par exemple, le tableau bidimensionnel (3 lignes et 4 colonnes)
suivant est en fait un tableau comportant 3 éléments, chacun d’entre eux
étant un tableau de 4 éléments :

16/05/2024 14
Cette matrice peut être définie de la façon suivante :
Variables
Mat : Tableau[1..3,1..4] : Réel
Chaque élément de la matrice est repéré par deux indices :
- le premier indique le numéro de la ligne
- le second indique le numéro de la colonne.
Ainsi, Matrice[2,4] désigne l’élément situé à la 2ème ligne et la 4 ème colonne.
Remarque
Cette représentation est arbitraire, on a pu considérer que le premier indice désigne
la colonne et le second désigne la ligne. Dans ce cas, l’élément Matrice[2,4]
n’existe plus

16/05/2024 15
Remplissage d’un tableau à deux dimensions
Le remplissage d’un tableau bidimensionnel à n lignes et m colonnes se fait à peu près de la
même façon qu’un tableau unidimensionnel.
Seulement, il est nécessaire d’utiliser deux boucles imbriquées correspondant chacune à
l’indice d’une dimension :
Constante:
n= 4, m=5
Variables
matrice: Tableau[1..m,1..n]
i, j : Entier
Début
Pour i de 1 à n Faire
Pour j de 1 à m Faire
Ecrire(”Entrer un entier :”)
Lire(Matrice[i,j])
FinPour
FinPour
Fin
16/05/2024 16
Transposition d’une matrice carrée
Une matrice carrée est une matrice à n lignes et n colonnes.
L’opération de transposition consiste à inverser les lignes et les colonnes en effectuant une
symétrie par rapport à la diagonale principale de la matrice.
Constante : m=3,n=3
Exemple : Variables
i, j, x : Entier
M : Tableau[1..m,1..n]:reel
Début
Pour i de 1 à n Faire
Pour j de (i+1) à n Faire
x¬ M[i,j]
M[i,j] ¬ M[j,i]
M[j,i] ¬ x
FinPour
FinPour
16/05/2024 Fin 17
Somme de deux matrices
Soient M1 et M2 deux matrices à n lignes et m colonnes.
On veut écrire une procédure qui calcule les éléments de la matrice M3=M1+M2

16/05/2024 18
Constante : m=2,n=3 Pour i de 1 à m Faire
Variables Pour j de 1 à n Faire
i, j : Entier M3[i,j] ¬ M1[i,j]+ M2[i,j]
M1,M2,M3: Tableau[1..m,1..n]: reelle FinPour
Début FinPour
Pour i de 1 à m Faire Pour i de 1 à m Faire
Pour j de 1 à n Faire Pour j de 1 à n Faire
lire (M1[i,j]) ecrire(M3[i,j])
FinPour FinPour
FinPour FinPour
Pour i de 1 à m Faire
Pour j de 1 à n Faire Fin
lire( M2[i,j])
FinPour
FinPour

16/05/2024 19
Produit de deux matrices
Soient M1 une matrice ayant n lignes et m colonnes
M2 une matrice ayant m lignes et p colonnes
On veut écrire une procédure qui calcule les éléments de la matrice M3=M1×M2.
Notons d’abord que le nombre de colonnes de M1 doit être égal au nombre de
lignes de M2.
Le produit M3 = M1× M2 est défini comme une matrice ayant n lignes et p
colonnes et dont les éléments sont calculés par la formule :

16/05/2024 20
Produit de deux matrices

Exemple

16/05/2024 21
Constante : m=2,l=3,n=3 Pour i de 1 à n Faire
Variables Pour j de 1 à m Faire
i, j : Entier M3[i,j] ¬ 0.
M1: Tableau[1..m,1..L] : reelle Pour k de 1 à L Faire
M2: Tableau[1..L,1..n] : reelle M3[i,j] ¬ M3[i,j]+ M1[i,]*M2[i,j]
M3: Tableau[1..m,1..n] : reelle FinPour
Début FinPour
Pour i de 1 à m Faire FinPour
Pour j de 1 à L Faire Pour i de 1 à m Faire
lire (M1[i,j]) Pour j de 1 à n Faire
FinPour ecrire(M3[i,j])
FinPour FinPour
Pour i de 1 à L Faire FinPour
Pour j de 1 à n Faire
lire( M2[i,j]) Fin
FinPour
FinPour
16/05/2024 22
Fin de séance
merci de votre attention

16/05/2024 23

Vous aimerez peut-être aussi