Matrice Creuse vs Matrice réduite

Makoumba -  
 nabil_infs -
Bonjour,

J'ai un gros probleme avec les matrices!!!Elles m'aiment pas l0l

k sérieusement j'ai aucune idée comment faire un programme (C++) qui crée une matrice réduite (MatrReduite[][]) à partir d'une matrice creuse (MartCreuse[4][7]) qui contient des valeurs entières et que si la matrice creuse contient plus de 50% de valeurs non nulles, il faut que le programme avertisse que la création de la matrice réduite n'est pas efficace (j'image qu'il faut pour ça un if dans une grosse boucle for...ou sinon un while..jme trompe peut-être et à mon avis surment!)
En gors le programme doit permettre à l'usager d'entrer les valeur de la matrice creuse, d'afficher cette matrice et si possible la matrice réduite.

Je sais que jvous pose le probleme comme ça...mais c'est-à-dire que je débute dans le domaine jai de vague notion sur les boucles et pour les tableaux jsais qu'afficher la position d'une valeur. Bref j'espère que vous aller m'aider ou sinon bien m'orienter sur le problème...merci d'avance!
Configuration: Windows XP
Firefox 2.0.0.11

7 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    En notation algorithmique :
    mat : Matrice à nbLignes et nbColonnes
    caseNulle : entier
    coeff : double
    
    caseNulle=0
    Pour i de 0 à nbLignes Faire
       Pour j de 0 à nbColonnes Faire
            Si (mat[i][j] == 0) Alors 
               caseNulle=caseNulle+1 
            FinSi
       FinPour
    FinPour
    coeff= caseNulle / (i*j)
    
    Si(coeff>0.5) Alors
        MatriceReduite(mat)
    FinSi
    
    
    4
  2. nabil_infs
     
    opération sur la matrice creuse en c++
    2
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Pour tester l'efficacité d'une matrice réduite. Tu peux parcourir toutes les cases de ta matrice, tu testes si la case est vide, si oui tu augmentes une variable caseNulle. Une fois toutes les cases parcourues, tu divises caseNulle par le nombre de cases totales.
    Si le nouveau résultat est supérieur à 0.5 alors, une matrice réduite serait intéressante.

    En espérant t'avoir aidé.

    Bon code
    1
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,

    Je pense qu'avec l'ensemble des posts, tu as moyen de comprendre toute seule ;)
    0
  6. Makoumba
     
    ha ha ! c'est correcte ...UN GROS MERCI !!! ;) je sais pas pourquoi j'ai fais un blocage là-dessus...Tout va pour le mieux maintenant, sauf qu'il faudrait que je renforce mes bases. Est-ce que t'a des titres de livre ou des sites pour que je puisse m'améliorer. Je connais celui de
    https://openclassrooms.com/fr/ ,mais il n'y a pas trop d'exercices ....

    En tout cas, merci encore
    0