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

  FORUM HardWare.fr
  Programmation
  C

  [linux]librairie math.h

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[linux]librairie math.h

n°961074
Atomos
/home/ato/.geek_ville
Posté le 24-01-2005 à 20:01:08  profilanswer
 

Bonjour, j'ai un petit probleme, je souhaite utiliser la fonction sqr, ou sqrf sous anjura, le probleme etant que je ne trouve pas dans quelle librairie elle se situe, sous windows elle se trouve dans "math.h", aperement, la non, si quelqu'un peut m'aider ;)  
Merci d'avance !!! :)

mood
Publicité
Posté le 24-01-2005 à 20:01:08  profilanswer
 

n°961078
KangOl
Profil : pointeur
Posté le 24-01-2005 à 20:03:00  profilanswer
 

c'est pas plutot sqrt ??


---------------
Nos estans firs di nosse pitite patreye...
n°961080
matafan
Posté le 24-01-2005 à 20:03:25  profilanswer
 

NAME
       sqrt, sqrtf, sqrtl - square root function
 
SYNOPSIS
       #include <math.h>
 
       double sqrt(double x);
 
       float sqrtf(float x);
 
       long double sqrtl(long double x);
 
       Link with -lm.


 
Comme dit le man, "Link with -lm".

n°961111
Taz
bisounours-codeur
Posté le 24-01-2005 à 20:13:54  profilanswer
 

sqrt powa, tgmath de C99 faisant tout le travail (pas la peine d'avoir 1 nom différent par fonction)

n°961184
Atomos
/home/ato/.geek_ville
Posté le 24-01-2005 à 20:35:12  profilanswer
 

Merci, mais comment le faire fonctionner je me prend la tete pour le faire fonctionner, et comme mon prof aime pas linux, il n'a pas pu m'aider ..., si voulez bien jetter un oeil sur mon programe :)
Je doit faire un programe qui calcul une equation du second degrée, avec DELTA :
 
#include <stdio.h>
#include <math.h>
 
main()
{
   int a,b,c;
   float x,x1,x2,delt;
   float sqrt;
   printf("saisir les reelles a,b,c" );
   scanf("%d",&a);
   scanf("%d",&b);
   scanf("%d",&c);
   delt=((b*b)-4*(a*c));
   
   if(delt>0)
   {
      x1=-b-sqrt(delt)/(2*a);
      x2=-b+sqrt(delt)/(2*a);
      printf("delta= %f\n",delt);
      printf("x1= %f\n",x1);
      printf("x2= %f\n",x2);
   }
 
   if(delt=0)
   {
       x=(-b/2*a)
       printf("delta= %f\n",delt);
       printf("x= %f\n",x);
   }
   else
   {
 
       printf("pas de solution" );
 
   }
}
 
MERCI !!!

n°961211
Atomos
/home/ato/.geek_ville
Posté le 24-01-2005 à 20:49:47  profilanswer
 

Personne pour m'aider :( ?

n°961225
Taz
bisounours-codeur
Posté le 24-01-2005 à 20:57:39  profilanswer
 

et c'est quoi le programme ?

n°961236
Atomos
/home/ato/.geek_ville
Posté le 24-01-2005 à 21:01:34  profilanswer
 

Comme ecrit dans mon post c'est un programme qui calcul les equations du second degré, je voudrais savoir coment emplyer la fonction SQRT, merci :)

n°961237
Taz
bisounours-codeur
Posté le 24-01-2005 à 21:02:05  profilanswer
 

et ben c'est bon là non ?

n°961248
Taz
bisounours-codeur
Posté le 24-01-2005 à 21:10:24  profilanswer
 

tiens j'avais pas ... t'as oublié de déclaré 'int printf;' comme variable

mood
Publicité
Posté le 24-01-2005 à 21:10:24  profilanswer
 

n°961379
Emmanuel D​elahaye
C is a sharp tool
Posté le 24-01-2005 à 22:46:24  profilanswer
 

Atomos a écrit :

et comme mon prof aime pas linux, il n'a pas pu m'aider ...,


 
Rien à voir avec Linux, c'est du code standard...
 

Citation :

si voulez bien jetter un oeil sur mon programe :)
Je doit faire un programe qui calcul une equation du second degrée, avec DELTA :
 
#include <stdio.h>
#include <math.h>
 
main()


[C99] main() doit retourner le type int explicitement.

Citation :


{
   int a,b,c;
   float x,x1,x2,delt;


Les calculs sont plus précis avec le type 'double'

Citation :


   float sqrt;


Euh, non. La fonction sqrt() est déclarée dans math.h. Mieux vaut éviter les conflits!

Citation :


   printf("saisir les reelles a,b,c" );


Manque un espace (lisibilité) et un fflush (stdout) (pas de '\n')

Citation :


   scanf("%d",&a);
   scanf("%d",&b);
   scanf("%d",&c);


Peu de gens savent utiliser *scanf() correctement (tape 'a' pour voir...)
Les autres utilisent fgets() et la fonction de conversion qui va bien.
 
http://mapage.noos.fr/emdel/notes.htm#saisie
 

Citation :


   delt=((b*b)-4*(a*c));
   
   if(delt>0)
   {
      x1=-b-sqrt(delt)/(2*a);
      x2=-b+sqrt(delt)/(2*a);
      printf("delta= %f\n",delt);
      printf("x1= %f\n",x1);
      printf("x2= %f\n",x2);
   }


La logique est fausse. (manque un else)

Citation :


 
   if(delt=0)


La syntaxe est fausse. ('==' et non '=')

Citation :


   {
       x=(-b/2*a)


La syntaxe est fausse. (manque un ; ) C'est dur à voir ça ?

Citation :


       printf("delta= %f\n",delt);
       printf("x= %f\n",x);
   }
   else
   {
       printf("pas de solution" );


manque un \n.

Citation :


   }


Il manque un  
   return 0;

Citation :


}


Message édité par Emmanuel Delahaye le 24-01-2005 à 22:57:33

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°961387
fafounet
Posté le 24-01-2005 à 22:52:49  profilanswer
 

En vrac :
 
int main(void) au lieu de main. Rajoutes return 0; à la fin du main.
 

Code :
  1. if(delt=0)
  2.    {
  3.        x=(-b/2*a)


Il manque un ;
 

Code :
  1. if(delt=0)


 
C'est == et non =
 

Code :
  1. float sqrt;


 
Et vires ca
 
 
P.S. Tu le compiles ton code ??
Si oui regardes les warnings
 
Edit : Emmanuel tu m'as grillé mais pas sur tout ;)


Message édité par fafounet le 24-01-2005 à 22:54:28
n°961478
pinguin007
a npe error
Posté le 25-01-2005 à 00:21:13  profilanswer
 

à la compilation il faut que tu indique que tu as besoin de la lib math :  
 
gcc -Wall -lm -fichier.c  
 
on avait eu ce probléme en tp, il fallait indiquer à gcc d'utiliser la lib bien qu'elle soit en include


---------------
LoD 4 ever && PWC spirit|Le topak de l'iMP-450|inDATOUNEwe trust

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

  [linux]librairie math.h

 

Sujets relatifs
javascript et linuxUtiliser SDL avec NASM sous linux
nombres premiers & librairie GMP (mpz_probab_prime_p)[usb linux]Besoin d'une explication sur les URB et interruptions
[C/Linux] récupérer signaux capteurs carte mère[C++/Qt] erreur de librairie time.h
Comment lire une bdd SQL Server sous windows depuis Linux[UNIX / LINUX]Comment feriez vous ceci ?
[C] Compiler un module Linux[module linux] fread appelle ioctl avec cmd=TCGETS ???
Plus de sujets relatifs à : [linux]librairie math.h


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