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 :

matrice problèmes !


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2012
    Messages : 1
    Par défaut matrice problèmes !
    bonjour j'ai un exercice a résoudre et je dois avouer que je ne sais pas d'ou le commencer, alors un peut d'aide serait la bienvenue !!
    le problème est le suivant :
    soit une matrice creuse d'entiers donnée ( une matrice contenant beaucoup plus de valeurs nulles que de valeurs non nulles). Ecrire une procédure qui représente cette matrice creuse sous forme de deux tableaux. le premier tableau donne, pour chaque ligne de la matrice creuse, le nombre d'elements non nuls et les numéros de colonne ou ils se trouvent. le second contint les valeurs des élements non nuls.
    EXEMPLE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                                         11  0  0  0
    matrice creuse donnée :               0  0  0  0
                                          0  3  0  6
                                          0  0  0  0
    résultat:
    tableau 1: ( 1 0 0 2 1 3 0 ) nombres d'elements non nules + n colonnes

    tableau 2: (11 3 6 ) élements non nuls.


    et voila
    désolé pour la matrice c le mieux que g pu faire :/

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 478
    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 478
    Par défaut
    Si c'est en C que tu dois résoudre cet exercice, alors il te faudra mener de front deux problèmes distincts :
    1. La problématique proprement dite (trouver les éléments adéquats) ;
    2. L'allocation dynamique de mémoire pour gérer les tableaux dont tu ne connais pas la taille à l'avance.


    Je te conseille donc de laisser de côté le point numéro 2 et de choisir à l'avance une matrice de taille fixe dont tu établiras les dimensions avec des « #define ». Tu recompileras le programme si tu veux en changer. Tu définira donc ta matrice dans un tableau à deux dimensions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        int matrice [lignes][colonnes];
    Ensuite, dans le « pire » cas où la matrice ne serait pas creuse mais pleine, ton premier tableau doit contenir l'équivalent d'exactement une colonne de plus que ta matrice, pour contenir le nombre d'éléments non nuls, puis les positions de chaque colonne: Soit (colonnes+1)×lignes.

    Enfin, ton deuxième tableau doit contenir, toujours au pire, tous les éléments de ta matrice. Il doit donc faire exactement la même taille. Donc colonnes×ligne.

    Une fois que c'est fait, tu définis deux variables d'index qui commencent à zéro et servant à remplir tes tableaux. Chaque fois que tu ajoutes une valeur, quelle qu'elle soit, dans un de ces deux tableaux, tu incrémentes l'index correspondant. Puis tu déclares deux variables i et j servant d'indices de boucle, et tu fais deux « for » imbriqués. Le premier servant à parcourir chaque ligne et le second, pour chaque ligne, à parcourir les colonnes.

    À l'intérieur de ces de boucles, tu examines l'élément [i][j] et s'il est non nul, tu ajoutes respectivement l'élément à ton second tableau.

    Pour remplir le premier tableau, il te faut une dernière variable, temporaire, qui sert à se souvenir de l'index de ton premier tableau au fur et à mesure que tu vas le remplir, pour tenir à jour le compte d'éléments que tu vas recenser. Tu mets cette variable à jour à chaque fois que tu finis une ligne, c'est-à-dire juste après la fin du for(j); mais avant la fin du for(i).


    J'évite volontairement de te donner du code tout fait.

Discussions similaires

  1. transposé d'une matrice : problème
    Par sagat06 dans le forum R
    Réponses: 2
    Dernier message: 26/08/2013, 09h43
  2. [2008] Export PDF et matrice: problème de marge
    Par HelpmeMM dans le forum SSRS
    Réponses: 3
    Dernier message: 09/08/2011, 11h41
  3. Réponses: 10
    Dernier message: 02/03/2009, 17h24
  4. Réponses: 4
    Dernier message: 19/02/2006, 18h18
  5. Sérieux problème matrice mal conditionné
    Par maamar dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 29/05/2005, 23h57

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