Modification à faire
alffouss
Messages postés
150
Statut
Membre
-
alffouss -
alffouss -
Bonjour,
J'ai effectué un programme en C qui me permet de calculer un cosinus.
Le probléme c'est que mon programme ne me permet pas de calculé le cosinus des valeurs élevé.
Voici mon code C et merci pour me donné une astuce qui me permet de calculé le cosinus des nombres élevé.
Le CODE:
#include<stdio.h>
#include<stdlib.h>
float puissance(float x, int n)
{
float p=1;
int i=1;
if (n==0)
return 1;
for (i=1; i<=n; i++)
{
p=p*x;
}
return p;
}
int factorielle(int n)
{
int i=n-1, resultat=n;
if(n==0)
return 1;
while(i>1)
{
resultat=resultat*i;
i=i-1;
}
return resultat;
}
double sinus( double x)
{
double precision=0.00001;
int cste=1;
int n=0;
double sin=0;
while(((puissance(x, n+1))/(factorielle(n+1)))>=precision)
{
sin=sin+(cste*puissance(x, n+1))/(factorielle(n+1));
cste=-1*cste;
n=n+2;
}
return sin;
}
double cosinus(double x)
{
double precision=0.00001;
int cste=1;
int n=0;
double cos=0;
while(((puissance(x, n))/(factorielle(n)))>=precision)
{
cos=cos+(cste*puissance(x, n))/(factorielle(n));
cste=-1*cste;
n=n+2;
}
return cos;
}
main()
{
//double x=3;
double b;
double Pi=3.14159;
double x=2*Pi;
b=cosinus(x);
printf(" b = %lf \n", b);
}
J'ai effectué un programme en C qui me permet de calculer un cosinus.
Le probléme c'est que mon programme ne me permet pas de calculé le cosinus des valeurs élevé.
Voici mon code C et merci pour me donné une astuce qui me permet de calculé le cosinus des nombres élevé.
Le CODE:
#include<stdio.h>
#include<stdlib.h>
float puissance(float x, int n)
{
float p=1;
int i=1;
if (n==0)
return 1;
for (i=1; i<=n; i++)
{
p=p*x;
}
return p;
}
int factorielle(int n)
{
int i=n-1, resultat=n;
if(n==0)
return 1;
while(i>1)
{
resultat=resultat*i;
i=i-1;
}
return resultat;
}
double sinus( double x)
{
double precision=0.00001;
int cste=1;
int n=0;
double sin=0;
while(((puissance(x, n+1))/(factorielle(n+1)))>=precision)
{
sin=sin+(cste*puissance(x, n+1))/(factorielle(n+1));
cste=-1*cste;
n=n+2;
}
return sin;
}
double cosinus(double x)
{
double precision=0.00001;
int cste=1;
int n=0;
double cos=0;
while(((puissance(x, n))/(factorielle(n)))>=precision)
{
cos=cos+(cste*puissance(x, n))/(factorielle(n));
cste=-1*cste;
n=n+2;
}
return cos;
}
main()
{
//double x=3;
double b;
double Pi=3.14159;
double x=2*Pi;
b=cosinus(x);
printf(" b = %lf \n", b);
}
A voir également:
- Modification à faire
- Suivi de modification word - Guide
- Modification dns - Guide
- Logiciel gratuit modification pdf - Guide
- Modification liste déroulante excel - Guide
- Modification clavier azerty - Guide
3 réponses
en remplaçant les int par des long, et les float par des doubles ? en les mettant en unsigned si tu ne compte pas faire avec des nombres négatifs. sinon les OS fournissent généralement des types permettant des valeurs plus grosses, style int64 ou autre
Merci pour ta reponse mais en effet sur les doubles je ne peut pas mettre de unsigned et sur les int j'ai mis unsigned lon mais j'ai tjrs rien.
Vous pouvez envoyé la bonne réponse avec le code SLP
merci
Vous pouvez envoyé la bonne réponse avec le code SLP
merci
en fait dans le programme, je suis sensé faire le calcul à différentes frequentes donc des multiples de 2 pi et en calculant bah le code me sort des valeurs absurde genre cos (10) il me donne 4912150 alors que je devrai avoir -0.839......
je pense que c'est juste la partie cosinus qui ne marche pas!!!
alors si qlq'un a une idée! aidez moii svp
je pense que c'est juste la partie cosinus qui ne marche pas!!!
alors si qlq'un a une idée! aidez moii svp