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

 C Discussion :

Parcourir une matrice


Sujet :

C

  1. #1
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut Parcourir une matrice
    Bonsoir,

    Je sais parcourir une matrice normalement case par case :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int tab[4,3];
    for(i=0; i<4; i++) {
     
    for(j=0; j<3; j++) {
     
     
              }
    }
    ou à l'envers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int tab[4,3];
    for(i=4; i >=0; i--) {
     
    for(j=3; j >=0; j--) {
     
     
              }
    }

    Par contre j'ai du mal à parcourir une matrice en ligne ou colonne ou encore en diagonale, j'ai cherché mais rien de bien expliqué et présentable.

    Merci pour des explications.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Bonsoir,

    Ce que tu nous montres n'est pas spécifique au C, mais une simple transposition de ce que tu ferais sur papier, et c'est très bien comme ça.

    Dès lors, qu'est-ce qui t'empêche de procéder de la même façon pour la lire en diagonale ou autre ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    en diagonale, cela donnerait qqch du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for(i = 0 ; i < nLigne ; i++)
      for(j = i ; j < nCol ; j++)
    En ligne ou en colonne, tu figes la colonne ou la ligne...

  4. #4
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    tu as d'autant plus de mal a parcourir en diagonal que ta matrice n'est pas carree.
    une matice carree a deux diagonal principal une montante et une descendante. mais une matrice non carree a des diagonals mais pas de pricipales ex:

    carree
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        0  1  1  1  2    ou les 0 et 2 sont les deux diagonales principales
        1  0  1  2  1
        1  1  0  1  1
        1  2  1  0  1
        2  1  1  1  0    dans se cas pour parcourire c'est simple:
     
    for(i=0;i<n;i++)
         tab[i][i]
    la somme des elements des 2 diagonales S < U avec U = la somme des elements non diagonaux.

    toi ta matrice non carree:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        0  2  4  3   ou les 0,2,3,4 sont tes digonales principales 
        1  0  2  1
        4  3  0  2
    tu appelleras diagonale principale la diagonale la plus longue et dans une matrice carree on ne peut avoir que 2. or dans ta matrice il y en a 4. ici donc S>U

    maintenant en calcul numerique on appelle diagonal tout element Aij de la matrice telque i=j ca devient donc Aii.ou jj ou encore kk si tu preferes

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/11/2013, 22h30
  2. [Débutant] Parcourir une matrice
    Par Ludo1919 dans le forum MATLAB
    Réponses: 15
    Dernier message: 25/08/2010, 15h02
  3. comment parcourir une matrice en cercle ?
    Par info3licen dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 09/05/2010, 18h38
  4. Réponses: 13
    Dernier message: 30/04/2010, 10h27
  5. Parcourir une matrice
    Par tiouba dans le forum MATLAB
    Réponses: 9
    Dernier message: 14/03/2008, 09h34

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