Faire des axes pour une fonction mathématique

Faire des axes pour une fonction mathématique - C++ - Programmation

Marsh Posté le 17-12-2005 à 17:50:06    

Bonjour,
Je dois faire un programme en c++ permettant d'affichier une fonction mathématique (2x^3-2x^2-18x+18)
 
Je voudrais déja commencer par afficher  des axes:
 
 
 

Code :
  1. #include<iostream>
  2. using namespace std;
  3. int main(int argc, char*const argv[])
  4. {
  5.    
  6.     int tailleX=80;
  7.     int tailleY=70;
  8.     char G[tailleY][tailleX];
  9.    
  10.           for(int i=0;i<tailleY;i++){
  11.               for(int j=0;j<tailleX;j++){
  12.                  if(i==34){             
  13.                    G[i][j]='_';}
  14.                  if(j==39)
  15.                    G[i][j]='|';
  16.                           }}
  17.                          
  18.      for(int i=0;i<tailleY;i++){
  19.          for(int j=0;j<tailleX;j++){
  20.          cout<<G[i][j];}}
  21.         int a;
  22.         cin>>a;
  23.         return 0;


 
Et rien qu'ici, je suis déja bloqué vu que ça bug quand je compile...
Personne n'a une idée doù vient le problème?
 
Je ne suis pas au bout de mes peines...  
Projet à rendre pour lundi  :sarcastic:

Reply

Marsh Posté le 17-12-2005 à 17:50:06   

Reply

Marsh Posté le 17-12-2005 à 17:51:54    

Regarde le message d'erreur de ton compilo [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 17-12-2005 à 17:52:47    

afficher la fonction ou réaliser son calcul ?
 
c'est volontaire, s'il manque l'accolade de fin du main ?
 
sinon, pour éviter d'avoir à faire ton cin>>a;, lance ton programme depuis une ligne de commande ...

Reply

Marsh Posté le 17-12-2005 à 17:54:57    

masklinn a écrit :

Regarde le message d'erreur de ton compilo [:spamafote]


 
Je me suis mal exprimé: ca compile bien mais juste le résultat à l'affichage déconne completement (affiche des miliers de caractères et mon ordi fait des bruits bizarres  :??: )
 
J'ai en effet oublié l'accolade au copier coller (donc involontaire)

Message cité 1 fois
Message édité par -neophyte- le 17-12-2005 à 17:56:58
Reply

Marsh Posté le 17-12-2005 à 17:59:19    

-neophyte- a écrit :

Je me suis mal exprimé: ca compile bien mais juste le résultat à l'affichage déconne completement (affiche des miliers de caractères et mon ordi fait des bruits bizarres  :??: )


Chez moi ça compile pas, g++ m'indique obligeament que l'ANSI C++ n'accepte pas les tableaux à taille variable.
 
À part ça, tu penses réellement que ton tableau, une fois que tu l'as créé, se retrouve avec toutes ses cases initialisées?
 
Avec des espaces en plus?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 17-12-2005 à 18:14:15    

masklinn a écrit :

Chez moi ça compile pas, g++ m'indique obligeament que l'ANSI C++ n'accepte pas les tableaux à taille variable.
 
À part ça, tu penses réellement que ton tableau, une fois que tu l'as créé, se retrouve avec toutes ses cases initialisées?
 
Avec des espaces en plus?


 
 
Je tiens juste à préciser que je ne suis pas expert en c++ (je n'ai aucune expérience et c'est la première année que j'ai des cours d'info)
 
Pour initialiser ne suffit-t-il pas d'indiquer simplement:

Code :
  1. int tailleX=80;
  2.     int tailleY=70;


 
Pourquoi la matrice serait de longueur variable si je fixe au début les longueur tailleX et tailleY ?

Reply

Marsh Posté le 17-12-2005 à 18:17:29    

-neophyte- a écrit :

Pourquoi la matrice serait de longueur variable si je fixe au début les longueur tailleX et tailleY ?


Parce que tailleX et tailleY sont des variables [:mlc]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 17-12-2005 à 18:23:24    

masklinn a écrit :

Parce que tailleX et tailleY sont des variables [:mlc]


 :cry: alors que dois-je remplacer ou ajouter pour fixer mon tableau?  :sweat:

Reply

Marsh Posté le 17-12-2005 à 18:39:02    

c'est pas valide en C99, ca ?
 
sinon, tu fais un malloc ...

 
tu fais un new ... (on n'est pas en C, ici ?  :sweat: )
 
ou alors mieux : tu passes par des std::vector

Message cité 1 fois
Message édité par theshockwave le 17-12-2005 à 18:40:01
Reply

Marsh Posté le 17-12-2005 à 18:40:28    

-neophyte- a écrit :

:cry: alors que dois-je remplacer ou ajouter pour fixer mon tableau?  :sweat:


Des constantes, ou tu crées vraiment ton tableau (new/delete)
 
Tu peux utiliser les conteneurs STL aussi, ça serait pas du luxe en fait (std::vector toussa)

theshockwave a écrit :

c'est pas valide en C99, ca ?
 
sinon, tu fais un malloc ...


Regarde le nom de la cat stp :o

Message cité 2 fois
Message édité par masklinn le 17-12-2005 à 18:40:47

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 17-12-2005 à 18:40:28   

Reply

Marsh Posté le 17-12-2005 à 18:41:38    

masklinn a écrit :

Regarde le nom de la cat stp :o


 
corrigé avant même ta remarque :o

Reply

Marsh Posté le 17-12-2005 à 18:42:39    

theshockwave a écrit :

corrigé avant même ta remarque :o


No, 12 secondes après http://membres.lycos.fr/angel2k/petrus/petrusfuck.gif


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 17-12-2005 à 18:49:10    

"Message édité par theshockwave le 17-12-2005 à 18:40:01"
"Posté le 17-12-2005 à 18:40:28"
non ... 27 secondes avant :o

Reply

Marsh Posté le 17-12-2005 à 18:51:46    

theshockwave a écrit :

"Message édité par theshockwave le 17-12-2005 à 18:40:01"
"Posté le 17-12-2005 à 18:40:28"
non ... 27 secondes avant :o


 [:neowen]  :whistle:  
 
 
 
 
 
 
 :o  :o  :o  :o  :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 17-12-2005 à 18:57:32    

masklinn a écrit :

Des constantes, ou tu crées vraiment ton tableau (new/delete)
 
Tu peux utiliser les conteneurs STL aussi, ça serait pas du luxe en fait (std::vector toussa)
 


 
tableau new/delete , conteneurs STL, on a rien vu de tout ca à notre cour. Donc ca doit etre possible de faire sans.
 
Sinon, une remarque, le code donné si dessus doit dans mon projet être juste une fonction.
Pour l'instant, je l'ai mis en main histoire de voir si ca s'affiche correctement hélas non...

Message cité 1 fois
Message édité par -neophyte- le 17-12-2005 à 18:59:32
Reply

Marsh Posté le 19-12-2005 à 08:46:58    

comme l'a deja dit masklinn, il faut que tu initialises ton tableau:
solution 1:
declare ton tableau sans les variables et initialise le directement avec des espaces

Code :
  1. char G[70][80]={" "};


solution 2:
tu gardes ton initialisation avec tes variables mais tu initialises dans la boucle:

Code :
  1. for(int i=0;i<tailleY;i++)
  2.                {
  3.                    for(int j=0;j<tailleX;j++)
  4.                    {
  5.                       G[i][j]=' ';
  6.                       if(i==34) G[i][j]='_';
  7.                       if(j==39) G[i][j]='|';
  8.                    }
  9.                }

Reply

Marsh Posté le 19-12-2005 à 10:13:18    

-neophyte- a écrit :

tableau new/delete , conteneurs STL, on a rien vu de tout ca à notre cour. Donc ca doit etre possible de faire sans.


 
tu peux faire du code volontairement ignoble, oui :o
 

sankukai8 a écrit :


Code :
  1. char G[70][80]={" "};




 
Heuu, ca, sauf erreur de ma part, ca met un espace dans le premier élément mais des 0 dans le reste, non ?

Reply

Marsh Posté le 19-12-2005 à 11:03:26    

theshockwave a écrit :

tu peux faire du code volontairement ignoble, oui :o
 
 
 
Heuu, ca, sauf erreur de ma part, ca met un espace dans le premier élément mais des 0 dans le reste, non ?


en effet, mais la valeur 0 correpond au char nul, et cela se traduit par l'affichage d'un espace.
cela affiche bien le resultat demandé.

Reply

Marsh Posté le 19-12-2005 à 11:19:34    

j'ai relu succintement et je ne vois pas trop l'intérêt d'initialiser la première chaine avec un espace dedans et de laisser toutes les autres vides ... [:pingouino] autant tout mettre à 0 directement, non ? Parce que l'intérêt qu'il pourrait avoir, à la limite, c'est de pouvoir initialiser son tableau juste avec des espaces partout ...

Reply

Marsh Posté le 19-12-2005 à 16:34:59    

yep :)  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed