IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Pascal Discussion :

Calcul de la multiplication de deux matrices


Sujet :

Pascal

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Calcul de la multiplication de deux matrices
    bonjour,
    je n'arrive pas à trouver l'algorythme de ce problème, comment calculer la multiplication de deux matrices.
    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function multi(nbLig1,nbCol1,nbCol2:integer;tab1,tab2:tableau):tableau;
    var  i,j,k:integer;
         tab:tableau;
     
    begin
          for i:=1 to nbLig1 do
              for j:=1 to nbCol2 do
              begin
                  tab[i,j]:=0;
                  for k:=1 to nbCol1 do
                     tab[i,j]+=tab1[i,j+k-1]*tab2[i+k-1,j];
              end;
     
       multi:=tab;
    end;
    merci d'avance pour votre aide
    al_alias

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Jao,

    C'est un pur problème de math. La multiplication de matrices est bien connue, pour ton programme, ça devrait être une simple transcription du cours.

    Petites remarques sur le code:

    - Pour le mettre dans un post, encadre le avec les balises [ code] [ /code], sans les espaces qui ne sont là que pour invalider ces mêmes balises.

    - Dans les paramètres d'une fonction comme celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function multi(nbLig1,nbCol1,nbCol2:integer;tab1,tab2:tableau):tableau;
    il faut éviter d'utiliser le passage par valeur de données de grande taille, comme tes tab1 et tab2.

    Faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function multi(nbLig1,nbCol1,nbCol2:integer;const tab1,tab2:tableau):tableau;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function multi(nbLig1,nbCol1,nbCol2:integer;var tab1,tab2:tableau):tableau;
    si tu n'as pas vu l'utilisation de const pour passer des paramètres à une fonction.

    - dans cette partie du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    begin
    tab[i,j]:=0;
    for k:=1 to nbCol1 do
    tab[i,j]+=tab1[i,j+k-1]*tab2[i+k-1,j];
    end;
    tab[i,j]:=0; est inutile, puisque tu lui attribues une valeur plus loin.

    A ce propos, l'opérateur += n'existe pas en Pascal.

    ici, édité
    ps : comme tu voulais utiliser ce fameux opérateur qui n'existe pas, je suppose que tu voulais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab[i,j] := tab[i,j] + tab1[i,j+k-1]*tab2[i+k-1,j];
    et dans ce cas, il faut bien laisser l'initialisation tab[i,j]:=0;, qui est effectivement nécessaire.

    Je ne vois pas d'où tu as tiré ta formule, qui devrait tout simplement être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab[i,j] := tab[i,j] + tab1[i, k] * tab2[k, j];
    En cherchant un peu, tu aurais trouvé très facilement, ne serait-ce que sur le site de développez : http://www.developpez.net/forums/arc...p/t-11612.html
    page que j'ai trouvée en quelques secondes, passage par Google y compris.
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut merci
    merci beaucoup...
    ça a complété mon projet de fin d'année
    encore merci
    alex

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. multiplication de deux matrices
    Par armand22 dans le forum Débuter
    Réponses: 7
    Dernier message: 05/02/2013, 20h48
  2. multiplication de deux matrices en C
    Par komat dans le forum Débuter
    Réponses: 15
    Dernier message: 15/12/2010, 21h05
  3. multiplication de deux matrice sous matlab
    Par khalil.ajmi dans le forum MATLAB
    Réponses: 4
    Dernier message: 12/05/2010, 16h04
  4. multiplication de deux matrices
    Par ikuzar dans le forum Débuter
    Réponses: 2
    Dernier message: 19/10/2009, 14h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo