SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
1
Algorithmique (suite)
Tableaux à 2 dimensions
2
Plan
• Tableau à deux dimensions
• Lecture
• Quelques algorithmes
3
Tableau à deux dimensions
• Déclaration:
Variable nomT:Tableau(val1, val2) de type
Ex:
Variable T:Tableau(3,2) d’entiers
T est une variable de type tableau d’entiers à
deux dimensions.
La première dimension a une taille égale à 3
et la deuxième 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 d’entiers:
– T contient n * m cases.
– Ex: Dans l’exemple précédent, T contient
6 cases.
• T(i,j) désigne la case se trouvant à
– La ligne i
– La colonne j
5
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:
• Que vont afficher les instructions
suivantes?
0
6
-1
1
4
3
Pour i = 1 à 2
Pour j = 1 à 3
Ecrire (T(i,j))
Fin Pour
Fin Pour
Pour i = 1 à 3
Pour j = 1 à 2
Ecrire (T(j,i))
Fin Pour
Fin Pour
7
Algorithme 1
• Soit T une matrice carrée de 3 lignes et
3 colonnes.
• Ecrire un algorithme qui
– Lit T puis
– Affiche un message informant si la matrice
est symétrique ou pas
8
Algorithme 1
• Pour la lecture de T
Pour i = 1 à 3
Pour j = 1 à 3
Lire ( T(i,j) )
Fin Pour
Fin Pour
9
Algorithme 1
• Vérifier si T est symétrique:
– Rappel, T est symétrique si T(i,j) = T(j,i)
pour tout i et j
• Idée: D’abord supposer que T est
symétrique
• S = 1
• Ensuite, comparer chaque case T(i,j) avec la
case T(j,i).
– Si elles sont différentes alors affecter la valeur 0 à S
• A la fin, il suffit de voir la valeur de S pour
savoir si la matrice est symétrique ou pas
10
Algorithme 1
S  1
Pour i = 1 à 3
Pour j = 1 à 3
Si T(i,j) ≠ T(j,i) Alors
S  0
FinSi
Fin Pour
Fin Pour
11
Algorithme 1
• Remarques sur la boucle précédente
– 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  0
FinSi
Fin Pour
Fin Pour
13
Algorithme 1
Algorithme ex1
Variable S,i,j: entier
Variable T:Tableau(3,3)
d’entiers
Début
Pour i = 1 à 3
Pour j = 1 à 3
Lire( T(i,j) )
FinPour
Fin Pour
S  1
Pour i = 1 à 3
Pour j = i+1 à 3
Si T(i,j) ≠ T(j,i) Alors
S  0
FinSi
Fin Pour
Fin Pour
Si S = 1 Alors
Ecrire(« symétrique »)
Sinon
Ecrire(« non symétrique »
FinSi
Fin
14
Algorithme 2
• Ecrire un algorithme qui
– Lit une matrice M(3,3) puis
– Remplace M par M’ (sa matrice
symétrique)
15
Algorithme 2
• Idée:
– Il s’agit donc d’échanger les valeurs des
cases T(i,j) et T(j,i) pour toutes les valeurs
de i et j
16
Algorithme 2
• Première proposition (on verra qu’elle
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
d’entiers
– Donner la partie de l’algorithme qui
permet de calculer le produit matriciel
T1 * T2 en mettant le résultat dans
T3(n, m)
19
Algorithme 3
• Idée :
– Il suffit pour cela de voir la formule
définissant les éléments T3(i,j)
– T3(i,j) est obtenu en réalisant le produit un
à un de la ligne i de T1 avec la colonne j
de T2 et en calculant la somme.
j]
T2[k,
*
k]
T1[i,
j]
T3[i,
m
1
k
∑
=
=
20
Algorithme 3
Pour i = 1 à n
Pour j = 1 à m
T3(i,j)  0 ‘ on l’intialise à 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 réels.
• Ecrire la partie de l’algorithme 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
• Idée:
– On saisit T1 et T2
– On fait le produit de T1 par T2 et on met le
résultat dans T3
– On vérifie si T3 est la matrice identité
23
Algorithme 4
• Comment vérifier que T3 est ou non la
matrice identité ?
– Il faut que tous les éléments de la
diagonale soient égaux à 1
– Tous les autres sont nuls
• Idée :
– On suppose d’abord que T3 est l’identité
– Puis on teste
24
Algorithme 4
S  1
Pour i = 1 à n
Pour j = 1 à n
Si i = j ET T(i,j) ≠ 1 Alors
S  0
FinSi
Si i ≠ j ET T(i,j) ≠ 0 Alors
S  0
Fin Si
Fin Pour
Fin Pour
25
Algorithme 5
• Ecrire la partie de l’algorithme qui
permet de tester si la matrice T(4,4)
d’entiers est triangulaire supérieure.
• Rappel : T est triangulaire supérieure si
tous les éléments 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 l’algorithme qui
permet de vérifier si T contient la
valeur 1 ou pas

Contenu connexe

Similaire à Algo3.pdf

Similaire à Algo3.pdf (9)

Corrigé iscae informatique 2013
Corrigé iscae informatique 2013Corrigé iscae informatique 2013
Corrigé iscae informatique 2013
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-recherche
 
Courbes
CourbesCourbes
Courbes
 
Coursasdch3
Coursasdch3Coursasdch3
Coursasdch3
 
Cours as dch3
Cours as dch3Cours as dch3
Cours as dch3
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Cours_3_0910_2.pdf
Cours_3_0910_2.pdfCours_3_0910_2.pdf
Cours_3_0910_2.pdf
 
Cours_3_0910.pdf
Cours_3_0910.pdfCours_3_0910.pdf
Cours_3_0910.pdf
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrents
 

Plus de Wafaa Ibrihich

Plus de Wafaa Ibrihich (7)

algorithmique.pdf
algorithmique.pdfalgorithmique.pdf
algorithmique.pdf
 
5e8a000b9840a.pdf
5e8a000b9840a.pdf5e8a000b9840a.pdf
5e8a000b9840a.pdf
 
Algorithmique de base.pdf
Algorithmique de base.pdfAlgorithmique de base.pdf
Algorithmique de base.pdf
 
cours_python.pdf
cours_python.pdfcours_python.pdf
cours_python.pdf
 
algo-imsi-2.pdf
algo-imsi-2.pdfalgo-imsi-2.pdf
algo-imsi-2.pdf
 
LatexPourLeProfDeMaths.pdf
LatexPourLeProfDeMaths.pdfLatexPourLeProfDeMaths.pdf
LatexPourLeProfDeMaths.pdf
 
taille.pdf
taille.pdftaille.pdf
taille.pdf
 

Algo3.pdf

  • 2. 2 Plan • Tableau à deux dimensions • Lecture • Quelques algorithmes
  • 3. 3 Tableau à deux dimensions • Déclaration: Variable nomT:Tableau(val1, val2) de type Ex: Variable T:Tableau(3,2) d’entiers T est une variable de type tableau d’entiers à deux dimensions. La première dimension a une taille égale à 3 et la deuxième a une taille égale à 2 T peut être vue comme une matrice à 3 lignes et 2 colonnes.
  • 4. 4 Tableau à deux dimensions • Soit T(n, m) un tableau d’entiers: – T contient n * m cases. – Ex: Dans l’exemple précédent, T contient 6 cases. • T(i,j) désigne la case se trouvant à – La ligne i – La colonne j
  • 5. 5 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. 6 Tableau à 2 dimensions • Soit T la matrice à 2 lignes et 3 colonnes suivantes: • Que vont afficher les instructions suivantes? 0 6 -1 1 4 3 Pour i = 1 à 2 Pour j = 1 à 3 Ecrire (T(i,j)) Fin Pour Fin Pour Pour i = 1 à 3 Pour j = 1 à 2 Ecrire (T(j,i)) Fin Pour Fin Pour
  • 7. 7 Algorithme 1 • Soit T une matrice carrée de 3 lignes et 3 colonnes. • Ecrire un algorithme qui – Lit T puis – Affiche un message informant si la matrice est symétrique ou pas
  • 8. 8 Algorithme 1 • Pour la lecture de T Pour i = 1 à 3 Pour j = 1 à 3 Lire ( T(i,j) ) Fin Pour Fin Pour
  • 9. 9 Algorithme 1 • Vérifier si T est symétrique: – Rappel, T est symétrique si T(i,j) = T(j,i) pour tout i et j • Idée: D’abord supposer que T est symétrique • S = 1 • Ensuite, comparer chaque case T(i,j) avec la case T(j,i). – Si elles sont différentes alors affecter la valeur 0 à S • A la fin, il suffit de voir la valeur de S pour savoir si la matrice est symétrique ou pas
  • 10. 10 Algorithme 1 S  1 Pour i = 1 à 3 Pour j = 1 à 3 Si T(i,j) ≠ T(j,i) Alors S  0 FinSi Fin Pour Fin Pour
  • 11. 11 Algorithme 1 • Remarques sur la boucle précédente – 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. 12 Algorithme 1 Pour i = 1 à 3 Pour j = i+1 à 3 Si T(i,j) ≠ T(j,i) Alors S  0 FinSi Fin Pour Fin Pour
  • 13. 13 Algorithme 1 Algorithme ex1 Variable S,i,j: entier Variable T:Tableau(3,3) d’entiers Début Pour i = 1 à 3 Pour j = 1 à 3 Lire( T(i,j) ) FinPour Fin Pour S  1 Pour i = 1 à 3 Pour j = i+1 à 3 Si T(i,j) ≠ T(j,i) Alors S  0 FinSi Fin Pour Fin Pour Si S = 1 Alors Ecrire(« symétrique ») Sinon Ecrire(« non symétrique » FinSi Fin
  • 14. 14 Algorithme 2 • Ecrire un algorithme qui – Lit une matrice M(3,3) puis – Remplace M par M’ (sa matrice symétrique)
  • 15. 15 Algorithme 2 • Idée: – Il s’agit donc d’échanger les valeurs des cases T(i,j) et T(j,i) pour toutes les valeurs de i et j
  • 16. 16 Algorithme 2 • Première proposition (on verra qu’elle 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. 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. 18 Algorithme 3 • Soit T1(n, p) et T2(p, m) deux matrices d’entiers – Donner la partie de l’algorithme qui permet de calculer le produit matriciel T1 * T2 en mettant le résultat dans T3(n, m)
  • 19. 19 Algorithme 3 • Idée : – Il suffit pour cela de voir la formule définissant les éléments T3(i,j) – T3(i,j) est obtenu en réalisant le produit un à un de la ligne i de T1 avec la colonne j de T2 et en calculant la somme. j] T2[k, * k] T1[i, j] T3[i, m 1 k ∑ = =
  • 20. 20 Algorithme 3 Pour i = 1 à n Pour j = 1 à m T3(i,j)  0 ‘ on l’intialise à 0 Pour K = 1 à p T3(i,j) T3(i,j)+ T1(i,k)*T2(k,j) Fin Pour Fin Pour Fin Pour
  • 21. 21 Algorithme 4 • Soit T1 et T2 deux matrices de nombres réels. • Ecrire la partie de l’algorithme 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. 22 Algorithme 4 • Idée: – On saisit T1 et T2 – On fait le produit de T1 par T2 et on met le résultat dans T3 – On vérifie si T3 est la matrice identité
  • 23. 23 Algorithme 4 • Comment vérifier que T3 est ou non la matrice identité ? – Il faut que tous les éléments de la diagonale soient égaux à 1 – Tous les autres sont nuls • Idée : – On suppose d’abord que T3 est l’identité – Puis on teste
  • 24. 24 Algorithme 4 S  1 Pour i = 1 à n Pour j = 1 à n Si i = j ET T(i,j) ≠ 1 Alors S  0 FinSi Si i ≠ j ET T(i,j) ≠ 0 Alors S  0 Fin Si Fin Pour Fin Pour
  • 25. 25 Algorithme 5 • Ecrire la partie de l’algorithme qui permet de tester si la matrice T(4,4) d’entiers est triangulaire supérieure. • Rappel : T est triangulaire supérieure si tous les éléments au dessus de la diagonale sont égaux à 0
  • 26. 26 Algorithme 6 • Soit T une matrice de 3 lignes et 3 colonnes. • Donner la portion de l’algorithme qui permet de vérifier si T contient la valeur 1 ou pas