Correction du TD n°7

Exercice 1

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

Exercice Supplémentaire

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

Exercice 2

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

Exercice 3

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

Exercice 4

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

Exercice 5

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

Exercice Supplémentaire

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

Exercice 6

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

Exercice Supplémentaire

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