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

Algorithmes et structures de données Discussion :

Débutant en Algorithme


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1
    Par défaut Débutant en Algorithme
    Bonjour,

    Je suis débutant en programmation et je commence par faire des programmes tout simples avec un logiciel appelé ALGORITHMES.EXE
    Je cherche à faire un calcul de matrice.
    Je dois multiplier une matrice 3X3 par une autre 3X3 et obtenir le résultat.
    Voici ce que j'ai fait :

    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
    algo MULTIPLICATION 3X3 ET 3X3
     
    var
       M1[1..3,1..3], M2[1..3,1..3], M3[1..3,1..3] : entier
       i,j,k : entier
     
    Début
     Pour i de 1 à 3
          Pour j de 1 à 3
          afficher("Valeur de la Matrice1 ?, M1[",i)
          afficher(",",j)
          saisir("]=",M1[i,j])
          a_la_ligne
          Finpour
       Finpour
       Pour i de 1 à 3
          Pour j de 1 à 3
          afficher("Valeur de la Matrice1 ?, M2[",i)
          afficher(",",j)
          saisir("]=",M2[i,j])
          a_la_ligne
          Finpour
       Finpour
       Pour i de 1 à 3
          Pour j de 1 à 3
             Pour k de 1 à 3
                M3[i,1]:=M3[i,1]+M1[i,j]*M2[j,k]
             finpour
          Finpour
       Finpour
       a_la_ligne
       afficher("la multiplication des deux matrices est :")
       a_la_ligne
       Pour i de 1 à 3
          Pour j de 1 à 3
          afficher("",M3[i,j])
          Finpour
           a_la_ligne   
       Finpour
    Fin
    Si je rentre les données suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1   -1   1      3   0   -1     6   -1   -7
    3    0    6  X  -2  1   -7 =  15   0    3
    0    2    1      1    0    1     -3   2   15
    le résultat donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    6   -1   -7
    15   0    3
    -3    2    15
    Mais mon résultat obtenu est : -2
    18
    14

    Je cherche aussi à faire multiplier une matrice 3X3 par une matrice 2X3.

    Merci pour votre aide.

  2. #2
    Membre émérite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par défaut
    Salut,

    C'est quoi ce logiciel algorithmes.exe - c'est fourni par ton prof ?
    Parce que là tu as un problème de débuggage, et le langage que tu utilise m'est inconnu (on dirait du pascal)

    Quoiqu'il en soit je dirait que ton erreur est à cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    M3[i,1]:=M3[i,1]+M1[i,j]*M2[j,k]
    qui devrait etre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    M3[i,j]:=M3[i,j]+M1[i,j]*M2[j,k]

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 112
    Par défaut
    Salut,

    Tu auras du mal parceque pour multiplier une matrice (a * b) par une matrice (c * d) il faut que b = c (sinon le produit de matrice n'est pas défini, du moins pas au sens mathématique du terme)

    Sinon ben tu pourrais essayer de pondre illico un algorithme pour calculer le produit d'une matrice (a * b) par une matrice (b*c) (ce qui donne une matrice (a * c))


  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Citation Envoyé par mamelouk
    Parce que là tu as un problème de débuggage, et le langage que tu utilise m'est inconnu (on dirait du pascal)
    C'est du français ! lol

    sinon un debut de piste : tu as trop de boucle for ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Pour i de 1 à 3
          Pour j de 1 à 3
             Pour k de 1 à 3
                M3[i,1]:=M3[i,1]+M1[i,j]*M2[j,k]
             finpour
          Finpour
       Finpour
    Resultat : M3[i,1] se voit attribuer plusieurs valeurs a la suite , et a va donc te retourner seulement la dernier

    par exemple si i = 1

    M3[1,1] = M3[1,1]+M1[1,1]*M2[1,1]
    M3[1,1] = M3[1,1]+M1[1,1]*M2[1,2]
    M3[1,1] = M3[1,1]+M1[1,1]*M2[1,3]
    ....
    M3[1,1] = M3[1,1]+M1[1,1]*M2[3,3]
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Membre émérite
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Par défaut produit matriciel
    Bonjours,

    Voila un exemple general pour le produit matriciel M1(n,p)*M2(q,m)=M3(n,m)

    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
     
    déclarer les variable à utiliser
    saisir les matrice M1,M2
     
    Si q n'egale pas à p  donc ( produit impossible)
    Sinon:
    initialiser M3(n,m) à une matrice nulle
     
    pour i=1 à n
          pour j=1 à m
                 pour k=1 à p
                        M3(i,j)=M3(i,j)+M1(i,k)*M2(k,j)
                 fin pour
          fin pour
    fin pour
    fin sinon
    bon courage

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/01/2015, 16h46
  2. [débutant] Data mining : choix d'algorithme
    Par nemesisTHEone dans le forum Intelligence artificielle
    Réponses: 8
    Dernier message: 08/07/2010, 14h37
  3. [débutant] algorithme de calcul de prix HT/TTC
    Par keren dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 06/06/2009, 12h14
  4. Réponses: 1
    Dernier message: 14/05/2008, 17h31
  5. [Débutante] Mixture gaussien algorithme EM
    Par silainos dans le forum Images
    Réponses: 14
    Dernier message: 21/09/2007, 09h13

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