Votre question

[c] Probleme fonction cos

Tags :
  • Programmation
Dernière réponse : dans Programmation
28 Janvier 2010 09:19:55

Bonjour,
mon problème est le suivant :
j'ai besoin d'utiliser la fonction dans mon code en langage c et celle ci, pour un paramètre inc2=15 déclaré en double, me renvoi une valeur négative ...

Merci de votre aide


  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4.  
  5. int main (void)
  6. {
  7. int rep2;
  8. int pan;
  9. int lon1;
  10. int nblon;
  11. int nbram;
  12. int surface;
  13. int tot1;
  14. int P;
  15. char rep1;
  16. float R;
  17. float rampant=0;
  18. float inc1;
  19. float h;
  20. double a;
  21. double inc2;
  22.  
  23. printf("Quel est la longeur du rampant en m?\n");
  24. scanf("%f",&rampant);
  25. fflush(stdin);
  26. printf("Cette mesure correspond t elle a la longeur au sol ? o=oui n=non\n");
  27. scanf("%c", &rep1);
  28.  
  29.  
  30. if(rep1=='o')
  31. {
  32. fflush(stdin);
  33. printf("Connaissez vous l'inclinaison en %% ou en degre 1 = %% 2 = degre\n");
  34. scanf("%d",&rep2);
  35.  
  36. if(rep2==1)
  37. {
  38. fflush(stdin);
  39. printf("Inclinaison en %% ?\n");
  40. scanf("%f",&inc1);
  41. h=(rampant*inc1)/100;
  42. R=(rampant*rampant)+(h*h);
  43. rampant=sqrt(R);
  44. printf("Le rampant fait %f m\n",rampant);
  45. }
  46.  
  47. else if(rep2==2)
  48. {
  49. fflush(stdin);
  50. printf("Inclinaison en degre ?\n");
  51. scanf("%lf",&inc2);
  52. printf("inc2 : %f\n",inc2);
  53. a=cos(inc2);
  54. printf("a: %f\n",a);
  55. rampant=rampant/a;
  56. printf("Le rampant fait %f m\n",rampant);
  57. }
  58. }
  59. else if(rep1=='n')
  60. {
  61. printf("Le rampant fait %f m\n",rampant);
  62. }
  63.  
  64. fflush(stdin);
  65. printf("Quel type de panneau souhaitez vous utiliser : 1:Roto 2:Biosol 3:EGM \n");
  66. scanf("%d",&pan);
  67. fflush(stdin);
  68. printf("Quel est la longeur de la toiture ?\n");
  69. scanf("%d",&lon1);
  70.  
  71. if(pan==1)
  72. {
  73. fflush(stdin);
  74. surface=rampant*lon1;
  75. printf("La surface de la toiture est de %d m\n",surface);
  76. nblon=lon1/1.047;
  77. nbram=rampant/2.028;
  78. tot1=nblon*nbram;
  79. printf("Vous pouvez mettre %d panneaux : %d sur la longeur et %d sur le rampant\n",tot1,nblon,nbram);
  80. P=270*tot1;
  81. printf("La puissance de l installation est : %d kW\n",P);
  82. }
  83.  
  84. else if(pan==2)
  85. {
  86. nblon=lon1/1.047;
  87. }
  88.  
  89. system("PAUSE");
  90.  
  91. }

Autres pages sur : probleme fonction cos

a b L Programmation
28 Janvier 2010 20:32:31

Le cosinus s'utilise en radians, pas en degrés.
1 tour de cercle c'est 360° et 2Pi, donc pour convertir en radians, il faut multiplier par 2 * Pi / 360 = Pi / 180.
Pour la valeur de Pi, tu peux utiliser M_PI dans math.h
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS