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
 
 

Il y a 62 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
 Page :  1  2
Page Précédente 
Auteur
 Sujet :

un petit ex en c++

 
n°14987
boob05
Profil : Jeune recrue
Posté le 20-10-2005 à 18:42:12  profilanswer
 

Salut en fait je dois faire cette exercice mais j'arrive pas a le faire.
Ce serait très sympa de votre part si vous me donniez un coup de main.
voila l'énnoncé:
http://www.ulb.ac.be/di/info-f-101 [...] rojet2.pdf
Voila j'attend avec impatience vos réponses  :)

n°15000
podone
POD first ONE of best game
Profil : Habitué
Posté le 21-10-2005 à 21:31:15  profilanswer
 

Déjà un petit coup de main pour la fonction arcsin :  ;)  

Code :
  1. #define  PI    3.1411592654
  2. double asin(double x, double eps)
  3. {
  4. double result = x;
  5. double x2 = x*x;
  6. double ope = 1.0;
  7. double val = 1.0;
  8. double ini = x;
  9. double tmp;
  10.    if (x < 1.0 && x > -1.0)
  11.    {
  12.       do
  13.       {
  14.          tmp = result;
  15.          ope *= (val/(val + 1.0));
  16.          val += 2.0;
  17.          ini *= x2;
  18.          result += ini / val * ope;
  19.       }
  20.       while((result - tmp) > eps); 
  21.    }
  22.    else if (x == 1.0) result = PI / 2.0;
  23.    else if (x == -1.0) result = -PI / 2.0;
  24.    else result = 0;
  25.    return result;
  26. }


Message édité par podone le 21-10-2005 à 21:31:58
n°15002
boob05
Profil : Jeune recrue
Posté le 22-10-2005 à 10:14:43  profilanswer
 

En fait j'ai essayé de faire l'ex tout seul mais malheureusement j'obtiens pas ce qu'on me demande!!.

Code :
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. const double eps = 1.0e-5;
  5. const double pi= 4*(atan (1.0));
  6. double asin(double x, double eps)
  7. {
  8. double terme=x, asinus=0;
  9. if(x==1)
  10.  asinus= pi/2;
  11. else if(x==-1)
  12.  asinus= -(pi/2);
  13. else
  14. {
  15.  for(int i=1; abs(terme) >= eps; ++i)
  16.  {
  17.   terme *= (double(((2*i)-1)*(( 2*i )-1 ) / ( 2*i )*(( 2*i )+1))*x*x);
  18.   asinus += terme;
  19.  }
  20. }
  21. return asinus;
  22. }
  23. void affichage(double nb, double car)
  24. {
  25. for(int i=1; i<=nb; ++i)
  26.  cout<< car;
  27. }
  28. void plot_sin(int nb_per, int largeur, int hauteur)
  29. {
  30. double Y, X;
  31. double hautarc = (hauteur/2)-1;
  32. cout<< "^" << endl;
  33. for(double i=hautarc; i >= -hautarc; --i)
  34. {
  35.  Y = asin (i,eps);
  36.  X = Y * (10/pi);
  37.  cout<< '|';
  38.  for(double i=0; i < X; ++i)
  39.  {
  40.   cout<< ' ';
  41.  }
  42.  cout<< 'X' << endl;
  43. }
  44. }
  45. int main()
  46. {
  47. int  nb_per, largeur, hauteur;
  48. cin>> nb_per >> largeur >> hauteur;
  49.         plot_sin(nb_per, largeur, hauteur);
  50. }


Voila ce que je fais mais j'obtiens pas le graph demandé.
Si qqun peut me corriger ce serait tres sypma.
Merci d'avance.

n°15004
podone
POD first ONE of best game
Profil : Habitué
Posté le 22-10-2005 à 12:36:30  profilanswer
 

Ta fonction asin ne donne pas le résultat escompté. Je t'en ai proposé une qui a le mérite de fonctionner et dont la boucle est 2 fois plus rapide que la tienne.

n°15006
boob05
Profil : Jeune recrue
Posté le 22-10-2005 à 13:02:27  profilanswer
 

oui je sais mais je ne sais pas pq elle marche pas chez moi.
(j'utilise dev c++)
Et le fait est que je ne vois pas comment integrer la fontion asin au reste de l'exercice, c'est ca qui m'enerve.:(
Au fait ta variable ope=1.0 represente quoi?
Je m'excuse mais je débute en c++ et c'est pas très évident pour moi.
Voila et je te remercie pour ton aide.Ca fait vraiment plaisir.

n°15007
podone
POD first ONE of best game
Profil : Habitué
Posté le 22-10-2005 à 13:32:54  profilanswer
 

Les valeurs de la suite 1/2, 1/2 * 3/4, 1/2 * 3/4 * 5/7, etc.
Attention cela reste du C pas du C++.
Pour passer au C++, il faudra la convertir en méthode privée de classe.


Message édité par podone le 22-10-2005 à 13:37:57
n°15008
boob05
Profil : Jeune recrue
Posté le 22-10-2005 à 13:39:04  profilanswer
 

Dsl mais je comprend pas?

n°15009
podone
POD first ONE of best game
Profil : Habitué
Posté le 22-10-2005 à 13:41:04  profilanswer
 

Quoi ?

n°15010
boob05
Profil : Jeune recrue
Posté le 22-10-2005 à 15:13:20  profilanswer
 

Comment passer du C au C++.
La méthode privée de classe dont tu parles plus haut.

n°15011
podone
POD first ONE of best game
Profil : Habitué
Posté le 22-10-2005 à 16:12:55  profilanswer
 

Quelque chose de ce genre :

Code :
  1. // Fichier CURVES.H
  2. class CURVES
  3. {
  4. public:
  5.    CURVES();
  6.    inline CURVES(const CURVES& curveToCopy)
  7.    { *this = curveToCopy; };
  8.    void plot_sin(int nb_per, int largeur, int hauteur);
  9. private:
  10.    CURVES& operator=(const CURVES& curveToCopy);
  11.    double asin(double x, double eps);
  12. };
  13. // Fichier CURVES.CPP
  14. CURVES::CURVES()
  15. {
  16.    // Init classe
  17. }
  18. void CURVES::plot_sin(int nb_per, int largeur, int hauteur)
  19. {
  20.    // Afficher la courbe f(x) = sin(x)
  21. }
  22. CURVES& CURVES::operator=(const CURVES& curveToCopy)
  23. {
  24.    // Dupliquer l'objet
  25.  
  26.    return *this;
  27. }
  28. double CURVES::asin(double x, double eps)
  29. {
  30. double asinus;
  31.    // ...
  32.    return asinus;
  33. }

n°15013
boob05
Profil : Jeune recrue
Posté le 22-10-2005 à 17:35:15  profilanswer
 

Pffiou.
C'est vrai que c'est different du C++.
Mais moi en fait j'ai jamais fait du C,j'ai directement commencé avec du C++.
Et le problème est que je rame un peu pour l'instant et cet exercice m'énerve vraiment surtout que je dois le remetre ce mercredi.Jusqu'a présent on a seulement vu comment faire la fct arcsin mais pas comment mettre ca sur forme de graphe.
Je dois surement t'ennuier la avec tous ces messages mais je ne sais plus quoi faire.En plus de ca ds ma classe ya personne qui a réussi a le faire et c'est un exercice qui vaut pas mal de points.
Voila ben je te demande encore une fois de m'excuser de te derranger.

n°15019
podone
POD first ONE of best game
Profil : Habitué
Posté le 23-10-2005 à 10:16:01  profilanswer
 

oups ! ce que tu as fait justement c'est du C pas du C++, le pseudo exemple au dessus, c'est du C++.

n°15020
boob05
Profil : Jeune recrue
Posté le 23-10-2005 à 11:48:31  profilanswer
 

En fait je n'ait fait que suivre qques exercices qu'on a fait en classe et je pense que c'est du C++ quand meme.
Mais je vais être franc avec toi j'y pige rien a cet je l'ai même copier sur un "copain" qui ma assuré que ca marche et que c'est le bon exercice et tralala et trilili, tu vois le truc, il ma eu quoi, il voulais être le seul qui a fait un exercice qui tient la route.Lui il a doublé en ce que nous on fait c'est facile pour lui et il se permet de se foutre un peu de nous les nouveau.
C'est pour cela que je suis enervé et je veut absolument faire cette exercice.Tu comprends?

n°15021
podone
POD first ONE of best game
Profil : Habitué
Posté le 23-10-2005 à 13:45:59  profilanswer
 

Il faut que tu recherches par toi-même sinon tu ne progresseras jamais. Reprends tes cours et fais l'exercice avec les fonctions que vous avez déjà apprises. Pour exemple, tu vas peut-être vouloir créer un tableau des coordonnées de points. Ce tableau sera construit dynamiquement avec une taille variable. Tu peux utiliser vecteur, mais es-tu censé le connaître ?

n°15026
Tastito
So lost in love
Profil : Dinosaure
Posté le 24-10-2005 à 04:21:25  profilanswer
 

podone a écrit :

Il faut que tu recherches par toi-même sinon tu ne progresseras jamais. Reprends tes cours et fais l'exercice avec les fonctions que vous avez déjà apprises. Pour exemple, tu vas peut-être vouloir créer un tableau des coordonnées de points. Ce tableau sera construit dynamiquement avec une taille variable. Tu peux utiliser vecteur, mais es-tu censé le connaître ?


 
 
J'pense pas qu'il en soit arrivé là, et puis c'est pas ce qui est demandé dans l'enoncé ( bien que ca m'apparaisse plus judicieux comme choix ;)) mais bon il n'en est pas encore là, vais essayer d'y jeter un coup d'il dans la journée :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°15027
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 11:22:02  profilanswer
 

Non en fait j'ai pas vu les vecteurs.
J'ai essayé de le faire par moi même mais j'arrive seulement a calculer la valeur de arcin.
voila ce que j'ai fait:

Code :
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. const double eps = 0.01;
  5. const double pi= 4*(atan (1.0));
  6. double asin(double x, double eps)
  7. {
  8. double terme=x, asinus=0;
  9. if(x==1)
  10.  asinus= pi/2;
  11. else if(x==-1)
  12.  asinus= -(pi/2);
  13. else
  14. {
  15.  for(int i=1; abs(terme) >= eps; ++i)
  16.  {
  17.   terme *= (double( ((2*i)-1)*(( 2*i )-1 ) / ( 2*i )*(( 2*i )+1))*x*x );
  18.   asinus += terme;
  19.  }
  20. }
  21. return asinus;
  22. }
  23. void affichage(double nb, double car)
  24. {
  25. for(int i=1; i<=nb; ++i)
  26.  cout<< car;
  27. }
  28. void plot_sin(int nb_per, int largeur, int hauteur) 
  29.      { 
  30.          double Y, X; 
  31.          double j=2*largeur/hauteur;
  32.           cout<< "^" << endl; 
  33.    
  34.          for(double i=hauteur; i >= -hauteur; --i) 
  35.          { 
  36.              Y = asin (j,eps); 
  37.              X = Y * (10/pi); 
  38.              cout<< '|'; 
  39.    
  40.              for(double i=0; i < X; ++i) 
  41.              { 
  42.                  cout<< ' '; 
  43.              } 
  44.              cout<< 'X' << endl; 
  45.          }     
  46.      } 
  47. int main ()
  48. {
  49. double X,Y;
  50. cin >> X;
  51. Y = asin(X,eps);
  52. cout << Y << endl;
  53. }


 
Voila aidez moi svp je dois le rendre demain ce travail :(

n°15028
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 12:05:01  profilanswer
 

En fait maintenat que j'y pense je peut aussi utiliser des vecteurs car on viens de voir cela au cours aujourd'hui.
Mais le truc est que le prof explique super mal et on pige rien a ce qu'il dit.C'est aux travaux pratiques que les assistants axpliquent bien mais on a travaux pratiques que les vendredis donc...
Si je dois rendre le travail pour demain ca me laisse pas le temps.

n°15030
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 12:25:22  profilanswer
 

En fait la fction asin est juste c'est juste la fction plot_sin qui n'est pas bien.Il faut calculer ligne par ligne en fait, il faut savoir le nombre d'éspaces et tout ca. C'est ca que j'arrive pas a faire.

n°15031
Tastito
So lost in love
Profil : Dinosaure
Posté le 24-10-2005 à 12:49:45  profilanswer
 

Bon ben j'ai essayer de decouper le problème, et je me suis dis que pour pas compliquer la tache, il fallait traiter juste le problème au dessus de l'axe x aprés c'est symètrique donc c as un problème. Maintenant j'ai essayé de decomposer le truc mais je n'y arrive pas non plus. Je pense qu'il faudrait plutôt remplir un tableau avec les X de tels sortent qu'il soit remplie avec des " " et des X et on l'affiche, mais j'y arrive pas trop


---------------
"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°15032
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 13:11:01  profilanswer
 

ouais je sais c'est ce que j'essaye de faire.
En fait je pense q'il faut calculer l'éspace q'il faut entre |et les x.
On sait deja q'il faut 4 espaces et 1 X pour arcsin de 1.
Puis il faut calculer pour arcsin de 0.5 et jusqu'au bout.Apres cela il faut faire une symétrie comme ta dit et je pense que ca devrait aller.
Le truc c'est que ca fait 2h que chuis assis dessus et j'avance pas trop

n°15033
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 13:13:28  profilanswer
 

Je n'ait fait que ca comme changement.Regarde le resultat tu va rigoler.

Code :
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. const double eps = 0.01;
  5. const double pi= 4*(atan (1.0));
  6. double asin(double x, double eps)
  7. {
  8. double terme=x, asinus=0;
  9. if(x==1)
  10.  asinus= pi/2;
  11. else if(x==-1)
  12.  asinus= -(pi/2);
  13. else
  14. {
  15.  for(int i=1; abs(terme) >= eps; ++i)
  16.  {
  17.   terme *= (double( ((2*i)-1)*(( 2*i )-1 ) / ( 2*i )*(( 2*i )+1))*x*x );
  18.   asinus += terme;
  19.  }
  20. }
  21. return asinus;
  22. }
  23. void affichage(double nb, double car)
  24. {
  25. for(int i=1; i<=nb; ++i)
  26.  cout<< car;
  27. }
  28. void plot_sin(int nb_per, int largeur, int hauteur) 
  29.      { 
  30.          double Y, X; 
  31.          double j=2*largeur/hauteur;
  32.           cout<< "^" << endl; 
  33.    
  34.          for(double i=hauteur; i >= -hauteur; --i) 
  35.          { 
  36.              Y = asin (j,eps); 
  37.              X = Y * (10/pi); 
  38.              cout<< '|'; 
  39.    
  40.              for(double i=0; i < X; ++i) 
  41.              { 
  42.                  cout<< ' '; 
  43.              } 
  44.              cout<< 'X' << endl; 
  45.          }     
  46.      } 
  47. int main ()
  48. {
  49. double X,Y;
  50. //cin >> X;
  51. //Y = asin(X,eps);
  52. //cout << Y << endl;
  53. plot_sin(2,40,16);
  54. }

n°15034
Tastito
So lost in love
Profil : Dinosaure
Posté le 24-10-2005 à 13:20:03  profilanswer
 

T'utilises dev c++?? Comment tu fais pour voir les trucs sans  
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°15035
Tastito
So lost in love
Profil : Dinosaure
Posté le 24-10-2005 à 13:21:49  profilanswer
 

Bon en effet c'est bizarre :|, de mon coté j'ai fait ca :  
 

Code :
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. const double eps = 0.01;
  5. const double pi= 4*(atan (1.0));
  6.    
  7. double asin(double x, double eps)
  8. {
  9. double result = x;
  10. double x2 = x*x;
  11. double ope = 1.0;
  12. double val = 1.0;
  13. double ini = x;
  14. double tmp;
  15.    if (x < 1.0 && x > -1.0)
  16.    {
  17.       do
  18.       {
  19.          tmp = result;
  20.          ope *= (val/(val + 1.0));
  21.          val += 2.0;
  22.          ini *= x2;
  23.          result += ini / val * ope;
  24.       }
  25.       while((result - tmp) > eps); 
  26.    }
  27.    else if (x == 1.0) result = pi / 2.0;
  28.    else if (x == -1.0) result = -pi / 2.0;
  29.    else result = 0;
  30.  
  31.    return result;
  32. }
  33. void affichage(double nb, double car)
  34. {
  35.     for(int i=1; i<=nb; ++i)
  36.         cout<< car;
  37. }
  38. void plot_sin(int nb_per, int largeur, int hauteur) 
  39.      {
  40.          char *tab;
  41.          tab=new char[150];           
  42.          double Y, X; 
  43.          double j=2*largeur/hauteur;
  44.          cout<< "^" << endl; 
  45.      
  46.          for(double i=hauteur; i >= (hauteur/2); i--)
  47.          { 
  48.              Y = asin (j,eps); 
  49.              X = Y * (10/pi); 
  50.              cout<< '|'; 
  51.        
  52.              for(double i=0; i < X; i++) 
  53.              { 
  54.                
  55.                  cout<< ' '; 
  56.              } 
  57.              cout<< 'X' << endl; 
  58.              }
  59.          cout << "+";
  60.          for (int i=0; i<largeur;i++){
  61.              cout << "-";
  62.          }
  63.          cout << "> ";
  64.                   for(double i=((hauteur/2)-1); i >=-(hauteur/2) ;i--) // intervalles pas bon
  65.          { 
  66.              Y = asin (j,eps); 
  67.              X = Y * (10/pi); 
  68.              cout<< '|'; 
  69.        
  70.              for(double i=0; i < X; i++) 
  71.              { 
  72.                
  73.                  cout<< ' '; 
  74.              } 
  75.              cout<< 'X' << endl; 
  76.              } 
  77.          system ( "Pause" );   
  78.      } 
  79. int main ()
  80. {
  81.    
  82.     float X,Y;
  83.     cout << "Entrez X" <<endl;
  84.     cin >> X;
  85.     Y = asin(X,eps);
  86.     cout << Y << endl;
  87.     system ( "Pause" );
  88.     plot_sin(3,12,12);
  89. }


---------------
"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°15036
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 13:33:33  profilanswer
 

Ben ca me dit que c'est pas bon en fait

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

Moi ca compile, ca passe, ca dessine l'axe, les X mais ca decale pas les X...j'ai reutilisé la fonction implementer par podone en haut pour arcsin


---------------
"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°15038
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 13:40:16  profilanswer
 

En fait je compile mais ya un probleme ds la fction plot_sin

n°15039
Tastito
So lost in love
Profil : Dinosaure
Posté le 24-10-2005 à 13:40:52  profilanswer
 

:| C'est quoi? tu peux me mettre l'erreur?


---------------
"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°15040
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 13:41:41  profilanswer
 

Et je comprend pas a la fin ta mis "system ("pause" )
Ca veut dire quoi?

n°15041
boob05
Profil : Jeune recrue
Posté le 24-10-2005 à 13:42:28  profilanswer
 

projet22.cpp: Dans function « void plot_sin(int, int, int) »:
projet22.cpp:87: error: erreur d'analyse syntaxique at end of input
 
Voila ce que ca me dit

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

En fait j'utilise pas dev c++ j'utilise linux

 Page :  1  2
Page Précédente 

Aller à :
Ajouter une réponse