1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
-2
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
3
|
0
|
0
|
-4
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
Pour coder de telles matrices, on se propose, pour
gagner de l'espace mémoire, d'utiliser un codage ligne de ciel,
beaucoup moins volumineux pour de grandes matrices creuses:
Le codage ligne de ciel utilise trois tableaux:
On utilisera donc le codage suivant:
struct Matrice{int nb_lignes;
int nb_colonnes;
int Mat[50];
int S[51];
int L[50]}
Remarque : Le choix de 50 comme taille des tableaux est tout a fait arbitraire. Si la matrice
de taille 50 lignes par 50 colonnes était pleine, l'espace mémoire nécessaire serait de 50 x 50 = 2500 !
Il faut donc penser à vérifier que l'on ne saisit pas plus de valeurs que de place disponible !
Ecrire une fonction de saisie de matrice retournant un pointeur sur une structure de type Matrice.
I - Affichage de la matrice
Ecrire une fonction d'affichage de la matrice prenant en paramètre
un pointeur sur une structure de type matrice, la matrice devra être
affichée sous forme matricielle explicite :
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
-2
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
3
|
0
|
0
|
-4
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
II - Addition de deux matrices
Ecrire une fonction d'addition de deux matrices retournant une matrice
en résultat, la matrice retournée devra utiliser le codage
ligne de ciel:
Le prototype de la fonction sera le suivant :
struct matrice add_matrice(struct matrice *matrice1, struct matrice *matrice2)
Utiliser le programme crée pour le TP2(gestion de menu) pour
présenter un interface permettant :
Vous pourrez ne donner l'accès aux choix que ceux ci sont
possibles (par exemple, imprimer une matrice alors que celle ci n'est pas
saisie n'est pas possible)
IV - FACULTATIF : Multiplication de deux matrices
Ecrire une fonction de multiplication de deux matrices utilisant le codage ligne de ciel :
struct matrice mult_matrice(struct matrice *matrice1, struct matrice *matrice2)