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

Macros et VBA Excel Discussion :

Programme produit de deux matrices


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Par défaut Programme produit de deux matrices
    Bonsoir à tous,
    J'ai quelques soucis pour réaliser un programme qui doit permettre de réaliser le produit de deux matrices. Si j'ai bien réussi à déclarer celles-ci et à les afficher correctement dans le tableau excel je sèche sur la manière de procéder pour réaliser le produit en lui même. Voici mon code que j'ai réalisé jusqu'ici :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Option Explicit
    Option Base 1
     
    Sub exo2()
     
    Dim matrice1() As Double
    Dim matrice2() As Double
    Dim matrice3() As Double
    Dim i, j, k As Integer
    Dim a, b As Integer
    Dim c, d As Integer
     
    i = InputBox("Entrer le nombre de lignes de la première matrice")
    j = InputBox("Entrer le nombre de colonnes de la première matrice (qui sera également le nombre de lignes de la seconde matrice).")
    k = InputBox("Entrer me nombres de colonnes de la seconde matrice")
     
    ReDim matrice1(i, j)
    ReDim matrice2(j, k)
    ReDim matrice3(i, k)
     
    For a = 1 To i
    For b = 1 To j
    matrice1(i, j) = InputBox("Entrer le coefficient de la colonne numéro " & b & " de la ligne " & a & " de la matrice 1.")
    Range("H2").Offset(a - 1, b - 1) = matrice1(i, j)
    Next b
    Next a
     
    For c = 1 To j
    For d = 1 To k
    matrice2(j, k) = InputBox("Entrer le coefficient de la colonne numéro " & d & " de la ligne " & c & " de la matrice 2.")
    Range("H2").Offset(c - 1, j + d) = matrice2(j, k)
    Next d
    Next c
     
    End Sub
    Matrice3(i,k) désignant la matrice résultante du produit des deux matrices.


    Merci d'avance pour votre aide.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu as sur Excel PRODUITMAT

    Sinon, je crois que tu as un exercice pédagogique, ci-joint ma réponse
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Option Explicit
    Option Base 1
     
     
    Sub exo2()
    Dim Matrice1() As Double
    Dim Matrice2() As Double
    Dim Matrice3() As Double
    Dim S As Double
    Dim i As Integer, j As Integer, k As Integer
    Dim a As Integer, b As Integer
    Dim c As Integer, d As Integer
     
    i = InputBox("Entrer le nombre de lignes de la première matrice")
    j = InputBox("Entrer le nombre de colonnes de la première matrice (qui sera également le nombre de lignes de la seconde matrice).")
    k = InputBox("Entrer me nombres de colonnes de la seconde matrice")
     
    ReDim Matrice1(i, j)
    For a = 1 To i
        For b = 1 To j
            Matrice1(a, b) = InputBox("Entrer le coefficient de la colonne numéro " & b & " de la ligne " & a & " de la matrice 1.")
            Range("H2").Offset(a - 1, b - 1) = Matrice1(a, b)
        Next b
    Next a
     
    ReDim Matrice2(j, k)
    For c = 1 To j
        For d = 1 To k
            Matrice2(c, d) = InputBox("Entrer le coefficient de la colonne numéro " & d & " de la ligne " & c & " de la matrice 2.")
            Range("H10").Offset(c - 1, d - 1) = Matrice2(c, d)
        Next d
    Next c
     
    ReDim Matrice3(i, k)
    For a = 1 To i
        For b = 1 To k
            For c = 1 To j
                S = S + Matrice1(a, c) * Matrice2(c, b)
            Next c
            Matrice3(a, b) = S
            S = 0
        Next b
    Next a
    Range("H18").Resize(i, k) = Matrice3
    End Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Par défaut
    Bonjour mercatog,

    Effectivement c'est un exercice pédagogique, la fonction PRODUITMAT d'excel ne s'applique donc pas à cet exercice.

    Merci beaucoup pour le programme, il est totalement fonctionnel.
    Je tournais autour du pot pour la partie de la multiplication des matrices en elles-mêmes, c'est très astucieux de dimensionner une nouvelle variable et de l'initialiser à la fin de chaque boucle de la variable c, je n'y aurais pas pensé moi-même !

    Merci encore

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

Discussions similaires

  1. Produit de deux matrices
    Par informaticienne_ing dans le forum Assembleur
    Réponses: 1
    Dernier message: 03/05/2009, 00h51
  2. Produits de deux matrices
    Par pampouna302 dans le forum C
    Réponses: 1
    Dernier message: 09/03/2009, 17h27
  3. Algorithme qui fait le produit de deux matrices
    Par ApprentiDeveloppeur dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 12/11/2008, 16h32
  4. produit de deux matrices
    Par reckahomis1 dans le forum C
    Réponses: 5
    Dernier message: 28/10/2007, 21h25

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