Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

produit matriciel en c

  1. woshou

    Date d'inscription
    août 2015
    Messages
    259

    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");
        }
    }

    -----

     


    • Publicité



  2. pm42

    Date d'inscription
    juillet 2015
    Messages
    3 866

    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. Chanur

    Date d'inscription
    septembre 2011
    Messages
    1 143

    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 ?
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.
     

  4. CM63

    Date d'inscription
    juin 2006
    Localisation
    Un peu au large de la faille de Limagne
    Âge
    64
    Messages
    3 213

    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. woshou

    Date d'inscription
    août 2015
    Messages
    259

    Re : produit matriciel en c

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


    • Publicité




    • Publicité







Sur le même thème :





 

Discussions similaires

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