Exercice langage C les fonctions d’algèbre linéaire

Dans cet exercice, vous allez mettre en œuvre les fonctions d’algèbre linéaire que vous avez vues en cours.

  1. Commencez par définir une structure Matrice
    struct Matrice {
      float *tab;
      int nl, nc;
    };

    Ajoutez ensuite le code pour les fonctions get et set permettant d’accéder aux éléments du tableau. Comme suggéré dans le cours, vérifiez que la ligne et la colonne auxquelles on désire accéder sont bien valides. Ajoutez également les fonctions alloue_matrice et affiche.

    Toutes ces fonctions ont été vues en cours, et leur implémentation ne devrait donc pas poser de problèmes.

  2. Rédigez le code d’une fonction copie, dont le but est de copier le contenu d’une matrice dans une autre. La fonction prendra deux arguments: un pointeur sur la matrice source et un autre sur la matrice destination. On suppose que la matrice destination a déjà été allouée. La fonction prendra soin de vérifier que les deux matrices ont bien la même taille, avant d’effectuer la copie.
  3. Ecrivez deux fonctions intitulées set_id et set_0 permettant d’initialiser une matrice à la matrice identité et à la matrice nulle, respectivement. Les en-têtes de ces fonctions devront être :
    bool set_id(Matrice *mat);
    void set_0(Matrice *mat);

    La fonction set_id retournera false si la matrice passée en paramètre n’est pas carrée, et true si l’opération s’est bien passée.

  4. Implémentez une fonction init permettant d’initialiser une matrice. Vous allez écrire une fonction différente pour chaque type de matrice que vous voudrez initialiser. Par exemple, pour initialiser une matrice  2 x 2 , vous devrez écrire la fonction
    void init(Matrice *matrice, float c1, float c2, float c3, float c4)

    alors que pour initialiser une matrice 2 x 3, il faudra utiliser

    void init(Matrice *matrice, float c1, float c2, float c3, float c4, 
              float c5, float c6)

    car elle contient 6 coefficients. Cette dernière fonction peut, par ailleurs, autant servir à initialiser une matrice 3 x 2 que 2 x 3. Soyez donc bien attentifs lorsque vous l’implémentez. On supposera qu’une matrice à 6 coefficients n’a pas la forme 1 x 6 ou 6 x 1, car la structure Vecteur s’occupera de ces cas-là

La correction exercice langage C (voir page 2 en bas)

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *