Racine carrée en C++

Racine carrée en C++ - C++ - Programmation

Marsh Posté le 07-12-2004 à 14:01:17    

:hello:  
 
J'ai essayé de faire un programme pouvant calculer la taille de l'hypoténuse a partir de deux cotés de l'angle droit (Théorème de Pythagore)
 
J'ai fait qques recherches pour utiliser la fonction racine carrée mais ca ne marche pas.Code source :
 

Code :
  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <iostream>
  4. #include <math.h>
  5. using namespace std;
  6. int main(int nNumberofArgs, char* pszArgs[])
  7. {
  8.   int Cote1;
  9.   cout << "Entrez la taille du premier cote formant l'angle droit du triangle: ";
  10.   cin >> Cote1;
  11.  
  12.   int Cote2;
  13.   cout << "Entrez la taille du deuxieme cote formant l'angle droit du triangle: ";
  14.   cin >> Cote2;
  15.  
  16.   int hypotenuse;
  17.   hypotenuse = double sqrt(double Cote1)
  18.   cout << "Taille du cote de l'hypotenuse : ";
  19.   cout << hypotenuse << endl;
  20.   system("PAUSE" );
  21.   return 0; 
  22. }


L'erreur se trouve a la ligne 23 :
 

Citation :

Compilateur: Default compiler
Exécution de  g++.exe...
g++.exe "C:\ Downloads\SansNom1.cpp" -o "C:\Downloads\SansNom1.exe"    -I"C:\Dev-Cpp\include\c++\3.3.1"  -I"C:\Dev-Cpp\include\c++\3.3.1\mingw32"  -I"C:\Dev-Cpp\include\c++\3.3.1\backward"  -I"C:\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1\include"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib"  
C: /Downloads/SansNom1.cpp: In function `int main(int, char**)':
C: /Downloads/SansNom1.cpp:23: error: syntax error before `(' token
 
C: /Downloads/SansNom1.cpp:33:2: warning: no newline at end of file
 
Exécution terminée


 
Qui est la commande racine carrée trouvé sur le net :

Citation :

int hypotenuse;  
  hypotenuse = double sqrt(double Cote1)


 
Voila si vs avez des idées...  
 
Merci d'avance  :hello:


Message édité par Infosactualite le 07-12-2004 à 14:36:31
Reply

Marsh Posté le 07-12-2004 à 14:01:17   

Reply

Marsh Posté le 07-12-2004 à 14:05:23    

hypotenuse = double sqrt(double Cote1)
 
T'as pas l'impression qu'il y a comme un problème ?

Reply

Marsh Posté le 07-12-2004 à 14:06:42    

boulax a écrit :

hypotenuse = double sqrt(double Cote1)
 
T'as pas l'impression qu'il y a comme un problème ?


Héééé bennnn non  :(  
 
En fait je suis un n00b faut pas m'en vouloir  :(
 
EDIT : Le ; ?


Message édité par Infosactualite le 07-12-2004 à 14:09:54
Reply

Marsh Posté le 07-12-2004 à 14:13:16    

enleves les "double"  
ils servent a declarer le type de variables
 
si tu veux faire un cast ( passer d'un type a un autre) il faut mettre (double) au lieu de double


Message édité par fb@alphalog le 07-12-2004 à 14:13:27
Reply

Marsh Posté le 07-12-2004 à 14:14:28    

oui aussi, mais l'a tu veux utiliser la fonction, et là tu l'ecris comme tu l'a vue dans la doc... avec sa définition...
 
donc:
 
hypotenuse = sqrt(Cote1)
 
avec hypotenuse et Cote1 des Double (comme le mentionne la signature de la fonction sqrt)

Reply

Marsh Posté le 07-12-2004 à 14:16:23    

boulax a écrit :


hypotenuse = sqrt(Cote1)
 


et le point virgule, c'est en option ?

Reply

Marsh Posté le 07-12-2004 à 14:17:15    

Lam's a écrit :

et le point virgule, c'est en option ?


....
 
oui

Reply

Marsh Posté le 07-12-2004 à 14:22:14    

Ok merci a tous vous etes vriament fort !
 
J'ai essayé ca :
 

Citation :

Compilateur: Default compiler
Exécution de  g++.exe...
g++.exe "C:\Downloads\SansNom1.cpp" -o "C:\Downloads\SansNom1.exe"   -g3  -I"C:\Dev-Cpp\include\c++\3.3.1"  -I"C:\Dev-Cpp\include\c++\3.3.1\mingw32"  -I"C:\Dev-Cpp\include\c++\3.3.1\backward"  -I"C:\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1\include"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" -g3  
C:/Downloads/SansNom1.cpp: In function `int main(int, char**)':
C:/Downloads/SansNom1.cpp:19: error: `sqtr' undeclared (first use this  
   function)
C:/Downloads/SansNom1.cpp:19: error: (Each undeclared identifier is reported  
   only once for each function it appears in.)
C:/Downloads/SansNom1.cpp:21: error: syntax error before `<<' token
 
C:/Downloads/SansNom1.cpp:25:2: warning: no newline at end of file
 
Exécution terminée


Message édité par Infosactualite le 07-12-2004 à 14:23:00
Reply

Marsh Posté le 07-12-2004 à 14:28:03    

Citation :

C:/Downloads/SansNom1.cpp:19: error:  `sqtr' undeclared (first use this  
   function)  


 
Oui bon lis les messages d'erreur stp.

Reply

Marsh Posté le 07-12-2004 à 14:30:42    

euh... c'est du C ou du C++ ton truc là :??:
parceque les cout cin en C hein... [:kiki]

Reply

Marsh Posté le 07-12-2004 à 14:30:42   

Reply

Marsh Posté le 07-12-2004 à 14:35:29    

Oui j'ai vu après que j'avais mal tapé !!! :/
 
Voila, plus qu'une erreur :
 

Citation :


Compilateur: Default compiler
Exécution de  g++.exe...
g++.exe "C:\Downloads\SansNom1.cpp" -o "C:\Downloads\SansNom1.exe"   -g3  -I"C:\Dev-Cpp\include\c++\3.3.1"  -I"C:\Dev-Cpp\include\c++\3.3.1\mingw32"  -I"C:\Dev-Cpp\include\c++\3.3.1\backward"  -I"C:\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1\include"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" -g3  
C:/Downloads/SansNom1.cpp: In function `int main(int, char**)':
C:/Downloads/SansNom1.cpp:23: error: syntax error before `=' token
 
C:/Downloads/SansNom1.cpp:29:2: warning: no newline at end of file
 
Exécution terminée
 
C:/Downloads/SansNom1.cpp:29:2:{


Message édité par Infosactualite le 07-12-2004 à 14:35:58
Reply

Marsh Posté le 07-12-2004 à 14:36:19    

moktar1er a écrit :

euh... c'est du C ou du C++ ton truc là :??:
parceque les cout cin en C hein... [:kiki]

Du C++ tu as vu juste, je déplace

Reply

Marsh Posté le 07-12-2004 à 14:36:33    

reposte ton code stp.

Reply

Marsh Posté le 07-12-2004 à 14:37:12    

boulax a écrit :

reposte ton code stp.


 
Voila :
 

Code :
  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <iostream>
  4. #include <math.h>
  5. using namespace std;
  6. int main(int nNumberofArgs, char* pszArgs[])
  7. {
  8.   int Cote1;
  9.   cout << "Entrez la taille du premier cote formant l'angle droit du triangle: ";
  10.   cin >> Cote1;
  11.  
  12.   int Cote2;
  13.   cout << "Entrez la taille du deuxieme cote formant l'angle droit du triangle: ";
  14.   cin >> Cote2;
  15.  
  16.   int hypotenuse;
  17.   hypotenuse = Cote1 * Cote1 + Cote2 * Cote2;
  18.   cin >> hypotenuse;
  19.  
  20.   int calcul
  21.   calcul = sqrt(hypotenuse);
  22.    
  23.   cout << calcul << endl;
  24.   system("PAUSE" );
  25.   return 0; 
  26. }

Reply

Marsh Posté le 07-12-2004 à 14:37:56    

un ";" qui manque

Reply

Marsh Posté le 07-12-2004 à 14:38:46    

sqrt demande du double en paramètre et sort du double...
 
tu lui files un int et t'essaies de mettre le résultat dans un int, tu penses pas que tu risques d'avoir un léger problème?

(et je crois qu'il veut un retour à la ligne après la fin du main, ton compilo)


Message édité par masklinn le 07-12-2004 à 14:40:19

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

Marsh Posté le 07-12-2004 à 14:39:25    

boulax a écrit :

un ";" qui manque


Oui, a priori mon compilateur rejette mon code s'il manque des ;
 
Nouveaux mess. d'erreur avec la commande sqrt :
 

Citation :

Compilateur: Default compiler
Exécution de  g++.exe...
g++.exe "C:\Downloads\SansNom1.cpp" -o "C:\Downloads\SansNom1.exe"   -g3  -I"C:\Dev-Cpp\include\c++\3.3.1"  -I"C:\Dev-Cpp\include\c++\3.3.1\mingw32"  -I"C:\Dev-Cpp\include\c++\3.3.1\backward"  -I"C:\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1\include"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" -g3  
C:/Downloads/SansNom1.cpp: In function `int main(int, char**)':
C:/Downloads/SansNom1.cpp:23: error: call of overloaded `sqrt(int& )' is  
   ambiguous
C:/Dev-Cpp/include/math.h:151: error: candidates are: double sqrt(double)
C:/Dev-Cpp/include/c++/3.3.1/cmath:550: error:                 long double  
   std::sqrt(long double)
C:/Dev-Cpp/include/c++/3.3.1/cmath:546: error:                 float  
   std::sqrt(float)
 
C:/Downloads/SansNom1.cpp:29:2: warning: no newline at end of file
 
Exécution terminée

Reply

Marsh Posté le 07-12-2004 à 14:39:51    

Ah oui tiens, en plus je lui avais déjà dit.

Reply

Marsh Posté le 07-12-2004 à 14:40:20    

Infosactualite a écrit :

Oui, a priori mon compilateur rejette mon code s'il manque des ;


 
[:quoted]

Reply

Marsh Posté le 07-12-2004 à 14:45:08    

float ou double partout à la place des int.
 

Reply

Marsh Posté le 07-12-2004 à 14:46:48    

Mais vous apprenez quoi en écolé maintenant ???
 

Code :
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int main(int, char** )
  5. {
  6.   double Cote1;
  7.   cout << "Entrez la taille du premier cote formant l'angle droit du triangle: ";
  8.   cin >> Cote1;
  9.  
  10.   double Cote2;
  11.   cout << "Entrez la taille du deuxieme cote formant l'angle droit du triangle: ";
  12.   cin >> Cote2;
  13.  
  14.   double hypotenuse;
  15.   hypotenuse = Cote1 * Cote1 + Cote2 * Cote2;
  16.   cin >> hypotenuse;
  17.  
  18.   double calcul;
  19.   calcul = sqrt(hypotenuse);
  20.    
  21.   cout << calcul << endl;
  22.   system("PAUSE" );
  23.   return 0; 
  24. }


Message édité par Joel F le 07-12-2004 à 15:10:50
Reply

Marsh Posté le 07-12-2004 à 14:54:11    

encore des erreurs ligne 6 et 21  :whistle:

Reply

Marsh Posté le 07-12-2004 à 14:56:14    

et il manque pas un "using std::sqrt;" ?  
 
Enfin bref, c'est vraiment un forum de noobs ici. :D

Reply

Marsh Posté le 07-12-2004 à 15:05:30    

Lam's a écrit :

et il manque pas un "using std::sqrt;" ?  
 
Enfin bref, c'est vraiment un forum de noobs ici. :D


ben il use le namespace std là non [:gratgrat]


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

Marsh Posté le 07-12-2004 à 15:07:27    

Ah merde, faux que j'aille me chercher un café moi. A force de trainer ici, je devient un noob.

Reply

Marsh Posté le 07-12-2004 à 15:07:50    

use namespace::patator::boost::tesdents;

Reply

Marsh Posté le 07-12-2004 à 15:11:01    

push a écrit :

encore des erreurs ligne 6 et 21  :whistle:


 
quelle erreur ligne 6 o_O ?

Reply

Marsh Posté le 07-12-2004 à 15:13:03    

Déja, vu qu'il utilise pas les arguments de la ligne de commande, un "int main( )" s'impose.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 07-12-2004 à 15:15:46    

Ensuite, a la lecture de son programme, la ligne
  cin >> hypotenuse;  
n'a manifestement rien a foutre là, et provient d'un copier-coller du sans doute a un reflexe crispatoire muloïde.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 07-12-2004 à 15:16:08    

Lam's a écrit :

Ah merde, faux que j'aille me chercher un café moi. A force de trainer ici, je devient un noob.


 [:forummp3]  

Joel F a écrit :

quelle erreur ligne 6 o_O ?


Il veut sûrement que tu ajoutes argc et argv (c'est optionnel?)

gilou a écrit :

Déja, vu qu'il utilise pas les arguments de la ligne de commande, un "int main( )" s'impose.
A+,


remplacer int main(int argc, char ** argv)
par int main()?
 
 :sweat:


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

Marsh Posté le 07-12-2004 à 15:17:23    

Citation :

remplacer int main(int argc, char ** argv)  
par int main()?

 
Tout a fait.
Si on ne se sert pas des arguments de la ligne de commande, c'est pas la peine de les introduires.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 07-12-2004 à 15:18:18    

ligne 18 suivit de 19 c'est pas un peu incohérent ?  :whistle:

Reply

Marsh Posté le 07-12-2004 à 15:19:13    

gilou a écrit :

Citation :

remplacer int main(int argc, char ** argv)  
par int main()?

 
Tout a fait.
Si on ne se sert pas des arguments de la ligne de commande, c'est pas la peine de les introduires.
A+,


Tous les compilos acceptent? [:gratgrat]


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

Marsh Posté le 07-12-2004 à 15:20:20    

Masklinn a écrit :

Tous les compilos acceptent? [:gratgrat]


seulement ceux qui exigent des ";" à la fin de chaque instruction [:ddr555]


Message édité par boulax le 07-12-2004 à 15:20:29
Reply

Marsh Posté le 07-12-2004 à 15:21:55    

boulax a écrit :

seulement ceux qui exigent des ";" à la fin de chaque instruction [:ddr555]

[:_olivier_]  
C'est int main(int argc, char *argv[], char *envp[]) qui n'est pas necessairement accepté je crois.
Mais int main() et int main(int argc, char *argv[]) devraient etre acceptes par tout compilo C++ il me semble.
A+,


Message édité par gilou le 07-12-2004 à 15:23:15

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 07-12-2004 à 15:22:50    

Masklinn a écrit :

Tous les compilos acceptent? [:gratgrat]


 
bein oui pq il accepterait pas ? on peut aussi déclarer plein d'autres choses qui ne servent à rien dans le même genre si tu veux  :D

Reply

Marsh Posté le 07-12-2004 à 15:23:10    


ok [:spamafote]  
je dois avouer que j'ai du mal à voir l'intérêt profond de ne pas les mettre (sauf une ultraoptimisation mémoire pour gagner quelques octets de ram bien sûr), mais merci
 

push a écrit :

bein oui pq il accepterait pas ? on peut aussi déclarer plein d'autres choses qui ne servent à rien dans le même genre si tu veux  :D


Sauf que là le principe est de ne pas déclarer les trucs qui ne servent à rien [:cupra]
(et il pourrait ne pas accepter parce que le proto de la fonction main serait unique [:spamafote] )
 
PS: merci pour le enpv gilou, encore appris un truc moi [:figti]


Message édité par masklinn le 07-12-2004 à 15:25:37

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

Marsh Posté le 07-12-2004 à 15:25:06    

Masklinn a écrit :

ok [:spamafote]  
je dois avouer que j'ai du mal à voir l'intérêt profond de ne pas les mettre (sauf une ultraoptimisation mémoire pour gagner quelques octets de ram bien sûr), m

L'interet c'est de ne pas introduire inutilement de variables inutilisées.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 07-12-2004 à 15:25:27    

un truc qui s'apelle la lisibilitée, par exemple.

Reply

Marsh Posté le 07-12-2004 à 15:31:48    

int main(int,char**) est une prototype de main valide en C++ :o

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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