You are on page 1of 27

Algorithmique (suite)

Tableaux 2 dimensions

Ce qui a t vu
Langage VBA Quelques algorithmes sur les tableaux une dimension

Plan
Tableau deux dimensions Lecture Quelques algorithmes

Tableau deux dimensions


Dclaration: Variable nomT:Tableau[val1, val2] de type Ex: Variable T:Tableau[3,2] dentiers T est une variable de type tableau dentiers deux dimensions. La premire dimension a une taille gale 3 et la deuxime a une taille gale 2 T peut tre vue comme une matrice 3 lignes et 2 colonnes.
4

Tableau deux dimensions


Soit T[n, m] un tableau dentiers:
T contient n * m cases. Ex: Dans lexemple prcdent, T contient 6 cases.

T(i,j) dsigne la case se trouvant


La ligne i La colonne j

Tableau deux dimensions


Lecture : tout comme le tableau 1 dimension, il faut faire la lecture case par case Soit T[n,m] Pour i = 1 n Pour j = 1 m Lire( T(i,j) ) Fin Pour Fin Pour
6

Tableau 2 dimensions
Soit T la matrice 2 lignes et 3 colonnes suivantes: 3 4 1
-1 6 0

Que vont afficher les instructions suivantes?


Pour i = 1 3 Pour j = 1 2 Ecrire (T(j,i)) Fin Pour Fin Pour Pour i = 1 2 Pour j = 1 3 Ecrire (T(i,j)) Fin Pour 7 Fin Pour

Algorithme 1
Soit T une matrice carre de 3 lignes et 3 colonnes. Ecrire un algorithme qui
Lit T puis Affiche un message informant si la matrice est symtrique ou pas

Algorithme 1
Pour la lecture de T Pour i = 1 3 Pour j = 1 3 Lire ( T(i,j) ) Fin Pour Fin Pour

Algorithme 1
Vrifier si T est symtrique:
Rappel, T est symtrique si T(i,j) = T(j,i) pour tout i et j

Ide: Dabord supposer que T est symtrique


S = Vrai (S est une variable boolenne qui peut prendre soit la valeur Vrai soit la valeur Faux) Ensuite, comparer chaque case T(i,j) avec la case T(j,i).
Si elles sont diffrentes alors affecter la valeur Faux S

A la fin, il suffit de voir la valeur de S pour savoir si la matrice est symtrique ou pas
10

Algorithme 1
S Vrai Pour i = 1 3 Pour j = 1 3 Si T(i,j) T(j,i) Alors S Faux FinSi Fin Pour Fin Pour
11

Algorithme 1
Remarques sur la boucle prcdente
On compare T(1,1) avec T(1,1), T(2,2) avec T(2,2) et T(3,3) avec T(3,3) Quand
i=1 et j=2, on compare T(1,2) avec T(2,1) I=2 et j=1, on compare T(2,1) avec T(1,2) travail en plus

12

Algorithme 1
Pour i = 1 3 Pour j = i+1 3 Si T(i,j) T(j,i) Alors S Faux FinSi Fin Pour Fin Pour
13

Algorithme 1
Algorithme ex1 Variable i,j: entier Variable T:Tableau[3,3] dentiers Dbut Pour i = 1 3 Pour j = 1 3 Lire( T(i,j) ) FinPour Fin Pour Pour i = 1 3 Pour j = i+1 3 Si T(i,j) T(j,i) Alors S Faux FinSi Fin Pour Fin Pour Si S = Vrai Alors Ecrire( symtrique ) FinSi Sinon Ecrire( non symtrique FinSinon Fin

14

Algorithme 2
Ecrire un algorithme qui
Lit une matrice M[3,3] puis Remplace M par M (sa matrice symtrique)

15

Algorithme 2
Ide:
Il sagit donc dchanger les valeurs des cases T(i,j) et T(j,i) pour toutes les valeurs de i et j

16

Algorithme 2
Premire proposition (on verra quelle est fausse) Pour i = 1 3 Pour j = 1 3 Z T(i,j) T(i,j) T(j,i) T(j,i) Z Fin Pour Fin Pour
17

Algorithme 2
Solution : Pour i = 1 3 Pour j = i +1 3 Z T(i,j) T(i,j) T(j,i) T(j,i) Z Fin Pour Fin Pour
18

Algorithme 3
Soit T1[n, p] et T2[p, m] deux matrices dentiers
Donner la partie de lalgorithme qui permet de calculer le produit matriciel T1 * T2 en mettant le rsultat dans T3[n, m]

19

Algorithme 3
Ide :
Il suffit pour cela de voir la formule dfinissant les lments T3[i,j] T3[i,j] est obtenu en ralisant le produit un un de la ligne i de T1 avec la colonne j de T2 et en calculant la somme.

T3[i, j] T1[i, k] *T2[k, j]


k 1
20

Algorithme 3
Pour i = 1 n Pour j = 1 m T3[i,j] 0 on lintialise 0 Pour K = 1 p T3[i,j] T3[i,j]+ T1[i,k]*T2[k,j] Fin Pour Fin Pour Fin Pour
21

Algorithme 4
Soit T1 et T2 deux matrices de nombres rels. Ecrire la partie de lalgorithme qui permet de tester si T2 est la matrice inverse de T1. Rappel : T2 est la matrice inverse de T1 ssi T1*T2 est la matrice identit

22

Algorithme 4
Ide:
On saisit T1 et T2 On fait le produit de T1 par T2 et on met le rsultat dans T3 On vrifie si T3 est la matrice identit

23

Algorithme 4
Comment vrifier que T3 est ou non la matrice identit ?
Il faut que tous les lments de la diagonale soient gaux 1 Tous les autres sont nulles

Ide :
On suppose dabord que T3 est lidentit Puis on teste

24

Algorithme 4
Id Vrai Pour i = 1 n Pour j = 1 n Si i = j ET T(i,j) 1 Alors Id Faux FinSi Si i j ET T(i,j) 0 Alors Id Faux Fin Si Fin Pour Fin Pour

25

Algorithme 5
Ecrire la partie de lalgorithme qui permet de tester si la matrice T[4,4] dentiers est triangulaire suprieure. Rappel : T est triangulaire suprieure si tous les lments au dessus de la diagonale sont gaux 0

26

Algorithme 6
Soit T une matrice de 3 lignes et 3 colonnes. Donner la portion de lalgorithme qui permet de vrifier si T contient la valeur 1 ou pas

27

You might also like