produit matriciel en c
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

produit matriciel en c



  1. #1
    invite82983063

    produit matriciel en c


    ------

    Binjour j'ai le programme suivant pour calculer le produit matriciel j'arrive pas à trouver mon erreur merci bien

    Code HTML:
    #include <stdio.h>
    #define TMAX 20
    
    int main()
    {
        void encode(float *,int *,int *);
        void multiplication(float *,float *,float *,int,int,int,int,int *,int *);
        void affiche(float *,int,int);
        float a[TMAX][TMAX],b[TMAX][TMAX],c[TMAX][TMAX];
        int nla,nca,nlb,ncb,nlc,ncc;
        printf("Encodage de la 1ere matrice\n");
        encode(&a[0][0],&nla,&nca);
        printf("Encodage de la 2eme matrice\n");
        encode(&b[0][0],&nlb,&ncb);
        if(nca==nlb)
        {
            multiplication(&a[0][0],&b[0][0],&c[0][0],nla,nca,nlb,ncb,&nlc,&ncc);
            affiche(&c[0][0],nlc,ncc);
        }
        else
            printf("Multiplication impossible !");
        return 0;
    }
    
    void encode(float *adtab,int *adnl,int *adnc)
    {
        int i,j;
        printf("Entrez le nombre de lignes : ");
        scanf("%d",adnl);
        printf("Entrez le nombre de colonnes : ");
        scanf("%d",adnc);
        for(i=0;i<*adnl;i++)
            for(j=0;j<*adnc;j++)
            {
                printf("Entrez l'element %d %d : ",i+1,j+1);
                scanf("%f",adtab+j+i*TMAX);
            }
    }
    
    void multiplication(float *ada,float *adb,float *adc,int nla,int nca,int nlb,int ncb,int *adnlc,int *adncc)
    {
        int i,j,k;
        *adnlc=nla;
        *adncc=ncb;
        for(i=0;i<nla;i++)
            for(j=0;j<ncb;j++)
            {
                *(adc+j+i*TMAX)=0;
                for(k=0;k<nca;k++)
                    *(adc+j+i*TMAX)+=*(ada+k+i*TMAX)**(adb+j+k*TMAX);
            }
    }
    
    void affiche(float *adtab,int nl,int nc)
    {
        int i,j;
        for(i=0;i<nl;i++)
        {
            for(j=0;j<nc;j++)
                printf("%7.2f",*(adtab+j+i*TMAX));
            printf("\n");
        }
    }

    -----

  2. #2
    pm42

    Re : produit matriciel en c

    Vu que tu ne nous dis pas ce qui se passe, c'est plus compliqué.
    Sinon, coder de la manipulation de matrices entièrement à coup d'additions de pointeurs rend le code beaucoup plus compliqué à lire.
    Tu as une raison pour faire comme ça ?

    Perso, je n'ai pas trop le courage de plonger dedans.

  3. #3
    invite1c6b0acc

    Re : produit matriciel en c

    D'accord avec pm42, en ajoutant que tes notations sont incohérentes : tu définis des tableaux à deux dimensions et tu les utilises comme des tableaux à une dimension.
    Ça va parce que les données d'un tableau en C sont effectivement contiguës, mais c'est illogique.
    Et comme tu stockes tout dans des tableaux de taille fixe, il n'y a aucun problème pour les passer à une fonction.

    Cela dit, j'ai compilé (pas d'erreur) et exécuté ton programme. J'ai fais deux essais et ça a donné le bon résultat.
    Donc, il faut d'abord qu'on devine dans quel cas ça ne marche pas avant de pouvoir débugger.

    Tu veux bien nous aider en nous disant dans quel cas ça ne marche pas ?

  4. #4
    CM63

    Re : produit matriciel en c

    Et même dans ce cas : si on fait float a[TMAX][TMAX] les donnés ne sont pas forcément contiguës.

  5. A voir en vidéo sur Futura
  6. #5
    invite82983063

    Re : produit matriciel en c

    Merci à tous , j'ai reussi à corrigé mes erreurs ^^

Discussions similaires

  1. Produit matriciel
    Par invitef235ecac dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 19/01/2014, 10h47
  2. Produit Matriciel
    Par inviteb36b3ad0 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 28/09/2011, 15h48
  3. Produit matriciel
    Par invite64e915d8 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 19/11/2010, 21h15
  4. Produit vectoriel et produit matriciel
    Par invitee77dafdd dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 11/05/2008, 17h59
  5. produit matriciel
    Par invitec35bc9ea dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 26/11/2007, 00h52