Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1950 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Affection, Conception Matrice Creuse et Reduite

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Affection, Conception Matrice Creuse et Reduite

n°1961701
DanielRoch​eford
Posté le 30-01-2010 à 19:06:59  profilanswer
 

Bonjour a tous, tout d'abord, je dois vous dire que je suis encore novice dans la progrmmation donc désolé si ce probleme vous paraitra simple et idiot.  
Je vous cite le probleme: Concevoir un programme C++ qui crée une matrice réduite a partir d'une matrice creuse (MatriceCreuse[4][7]) qui contient des valeurs entieres représentant les précipitations pour 4 semaines. Si la matrice Creuse contient plus de 50% de valeurs non nulles, votre programme doit vous avertir que la création de la matrice réduite n'est pas efficace. Le programme doit permettre a l'usager d'entrer les valeurs de la matrice creuse, d'afficher cette matrice et, s,il y a le , la matrice réduite.
 
Mon problème justement c'est que je n'arrive pas a faire en sorte que les données que je rentre au clavier s'affiche correctement comme une matrice.. en effet mon affichage est du style:  
1 0 0 1 1 0 1 1 0 0 1 1 1 1
 
au lieu de:
 1 0 0 1 0
 1 0 1 1 1
 1 0 0 0 1
 0 1 1 0 0
 
je vous montre mon code  

Code :
  1. #include <iostream>
  2. #include <iomanip>   // On utilise les manipulateurs de flux
  3. #include <conio.h>  // pour la fonction getch()
  4. #include <string>
  5. using namespace std;
  6. void main(void){
  7.     int MatrCreuse[4][7];
  8. int MatrReduite[4][7];
  9.     int compteur;
  10.     compteur = 0;
  11. for (int i=0 ; i< 4; i++){
  12.    for (int j=0; j< 7; j++){
  13. cout << "Entrer la veurleur en mm ";
  14. cin >> MatrCreuse[i][j];
  15. }
  16. }// boucle d'afectation de donnée  
  17. cout << endl;
  18. for (int i=0 ; i< 4; i++){
  19.    for (int j=0; j< 7; j++){
  20. cout <<  MatrCreuse[i][j] <<"   ";
  21.   }
  22. }// boucle 2 affichage  de la matrice
  23. for (int i=0 ; i< 4; i++){
  24.    for (int j=0; j< 7; j++){
  25. if (MatrCreuse[i][j] !=0){
  26. compteur++;
  27.     }//condition I
  28.   }
  29. }// boucle de comptage
  30.   if (compteur > MatrCreuse[4][7]/2){
  31. cout << " Creation de Matrice non efficace"<< endl;
  32. }// condition II
  33.   else {
  34.   cout << endl;
  35.   for (int i=0; i< 3 ; i++){
  36.    for (int j=0; j< compteur; j++){
  37.    cout << MatrReduite[compteur][3];
  38.      }
  39.     } // fin d'affichage Matrice Réduite
  40.    }// fin du else  
  41.   _getch();
  42. }// fin de main


 PS: je sais que pour la mtrice Réduite il manque des choses mais pour le moment c,est l'affichage et la conception meme des matrices que j'arrive pas a faire, les conditions pour remplir le tableau de la matrice Réduite , je peux les trouver moi meme.
 
PS2: c'est la première fois que j'utilise les matrices soyez compréhensible  :D .
Merci.

Message cité 1 fois
Message édité par DanielRocheford le 30-01-2010 à 19:09:26
mood
Publicité
Posté le 30-01-2010 à 19:06:59  profilanswer
 

n°1961709
Joel F
Real men use unique_ptr
Posté le 30-01-2010 à 22:01:58  profilanswer
 

c'ets pas des matrices, c'ets des tableaux 2D nuance ...
ensuite, revenir à la ligne entre tes 2 boucles d'affichage serait une bonne idée :o
 

Code :
  1. for (int i=0 ; i< 4; i++){
  2.    for (int j=0; j< 7; j++){
  3.      cout <<  MatrCreuse[i][j] <<"   ";
  4.   }
  5.     cout << "\"n;
  6. }


 
et vire moi ce getch() merdique  ....

n°1961719
DanielRoch​eford
Posté le 31-01-2010 à 07:20:42  profilanswer
 

Ah ok  merci, je pensais qu'on avait pas besoin de revenir a la ligne avec des tableaux 2D lorsqu'on fait MatrCreuse[][] , que le compilateur prenait déja em compte et  le faisait a notre place, mais apparemment je pensais mal ..
 
encore merci d'avoir pris la peine de me répondre, grâce a toi j'ai pu terminer mon travail  :jap:


Message édité par DanielRocheford le 31-01-2010 à 14:04:23
n°1961720
Joel F
Real men use unique_ptr
Posté le 31-01-2010 à 08:15:39  profilanswer
 

le compilateur n'a aucune notion de matrice si tu ne la lui donne pas.
T data[N][M] n'ets qu'un tas de données de type T sans sémantique.
 
boost::multi_array est un exemple de structure de données supportant ce genre de chose.

n°2186254
dakhi
Posté le 17-04-2013 à 13:27:19  profilanswer
 

DanielRocheford a écrit :

Bonjour a tous, tout d'abord, je dois vous dire que je suis encore novice dans la progrmmation donc désolé si ce probleme vous paraitra simple et idiot.  
Je vous cite le probleme: Concevoir un programme C++ qui crée une matrice réduite a partir d'une matrice creuse (MatriceCreuse[4][7]) qui contient des valeurs entieres représentant les précipitations pour 4 semaines. Si la matrice Creuse contient plus de 50% de valeurs non nulles, votre programme doit vous avertir que la création de la matrice réduite n'est pas efficace. Le programme doit permettre a l'usager d'entrer les valeurs de la matrice creuse, d'afficher cette matrice et, s,il y a le , la matrice réduite.
 
Mon problème justement c'est que je n'arrive pas a faire en sorte que les données que je rentre au clavier s'affiche correctement comme une matrice.. en effet mon affichage est du style:  
1 0 0 1 1 0 1 1 0 0 1 1 1 1
 
au lieu de:
 1 0 0 1 0
 1 0 1 1 1
 1 0 0 0 1
 0 1 1 0 0
 
je vous montre mon code  

Code :
  1. #include <iostream>
  2. #include <iomanip>   // On utilise les manipulateurs de flux
  3. #include <conio.h>  // pour la fonction getch()
  4. #include <string>
  5. using namespace std;
  6. void main(void){
  7.     int MatrCreuse[4][7];
  8. int MatrReduite[4][7];
  9.     int compteur;
  10.     compteur = 0;
  11. for (int i=0 ; i< 4; i++){
  12.    for (int j=0; j< 7; j++){
  13. cout << "Entrer la veurleur en mm ";
  14. cin >> MatrCreuse[i][j];
  15. }
  16. }// boucle d'afectation de donnée  
  17. cout << endl;
  18. for (int i=0 ; i< 4; i++){
  19.    for (int j=0; j< 7; j++){
  20. cout <<  MatrCreuse[i][j] <<"   ";
  21.   }
  22. }// boucle 2 affichage  de la matrice
  23. for (int i=0 ; i< 4; i++){
  24.    for (int j=0; j< 7; j++){
  25. if (MatrCreuse[i][j] !=0){
  26. compteur++;
  27.     }//condition I
  28.   }
  29. }// boucle de comptage
  30.   if (compteur > MatrCreuse[4][7]/2){
  31. cout << " Creation de Matrice non efficace"<< endl;
  32. }// condition II
  33.   else {
  34.   cout << endl;
  35.   for (int i=0; i< 3 ; i++){
  36.    for (int j=0; j< compteur; j++){
  37.    cout << MatrReduite[compteur][3];
  38.      }
  39.     } // fin d'affichage Matrice Réduite
  40.    }// fin du else  
  41.   _getch();
  42. }// fin de main


 PS: je sais que pour la mtrice Réduite il manque des choses mais pour le moment c,est l'affichage et la conception meme des matrices que j'arrive pas a faire, les conditions pour remplir le tableau de la matrice Réduite , je peux les trouver moi meme.
 
PS2: c'est la première fois que j'utilise les matrices soyez compréhensible  :D .
Merci.



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Affection, Conception Matrice Creuse et Reduite

 

Sujets relatifs
aide en outil de conceptionOutil de conception de BDD et Visual Studio
determinant matrice carrée fortran 90[cpp] conception sans friend
Probleme de conception réseauParcours matrice.
Exporter en csv une matrice stockée en base[MCD] problème de conception : livraisons et colis
Type de donnée abtrait : Matrice[C] [resolu] lecture matrice alloué dynamiquement
Plus de sujets relatifs à : Affection, Conception Matrice Creuse et Reduite


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR