Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Matériel : piranha, 1 utilisateur anonyme et 29 utilisateurs inconnus

 Mot :   Pseudo :  
 
 Page :  1  2
Page Suivante 
Auteur
 Sujet :

un petit ex en c++

 
n°15042
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 13:46:55  profilanswer
 

Reprise du message précédent :
En fait j'utilise pas dev c++ j'utilise linux

n°15043
Tastito
So lost in love
Profil : Dinosaure
Posté le 24-10-2005 à 13:49:08  profilanswer
 

Ah j'avais vu plus haut que t'utilisais devc++, dans ce cas là enlève tout les system("Pause" );


---------------
"Oh, that girl, you know she really, blows my, head apart,  
And the sky and the stars, all, synkronized...  
Eh no.... No no no, now me and her,  
We are in love... "  
n°15044
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 13:54:06  profilanswer
 

Et je voulais te demander si t'a pas msn.
Ce serait mieux si on communiquait pas msn non?
La j'y vais parce que j'ai cours mais apres 5h je serais la.
Mon truc msn C'est magnum0509@hotmail.com

n°15046
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 16:23:36  profilanswer
 

Salut.J'ai un peu avancé la dans l'execrice mais j'ai tjrs pas términé.
En fait j'ai tapé ceci comme code:

Code :
  1. #include <iostream> 
  2. #include <math.h> 
  3.          
  4. using namespace std; 
  5. const double eps = 0.1; 
  6. const double pi= 4*(atan (1.0)); 
  7.    
  8. double abso(double val)
  9. {
  10.      if (val<0) return -val;
  11.      return val;
  12. }
  13.    
  14. double asin(double x, double epsi) 
  15.      double terme=x, asinus=x, suite=0;
  16.      if(x==1) 
  17.      return asinus= pi/2; 
  18.      if(x==-1) 
  19.      return asinus= -pi/2; 
  20.      for(int i=2; abso(terme)>=eps; i++)
  21.      { 
  22.           suite=1+2*(i-1);
  23.           terme*=x*x*(suite-2) / ( suite*(suite-1) );
  24.           asinus+=terme;
  25.      } 
  26.         return asinus; 
  27.    
  28. void plot_sin(int nb_per, int largeur, int hauteur) 
  29.      double X1; 
  30.      double hautarc = hauteur/2; 
  31.      cout<< "^" << endl; 
  32.  
  33.      for(double i=hautarc; i >= 0; i--) 
  34.      { 
  35.           X1 = asin (i*2/hauteur,eps)*largeur/(2*pi);
  36.           cout << '|';
  37.    
  38.           for(double i=0; i < X1; i++) 
  39.           { 
  40.                cout<< ' ';
  41.           } 
  42.              cout<< 'X'; 
  43.              for(double j=0; j < 2*(largeur/4-X1); j++) 
  44.              { 
  45.                  cout<< ' ';
  46.              } 
  47.              cout<< 'X' << endl;
  48.    
  49.       }
  50.    
  51.          for(double j=0; j >= -hautarc; j--) 
  52.          { 
  53.              X1 = asin (j*2/hauteur,eps)*largeur/(2*pi);
  54.              cout << '|';
  55.              for (double k=0; k<largeur/2; k++) cout << ' ';
  56.              for(double i=0; i < -X1; i++) 
  57.              { 
  58.                  cout<< ' ';
  59.              } 
  60.              cout<< 'X'; 
  61.              for(double j=0; j < 2*(largeur/4+X1); j++) 
  62.              { 
  63.                  cout<< ' ';
  64.              } 
  65.              cout<< 'X' << endl;
  66.           }
  67.    
  68. int main() 
  69. {
  70.          plot_sin(1, 20, 16);
  71. }


 
Mais le truc c'est que le graphe n'est pas tout a fait juste mais presque juste.Voila ce que ca me donne:
 
 
^
|     XX
|    X    X
|   X     X
|   X      X
|  X       X
|  X        X
| X         X
| X          X
|X          X
|          X          X
|           X          X
|           X         X
|            X        X
|            X       X
|             X      X
|             X     X
|              X    X
|               XX
 
 
Voila,j'ai essayé de trouver l'erreur mais j'y arrive pas mais je vais encore essayer.


Message édité par boob05 le 24-10-2005 à 16:24:44
n°15047
Tastito
So lost in love
Profil : Dinosaure
Posté le 24-10-2005 à 18:43:22  profilanswer
 

Ah c'est pas mal :D


---------------
"Oh, that girl, you know she really, blows my, head apart,  
And the sky and the stars, all, synkronized...  
Eh no.... No no no, now me and her,  
We are in love... "  
n°15048
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 18:45:36  profilanswer
 

Ouais je sais je me suis étonné moi meme d'en etre arrivé la!!
Mais ya ce petit truc qui m'enerve un peu

n°15049
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 19:13:37  profilanswer
 

J'ai encore amélioré mon exercice mais il est tjrs pas comme il faut.
Voila ce que j'ai mit comme code:

Code :
  1. #include <iostream> 
  2. #include <math.h> 
  3.          
  4. using namespace std; 
  5. const double eps = 0.1; 
  6. const double pi= 4*(atan (1.0)); 
  7.    
  8. double abso(double val)
  9. {
  10.      if (val<0) return -val;
  11.          return val;
  12. }
  13.    
  14. double asin(double x, double epsi) 
  15.       double terme=x, asinus=x, suite=0;
  16.       if(x==1) 
  17.          return asinus= pi/2; 
  18.       if(x==-1) 
  19.          return asinus= -pi/2; 
  20.       for(int i=2; abso(terme)>=eps; i++)
  21.       { 
  22.            suite=1+2*(i-1);
  23.            terme*=x*x*(suite-2) / ( suite*(suite-1) );
  24.            asinus+=terme;
  25.       } 
  26.          return asinus; 
  27.    
  28. void plot_sin(int nb_per, int largeur, int hauteur) 
  29.      double X1; 
  30.      double hautarc = hauteur/2; 
  31.      cout<< "^" << endl; 
  32.    
  33.      for(double i=hautarc; i >= 0; i--) 
  34.       { 
  35.              X1 = asin (i*2/hauteur,eps)*largeur/(2*pi);
  36.              cout << '|';
  37.    
  38.              for(double i=0; i < X1; i++) 
  39.              { 
  40.                  cout<< ' ';
  41.              } 
  42.              cout<< 'X'; 
  43.       for(double j=1; j <= 2*(largeur/4-X1) - 1; j++) 
  44.          {
  45.             cout<< ' ';
  46.          } 
  47.              cout<< 'X' << endl;
  48.    
  49.       }
  50.    
  51.       for (int k=0; k<nb_per*largeur; k++) cout<<'-';
  52.         cout << endl;
  53.    
  54.         for(double j=1; j >= -hautarc; j--) 
  55.          { 
  56.              X1 = asin (j*2/hauteur,eps)*largeur/(2*pi);
  57.              cout << '|';
  58.              for (double k=0; k<largeur/2; k++) cout << ' ';
  59.              for(double i=0; i < -X1; i++) 
  60.              { 
  61.                  cout<< ' ';
  62.              } 
  63.              cout<< 'X'; 
  64.              for(double j=1; j <= 2*(largeur/4+X1) - 1; j++) 
  65.              { 
  66.                  cout<< ' ';
  67.              } 
  68.              cout<< 'X' << endl;
  69.    
  70.          }
  71. }
  72.    
  73. int main() 
  74. {
  75.          cout << "Nombre de periodes / Largeur totalle / Longueur crete a crete: " << endl;
  76.          int  nb_per, largeur, hauteur; 
  77.          cin>> nb_per >> largeur >> hauteur; 
  78.          plot_sin(nb_per,largeur/nb_per,hauteur);
  79. }


n°15057
boob05
Profil : Jeune recrue
Posté le 25-10-2005 à 16:19:00  profilanswer
 

Salut les gars.Je sais que j'en fais un peu trop mais j'ai besoin de votre aide encore une derniere fois car j'arrive vraiment pas a terminer l'exercice.
J'ai avancé un peu mais je bloque tjrs ( je sais je suis nul  :pfff: )
Voila le code:  

Code :
  1. #include <iostream> 
  2. #include <math.h> 
  3.          
  4. using namespace std; 
  5. const double eps = 0.1; 
  6. const double pi= 4*(atan (1.0)); 
  7.    
  8. double abso(double val)
  9. {
  10.      if (val<0) return -val;
  11.          return val;
  12. }
  13.    
  14. double asin(double x, double epsi) 
  15.       double terme=x, asinus=x, suite=0;
  16.       if(x==1) 
  17.          return asinus= pi/2; 
  18.       if(x==-1) 
  19.          return asinus= -pi/2; 
  20.       for(int i=2; abso(terme)>=eps; i++)
  21.       { 
  22.            suite=1+2*(i-1);
  23.            terme*=x*x*(suite-2) / ( suite*(suite-1) );
  24.            asinus+=terme;
  25.       } 
  26.          return asinus; 
  27.    
  28. void plot_sin(int nb_per, int largeur, int hauteur) 
  29.      double X1;
  30.      int X1_entier; 
  31.      double hautarc = hauteur/2; 
  32.      cout<< "^" << endl; 
  33.      cout << largeur << " " << nb_per << " " << largeur/(nb_per*2)<< endl;
  34.   for(double i=hautarc; i >= 0; i--) 
  35.   { 
  36.           X1 = asin (i*2/hauteur,eps)*largeur/((2*pi*nb_per));
  37.           cout << '|';
  38.        X1_entier = (int) X1;
  39.           //cout << X1 << " " << X1_entier <<endl;
  40.    for(int periode=0; periode < nb_per; periode++)
  41.     {   
  42. for(int j=0; j < X1_entier; j++) 
  43.              { 
  44.                  cout<< ' ';
  45.              } 
  46.              cout<< 'X';
  47.      for(int j=0; j <= 2*((largeur/(4*nb_per)-X1_entier) - 1); j++) 
  48.      {
  49.           cout<< ' ';
  50.      }
  51.           cout<< 'X';
  52.    
  53.      for(int j=0; j < X1_entier; j++) 
  54.      { 
  55.            cout<< ' ';
  56.      }
  57.    
  58.      for(int j=0; j < (largeur/(nb_per*2)); j++) cout << " ";
  59.     }
  60.       cout << endl;
  61.    }
  62.       cout<< '+';
  63.       for (int k=0; k<largeur; k++) cout<<'-';
  64.         cout << '>' << endl;
  65.    
  66.         for(double j=0; j > -hautarc; j--) 
  67.          { 
  68.              X1 = asin (j*2/hauteur,eps)*largeur/(2*pi*nb_per);
  69.              cout << '|';
  70.              for (double k=0; k<largeur/(2*nb_per); k++) cout << ' ';
  71.              for(double i=0; i < -X1; i++) 
  72.              { 
  73.                  cout<< ' ';
  74.              } 
  75.              cout<< 'X'; 
  76.              for(double j=0; j <= 2*(largeur/(4*nb_per)+X1) - 1; j++) 
  77.              { 
  78.                  cout<< ' ';
  79.              } 
  80.              cout<< 'X' << endl;
  81.    
  82.          }
  83. }
  84.    
  85. int main() 
  86. {
  87.          cout << "Nombre de periodes / Largeur totalle / Longueur crete a crete: " << endl;
  88.          int  nb_per, largeur, hauteur; 
  89.          cin>> nb_per >> largeur >> hauteur; 
  90.          plot_sin(nb_per,largeur,hauteur);
  91. }


 
 
Svp aidez moi j'en ai besoin pour demain.

n°15060
Tastito
So lost in love
Profil : Dinosaure
Posté le 25-10-2005 à 19:10:07  profilanswer
 

Perso je bloque aussi :/


---------------
"Oh, that girl, you know she really, blows my, head apart,  
And the sky and the stars, all, synkronized...  
Eh no.... No no no, now me and her,  
We are in love... "  
n°15061
podone
POD first ONE of best game
Profil : Habitué
Posté le 26-10-2005 à 02:19:21  profilanswer
 

Je te propose une solution qui utilise les symetries et vecteur mais apparemment y a une erreur d'arrondi au debut.

Code :
  1. void fctsin(int nb_per, int largeur, int hauteur)
  2. {
  3. double pres = 0.1;
  4. int periode = largeur / nb_per;
  5. int demi = periode / 2;
  6. double perrad = (double)periode / (2.0 * PI);
  7. int nbpts = hauteur / 2;
  8. vector<int>pts(hauteur * nb_per * 2);
  9.    for (int i = 1; i <= nbpts; i++)
  10.    {
  11.       double y = (double)i / (double) nbpts;
  12.       double x = asinus(y, pres) * perrad;
  13.       int offset = (nbpts - i) * 2 * nb_per;
  14.       pts.at(offset) = (x - (int)x > 0.5) ? (int)x + 1 : (int)x;
  15.       for (int j = 0; j < nb_per; j++)
  16.       {
  17.          int absc = periode * j;
  18.          pts.at(offset + j * 2) = absc + pts.at(offset);
  19.          // Symetrie Y
  20.          int sym_y = offset + j * 2 + 1;
  21.          absc += demi;
  22.          pts.at(sym_y) = absc - pts.at(offset);
  23.          // Symetrie X
  24.          int sym_x = (nbpts + i - 1) * 2 * nb_per + j * 2;
  25.          pts.at(sym_x) = absc + pts.at(offset);
  26.        
  27.          // Symetrie Y
  28.          sym_y = sym_x + 1;
  29.          absc += demi;
  30.          pts.at(sym_y) = absc - pts.at(offset);
  31.       }
  32.    }
  33.    cout << '^' << endl;
  34.    for (i = 0; i < hauteur; i++)
  35.    {
  36.       if (i == hauteur / 2)
  37.       {
  38.          cout << "|";
  39.          for (int j = 0; j < largeur; j++)
  40.          {
  41.             cout << "-";
  42.          }
  43.          cout << ">" << endl;
  44.       }
  45.      
  46.       cout << "|";
  47.       int k = 1;
  48.       for (int j = 0; j < nb_per * 2; j++)
  49.       {
  50.          for (k; k < pts.at(i * nb_per * 2 + j); k++)
  51.          {
  52.             cout << " ";
  53.          }
  54.          cout << "X";
  55.          k++;
  56.       }
  57.       cout << endl;
  58.    }
  59. }


n°15062
boob05
Profil : Jeune recrue
Posté le 26-10-2005 à 10:56:36  profilanswer
 

ok merci je vais essayer ca

n°15142
podone
POD first ONE of best game
Profil : Habitué
Posté le 02-11-2005 à 19:51:41  profilanswer
 

boob05 a écrit :

ok merci je vais essayer ca


SVP, sois gentil de renvoyer la soluce.

n°15143
boob05
Profil : Jeune recrue
Posté le 02-11-2005 à 19:58:34  profilanswer
 

Salut.Désolé j'avais pas le temps. En fait je vous passe la soluce du site.
http://www.ulb.ac.be/di/info-f-101/
 
C'est le site de mon unif.J'ai pas regardé la soluce qu'ils proposent car j'avais réussi a le résoudre tout seul enfin presque. Dès que je pourrais je vous envoie ma version.
A+

n°15149
questre
Profil : Jeune recrue
Posté le 03-11-2005 à 13:07:21  profilanswer
 

j'ai bien compris que tu veus arcsinsx je te conseille d'utulser le developement de taillor et mclorane our definir l'algorithme

n°15164
boob05
Profil : Jeune recrue
Posté le 07-11-2005 à 17:30:55  profilanswer
 

Salut c'est encore moi.
J'ai encore besoin de votre aide pour un autre exercice.
Il s'agit de cette fois d'un caclul matriciel.
Voici l'enoncé:http://www.ulb.ac.be/di/info-f-101/Projets/05-06/projet3.pdf
 
Je voulais aussi vous remercier pour votre aide concernant l'exercice d'avant.
Grave a vous j'ai pu le reussir.Merci bcp.  
Voila ben encore merci et j'espere que vous allez encore m'aider. ;)

n°15171
boob05
Profil : Jeune recrue
Posté le 09-11-2005 à 10:40:14  profilanswer
 

Je crois que j'ai fait une erreur en mettant le lien commca.Alors je vous mets l'ennoncé complette.
Désolé mais je suis nouveau et il m'arrive de faire des erreurs.
 
Écrivez une fonction sousMatriceCarreeLaPlusDense(int A[TAILLE][TAILLE],int n), où :
 
– A est une matrice carrée positive,
– n représente sa taille,
– TAILLE est une constante donnant la taille maximale possible pour A.
 
qui doit trouver et afficher la sous-matrice carrée la plus dense.
 
Définitions :
 
– une sous-matrice de A est l’ensemble des éléments contenus entre un coin supérieur gauche A[i][ j] et
un coin inférieur droit A[k][l] avec i <= k et j <= l,
– la densité d’une matrice est la somme de ses éléments divisée par sa taille.
Exemple Soit la matrice :
 
       |4 6 10|
 A=  |2 4 5 |  
       |2 3 1 |
 
Après application de la fonction sur A, s’affiche à l’écran :
 
Sous-matrice la plus dense:
6 10
4 5
Densite:
12.5
 
car la somme fait : 6+10+4+5 = 25 et la dimension est 2. Dans le cas où plusieurs sous-matrices ont la
même densité, c’est la première trouvée qui doit être affichée.
 
Voila et encore désolé, j'éspere que vous allez encore m'aider.


Message édité par boob05 le 09-11-2005 à 10:41:49
n°15172
boob05
Profil : Jeune recrue
Posté le 09-11-2005 à 12:00:55  profilanswer
 

Salut.En fait j'ai essayé de faire qqchose mais j'arrive pas loin :(
Voila ce que j'ai deja fait:
 

Code :
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. // declaration de constantes globales
  5. const int TAILLE = 100;
  6. // Fonction Calcul de densité
  7. double calc_dens(double V[TAILLE][TAILLE])
  8. {
  9. double densite = 0;
  10. for (int i = 0; i < TAILLE; i++)
  11.  for (int j = 0; j < TAILLE; j++)
  12.   densite += V[i][j];
  13. return densite;
  14. }
  15. void sousMatriceCarreeLaPlusDense( int A[TAILLE][TAILLE], int n)
  16. {
  17. }
  18. // Fonction Main
  19. int main()
  20. {
  21. int Taille;
  22. cin>>Taille;
  23. sousMatriceCarreelaPlusDense(A[TAILLE][TAILLE], Taille);
  24. }


 
Je sais que c'est rien mais croyez moi j'ai vraiment essayé

n°15177
podone
POD first ONE of best game
Profil : Habitué
Posté le 09-11-2005 à 21:45:17  profilanswer
 

Pourquoi ta fonction renvoie un double ? un int n'est-il pas suffisant ?

n°15182
boob05
Profil : Jeune recrue
Posté le 10-11-2005 à 10:59:33  profilanswer
 

je ne sais pas je vais voir ca

n°15186
boob05
Profil : Jeune recrue
Posté le 10-11-2005 à 14:40:46  profilanswer
 

Je pense que ca doit envoyer un double car on peut avoir des 12.5 par exemeple.
Sinon apart ça je crois qu'il faut trouver l'affichage et la densité de la sous matrice la plus dense.

n°15191
podone
POD first ONE of best game
Profil : Habitué
Posté le 11-11-2005 à 13:51:55  profilanswer
 

boob05 a écrit :

Je pense que ca doit envoyer un double car on peut avoir des 12.5 par exemeple.
Sinon apart ça je crois qu'il faut trouver l'affichage et la densité de la sous matrice la plus dense.


A ce moment un float sera suffisant, sinon j'attends que ma flemme se dissipe !  :D

n°15194
Tastito
So lost in love
Profil : Dinosaure
Posté le 11-11-2005 à 17:55:21  profilanswer
 

C'est un peu bizarre comme truc, mais j'aurai plutôt crée un objet matrice à travers une classe, ensuite une classe sous matrice qui herite de la classe matrice. Aprés pour tout ce qui est saisi et affichage c'est assez simple vu que c'est un tableau, par contre pour trouver la sous matrice la plus dense, bizarre ^^ faut que j'look

n°15196
boob05
Profil : Jeune recrue
Posté le 11-11-2005 à 18:02:53  profilanswer
 

Pourrait tu me montrer ca commca j'eesaye de travailler dessus aussi

n°15197
Tastito
So lost in love
Profil : Dinosaure
Posté le 11-11-2005 à 18:39:42  profilanswer
 

Ok ferait ca aprés manger :jap:


---------------
"Oh, that girl, you know she really, blows my, head apart,  
And the sky and the stars, all, synkronized...  
Eh no.... No no no, now me and her,  
We are in love... "  
n°15198
Tastito
So lost in love
Profil : Dinosaure
Posté le 11-11-2005 à 19:11:13  profilanswer
 

Bon en gros
 
fichier main.cpp:  
 

Code :
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include "matrice.h"
  4. using namespace std;
  5. int main(int argc, char *argv[])
  6. {
  7.    
  8.     Matrice p;
  9.     p.saisir();
  10.     p.afficher();
  11.     double z;
  12.     z=p.calc_dens();
  13.     cout << endl;
  14.     cout << "La densite de la Matrice mère est :" << z << endl;
  15.     cout << endl;
  16.     system("PAUSE" );
  17.     return EXIT_SUCCESS;
  18. }


 
 
 
fichier Matrice.h
 

Code :
  1. #ifndef _MATRICE_
  2. #define _MATRICE_
  3. const int Taille=4;
  4. class Matrice
  5. {
  6.      
  7.      
  8.       private :
  9.               int  _mat[Taille][Taille];//
  10.              
  11.       public :
  12.              Matrice ();//constructeur vide
  13.              void saisir();//methode de saisie
  14.              void afficher() const;
  15.              double calc_dens();
  16.      
  17. };
  18. #endif


 
 
fichier matrice.cpp
 

Code :
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include "matrice.h"
  4. using namespace std;
  5. Matrice::Matrice(){
  6.               for (int i=0;i<Taille;i++){
  7.                    for (int j=0;j<Taille;j++){
  8.                          _mat[i][j]=0;
  9.                    }
  10.               }
  11. }
  12.                
  13. void Matrice::saisir(){
  14.                   int z;
  15.                   cout <<"Veuillez saisir les composantes de votre matrice "<<endl;
  16.                   for (int i=0;i<Taille;i++){
  17.                       for (int j=0;j<Taille;j++){
  18.                           cout << "Case : " << i <<" | "<< j <<endl;
  19.                           cin>>z;
  20.                          _mat[i][j]=z;
  21.                       }
  22.                   }
  23. }
  24. // methode d'affichage
  25. void Matrice::afficher()const{
  26.                   for (int i=0;i<Taille;i++){
  27.                       for (int j=0;j<Taille;j++){
  28.                           cout << _mat[i][j];
  29.                           cout << " ";
  30.                           /*
  31.                           if (j %Taille==0){
  32.                                 cout <<endl;
  33.                                  
  34.                           pour avoir un affichage propre, faire un saut de ligne toutes
  35.                           les 4 cases.     
  36.                              
  37.                           }
  38.                           */ 
  39.                       }
  40.                   }   
  41. }
  42. // Fonction Calcul de densité  
  43. double Matrice::calc_dens()
  44. {
  45.     double densite = 0;
  46.     for (int i = 0; i < Taille; i++)
  47.         for (int j = 0; j < Taille; j++)
  48.             densite += _mat[i][j];
  49.     return densite;
  50. }


 
 
Trace d'execution :  

Code :
  1. Veuillez saisir les composantes de votre matrice
  2. Case : 0 | 0
  3. Case : 0 | 1
  4. Case : 0 | 2
  5. Case : 0 | 3
  6. Case : 1 | 0
  7. Case : 1 | 1
  8. Case : 1 | 2
  9. Case : 1 | 3
  10. Case : 2 | 0
  11. Case : 2 | 1
  12. Case : 2 | 2
  13. Case : 2 | 3
  14. Case : 3 | 0
  15. Case : 3 | 1
  16. Case : 3 | 2
  17. Case : 3 | 3
  18. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
  19. La densite de la Matrice mère est :136
  20. Appuyez sur une touche pour continuer...


 
 
Bon c'est un peu à l'arrache et ca t'avance en rien, mais voilà  
 
 


---------------
"Oh, that girl, you know she really, blows my, head apart,  
And the sky and the stars, all, synkronized...  
Eh no.... No no no, now me and her,  
We are in love... "  
n°15199
boob05
Profil : Jeune recrue
Posté le 11-11-2005 à 20:07:58  profilanswer
 

Lol
C'est déjà ca.Merci bcp.

n°15207
boob05
Profil : Jeune recrue
Posté le 14-11-2005 à 11:41:15  profilanswer
 

En fait j'ai été demandé de l'aide a mon prof mais en vain.:(
Il ma dit qu'il fallait faire que 5 boucles imbriqués.
1)Une pour la grandeur de ta sous matrice, qui doit evoluer de 2 a n-1
2) 2 boucles pour parcourir ta matrice ( i et j )
3) 2 boucles pour faire les décalages
Et c tout.A oui il ma dit aussi que pour le 2) il fallait pas parcourrir toute la matrice!!!! J'ai rien compris ce qu'il  voulu dire, je vous le dit en esperant que vous y comprennez qqe chose.

n°15209
boob05
Profil : Jeune recrue
Posté le 14-11-2005 à 12:15:03  profilanswer
 

En réflechissant bcp j'ai essayé de faire qqchose qui compile mais qui foire un peu.J'arrive vraiment pas a trouver l'erreur.Aidez moi svp  :(  
 

Code :
  1. #include <iostream>
  2. using namespace std;
  3. const int TAILLE = 100;
  4. // Fct affich_mat  
  5. void affich_mat(int A[TAILLE][TAILLE], int ln_inf, int col_inf, int t_mat)
  6. {
  7. for (int i = ln_inf - t_mat; i <= ln_inf; i++)
  8. {
  9.  for (int j = col_inf - t_mat; j <= col_inf; j++)
  10.   cout << A[i][j];
  11.  cout << endl;
  12. }
  13. }
  14. // Fct sousMatriceCarreLaPlusDense
  15. void sousMatriceCarreeLaPlusDense(int A[TAILLE][TAILLE], int n)
  16. {
  17. int k = 0, l = 0, coin_k = k, coin_l = l, m = 0, t_mat = m;
  18. double dens = 0.0, ex_dens = dens;
  19. // Pour toutes les sous-matrices de 1x1 à (n-1)x(n-1)
  20. for (m=1; m < n-1; m++)
  21. {
  22.  // On parcourt la matrice
  23.  for (int i = 0; i < n-m; i++)
  24.   for (int j = 0; j < n-m; j++)
  25.   {
  26.    for (k = i; k <= i+m; k++)
  27.     for (l = j; l < j+m; j++)
  28.      dens += A[k][l];
  29.    dens /= m;
  30.    // Si on trouve une nouvelle matrice plus dense, on la sauve!
  31.    if (dens > ex_dens)
  32.    {
  33.    coin_k = k-1;
  34.    coin_l = l-1;
  35.    t_mat = m;
  36.    ex_dens = dens;
  37.    }
  38.   }
  39. }
  40. affich_mat(A, coin_k, coin_l, t_mat);
  41. }
  42. // Fct main
  43. int main()
  44. {
  45. int A[TAILLE][TAILLE], Taille;
  46. // Initialisation de la mtrice
  47. cout << " Veuillez entrer la taille de la matrice : ";
  48. cin >> Taille;
  49. cout << " Veuillez entrer les éléments de la matrice ligne par ligne : ";
  50. for (int i = 0; i < Taille; i++)
  51.  for (int j = 0; j < Taille; j++)
  52.   cin >> A[i][j];
  53. sousMatriceCarreeLaPlusDense(A, Taille);
  54. return 0;
  55. }


 
Voila ce que j'ai fait

n°15245
boob05
Profil : Jeune recrue
Posté le 17-11-2005 à 13:23:08  profilanswer
 

Bonjours.J'ai finalement trouvé la réponse.Ce que Tastito a mit m'a bcp aidé, je te remercie  ;)  
Et je vous mets la soluce bien sur, pour ceux qui ca interesse.

Code :
  1. #include <iostream>
  2. using namespace std;
  3. const int TAILLE = 100;
  4. // Fct sousMatriceCarreLaPlusDense
  5. void sousMatriceCarreeLaPlusDense(int A[TAILLE][TAILLE], int n)
  6. {
  7. int B[n][n] ;
  8. double dens , Save=0.0 , Save2=0.0 ;
  9. int somme = 0 ;
  10. // Pour toutes les sous-matrices de 1x1 à nxn
  11. for (int m=1; m <= n; m++)
  12. {
  13.    for (int i = 0; i < n-(m-1); i++)
  14.     {
  15.       for (int j = 0; j < n-(m-1); j++)
  16.  {
  17.     
  18.             somme = 0 ; // remise à 0 de la somme
  19.      
  20.   for (int dec_v=0; dec_v<m;dec_v++)
  21.     { // debut de la boucle qui calcul la somme des éléments de la ss-mat
  22.                    for (int dec_h=0;dec_h<m;dec_h++ )
  23.     somme += A [i+dec_v][j+dec_h];
  24.               }
  25.             dens = (double) somme/m ;
  26.            
  27. // Si on trouve une nouvelle matrice plus dense, on la sauve!
  28.             if (dens > Save)
  29.    {
  30.      Save = dens;
  31.      for (int dec_v=0; dec_v<m;dec_v++)
  32.      {
  33.     for (int dec_h=0;dec_h<m;dec_h++ )
  34.             B [dec_v][dec_h] = A [i+dec_v][j+dec_h];
  35.                    
  36.                     Save2 = m;
  37.                   }
  38.    }
  39.         }
  40.    
  41.     }
  42.  
  43. }
  44. cout<<"Sous-matrice la plus dense: "<<endl;
  45. for (int k = 0; k < Save2; k++)
  46.   {
  47.  for (int l = 0; l < Save2; l++)
  48.   cout<<B[k][l] << " " ;
  49.     cout << endl ;
  50.       }
  51.    
  52.    
  53.    
  54.     cout<<" Densite :"<<endl<<Save;
  55. }
  56. int main()
  57. {
  58.         int A[TAILLE][TAILLE];
  59.         int Taille;
  60. // Initialisation de la mtrice
  61. cout << " Veuillez entrer la taille de la matrice : ";
  62. cin >> Taille;
  63. cout << " Veuillez entrer les elements de la matrice  : "<< endl;
  64. for (int i = 0; i < Taille; i++)
  65.  for (int j = 0; j < Taille; j++)
  66.   cin >> A[i][j];
  67. sousMatriceCarreeLaPlusDense(A, Taille);
  68. cin>>Taille;
  69. }


 
 
Voila et encore merci  :)

 Page :  1  2
Page Suivante 

Aller à :
Ajouter une réponse