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