Université de Montpellier II — DEUG MASS — niveau 1 —
période 2 — Informatique
Contrôle Continu d’Informatique — mai 2004 — 1h30
NOM PRENOM Numéro d’étudiant
Écrire les trois algorithmes
sur cette feuille. Les trois questions sont sur 6, 8 et 6 pts (soit 20 !)
On souhaite implémenter
une fonction d’addition de deux matrices. Une matrice est un tableau à deux
dimensions. Soit une matrice A, un élément de A est noté A[i,j] avec
0≤i≤largeur(A)-1 et 0≤j≤hauteur(A)-1. Si C = A+B (A de
dimensions N*P, B de dimensions N*P, et C de dimensions N*P) alors :
C[i,j] = A[i,j]+B[i,j]
Q1 Définir
et écrire la procédure add_matrice(A,B,C :
matrice)
On souhaite implémenter
une fonction de multiplication de deux matrices. Si C = A*B (A de dimensions
N*P, B de dimensions P*N, et C de dimensions P*P) alors :
C[i,j] = A[0,j]*B[i,0] + A[1,j]*B[i,1] + … +
A[N-1,j]*B[i,N-1]
Q2 Définir et écrire la procédure, calculer_case(A,B,C :matrice ; i,j : entier)
qui calcule le contenu de la case C[i,j] ;
Q3 Définir et écrire la procédure mult_matrice(A,B,C : matrice)
°°°°°°°°°°°°°°°°°°°°
Les fonctions ne renvoient rien, elles se contentent d’écrire dans la bonne case de C le résultat.
Q1 :
Fonction add_matrice(A,B,C : matrice) --> rien
Pour i de 0 à N-1 faire
Pour j de 0 à N-1 faire
C[i,j] <-- A[i,j] + B[i,j]
Fin pour
Fin pour
Fin
Q2 :
Fonction calculer_case(A,B,C :matrice ; i,j : entier) --> rien
C[i, j] <-- 0
Pour k de 0 à N-1 faire
C[i,j] <-- C[i,j] + A[k,j]*B[i,k]
Fin pour
Fin
Q3 :
Fonction mult_matrice(A,B,C : matrice) --> rien
Pour i de 0 à N-1 faire
Pour j de 0 à N-1 faire
calculer_case(A, B, C, i, j)
Fin pour
Fin pour
Fin