Correction du TD n°7
Remplissage au clavier d'une matrice.
001 action remplissageMatrice(m)
002 Données-Résultat m : Tableau [N][M] de entier
003 Locales i,j : entier { Indices de boucle pour }
004 pour i de 0 à N-1 faire
005 pour j de 0 à M-1 faire
006 écrire("Valeur d'indice ")
007 écrire(i)
008 écrire(j)
009 lire(m[i][j])
010 fait
011 fait
012 fin action
Creation d'une matrice avec des valeurs aléatoires.
001 fonction creationMatriceAleatoire(l,c,max) : Tableau [][] de entier
002 Données l,c,max : entier
003 Locales i,j : entier { Indices de boucle pour }
004 m : Tableau [l][c] de entier { Matrice creee }
005 pour i de 0 à l-1 faire
006 pour j de 0 à c-1 faire
007 m[i][j] := random(max)
008 fait
009 fait
010 Resultat : m
011 fin fonction
Affichage d'une matrice.
001 action affichageMatrice(m)
002 Données m : Tableau [N][M] de entier
003 Locales i,j : entier { Indices de boucle pour }
004 pour i de 0 à N-1 faire
005 pour j de 0 à M-1 faire
006 écrire("Valeur d'indice ")
007 écrire(i)
008 écrire(j)
009 écrire(m[i][j])
010 fait
011 fait
012 fin action
Recherche de la valeur minimale d'une matrice.
001 fonction minMatrice(m) : entier
002 Données m : Tableau [N][M] de entier
003 Locales i,j : entier { Indices de boucle pour }
004 mini : entier { Minimum recherche }
005 mini := m[0][0]
006 pour i de 0 à N-1 faire
007 pour j de 0 à M-1 faire
008 si m[i][j] < mini alors
009 mini := m[i][j]
010 fsi
011 fait
012 fait
013 Resultat : mini
014 fin fonction
Recherche des indices de la valeur minimale d'une matrice.
001 action indicesMinMatrice(m,imin,jmin)
002 Données m : Tableau [N][M] de entier
003 Résultats imin,jmin : entier
004 Locales i,j : entier { Indices de boucle pour }
005 imin := 0
006 jmin := 0
007 pour i de 0 à N-1 faire
008 pour j de 0 à M-1 faire
009 si m[i][j] < m[imin][jmin] alors
010 imin := i
011 jmin := j
012 fsi
013 fait
014 fait
015 fin action
Recherche de la somme de la diagonale d'une matrice.
001 fonction sommeDiagonaleMatrice(m) : entier
002 Données m : Tableau [N][M] de entier
003 Locales i,j : entier { Indices de boucle pour }
004 s : entier { Somme recherche }
005 s := 0
006 pour i de 0 à N-1 faire
007 pour j de 0 à M-1 faire
008 s := s + m[i][j]
009 fait
010 fait
011 Resultat : s
012 fin fonction
Recherche du produit de deux matrices carrées.
001 fonction produitMatriceMatrice(m1,m2) : Tableau [N][N] de entier
002 Données m1,m2 : Tableau [N][N] de entier
003 Locales i,j,k : entier { Indices de boucle pour }
004 m : Tableau [N][N] de entier { Matrice recherchee }
005 pour i de 0 à N-1 faire
006 pour j de 0 à N-1 faire
007 m[i][j] := 0
008 pour k de 0 à N-1 faire
009 m[i][j] := m[i][j] + m1[i][k]*m2[k][j]
010 fait
011 fait
012 fait
013 Resultat : m
014 fin fonction
Recherche du produit de deux matrices de tailles quelconques (mais compatibles).
001 fonction produitMatriceMatrice2(m1,m2) : Tableau [N][P] de entier
002 Données m1 : Tableau [N][M] de entier
003 m2 : Tableau [M][P] de entier
004 Locales i,j,k : entier { Indices de boucle pour }
005 m : Tableau [N][P] de entier { Matrice recherchee }
006 pour i de 0 à N-1 faire
007 pour j de 0 à P-1 faire
008 m[i][j] := 0
009 pour k de 0 à M-1 faire
010 m[i][j] := m[i][j] + m1[i][k]*m2[k][j]
011 fait
012 fait
013 fait
014 Resultat : m
015 fin fonction
Copie d'une matrice.
001 fonction copieMatrice(t) : Tableau [l][c] de entier
002 Données t : Tableau [l][c] de entier
003 Locales i,j : entier { Indices de boucle pour }
004 m : Tableau [l][c] de entier { Matrice creee }
005 pour i de 0 à l-1 faire
006 pour j de 0 à c-1 faire
007 m[i][j] := t[i][j]
008 fait
009 fait
010 Resultat : m
011 fin fonction
Test de la propriété de réflexivite d'une relation d'ordre total sur un ensemble. Cette relation est représentée par une matrice de booléens.
Auteur: Nicolas JANEY
UFR Sciences et Techniques
Université de Besançon
16 Route de Gray, 25030 Besançon
nicolas.janey@univ-fcomte.fr