begin process at 2012 05 29 01:13:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

cosinus


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

cosinus

jeudi 11 décembre 2003 à 04:56:51 | cosinus

anek971

Bonjour ,ben avt de demander de l'aide j'ai chercher sur le forum mais ya pas le programme en c.
Et en faite c juste pr une verification car mon programme ne marche po et j'ai exam vendredi :).
sachant ke l'on doit effectuer le calcul suivant (-1)^n*x^2n/(2n)! tant que <= a epsilon=0.00001
#include<stdio.h>
double puis(double x, int n)
{
double a,y;
int b,i;
a=x;
b=n;
y=1.0;
i=0;
if(b==0)
return 1;
while(i<b)
{
y=y*a;
i++;
}
int fact (int b)
{
int a,r,i;
i=1;
r=1;
a=b;
if(a==0)
return 1;
while (i<b)
{
r=r*i;
i++;
}
return r;
}
int main (void)
{
double x,y,epsilon;
int n;
n=1;
y=1;
printf("tapez la valeur de x:\);
scanf("%lf",&x);
while(puis(-1,n)*puis(x,2*n)/fact(2*n)<=epsilon)
{
y=y+puis(-1,n)*puis(x,2*n)/fact(2*n);
n++;
}
printf("cos(%lf)=%lf",x,y);
}
pitié aidez moi et si un mail comme le mie a déjà été posté mille excuse mais pitiez de l'aide.
jeudi 11 décembre 2003 à 08:53:33 | Re : cosinus

garslouche

1) Dans mes sources tu trouveras comment on calcule un cos, fact et pow (la source intitulée qqc comme "MATH.H reprogrammé")

2) Ton code est rempli de fautes...ta fonction puissance est fausse (elle renvoie en fait x^(N-1) ). Tes fonctions sont mal concues puisque tu utilises while à tout bout de champ ce qui n'est pas la bonne solution...
ton test <=epsilon devrait être >epsilon : tant qu'on est superieur à epsilon on cherche plus petit.

Bref...voila comment tu aurais pu faire (j'ai refait tes fonctions puis avec fact mais j'ai laissé l'esprit de ton main)

double puis(double x, int n)
{
double res = 1;
for (int i=0; i<n; i++)
res *= x;
return res;
}

int fact (int b)
{
int res = 1;
for (int i=1; i<=b; i++)
res *= i;

return res;
}

double fabs(double x)
{
if (x<0)
return -x;
return x;
}

int main (void)
{
double x,y,epsilon;
epsilon = 0.00001;

int n;
n=0;
y=0;
printf("tapez la valeur de x:");
scanf("%lf",&x);

while(fabs(puis(-1,n)*puis(x,2*n)/fact(2*n))>epsilon)
{
y=y+puis(-1,n)*puis(x,2*n)/fact(2*n);
n++;
}
printf("cos(%lf)=%lf\nfact 5=%lf",x,y, puis(2,10));

return 0;
}

Sur le principe il faudrait aussi éviter de calculer 2 fois puis(-1,n)*puis(x,2*n)/fact(2*n). Et donc de le mettre dans une variable mais bon...je ne vais pas refaire ce qui est deja dans mes sources !


Je vais te donner un bon conseil pour savoir quand il faut utiliser while et quand il faut utiliser for :
On utilise for "quand on sait d'où on part et où on termine". Sinon on utilise while.
Par exemple pour la factorielle, onsait quand par de i=1 et qu'on s'arrete à i=N...donc for
Pour la puissance on sait qu'on va faire N itérations (donc on part de 0 et on va jusqu'à N-1 par exemple)
Par contre on ne peut pas savoir à l'avance combien de temps on va mettre pour arriver à moins de epsilon => il faut utiliser while.

Voila. En esperant que ces conseils te fassent reussir ton exam !


On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
jeudi 11 décembre 2003 à 14:36:47 | Re : cosinus

anek971

Merci beaucoup garslouche ;).
j'avoe ca fait pas ltps ke je programme bon ok ca se voit lol.
mais le truc c ke ds mon enoncé j'étais obliger d'utiliser while d'ou mon prog.(Y avais tant def aute ke ca !!arfffff).
En tout cas encore merci.


Cette discussion est classée dans : int, while, return, double, fact


Répondre à ce message

Sujets en rapport avec ce message

probleme reallocation memoire vecteur [ par savoyard ] double *b;//fction allocation memoire: (permet d'allouer pas obligatoirement à partir de b[0] mais d ou on veut:double *dvector(int nl,int nh){double Lecture d'un fichier quelconque [ par jb60 ] Bonjour,J'aimerais savoir si il est possible de lire les données d'un fichier quelconque lorsqu'on ne connait pas le format du fichier d'origine... Je erreur incomprise ... [ par tontonjab ] bonjour ... j'ai un probleme avec mon code source, et j'aimerais bien que vous y jetié un coup d'oeil pour m'aider !////////////////////#include #incl Hello World [ par Mr.X ] Alors voila un petit Hello World : #include #include #define GFSZF 256 #define GERZHR -10int eazzs=0;int FH3EIGJ(int a);int e(){return 12;}class htrd interface de jeu [ par cafou ] sltest ce que qu'elqu'un peut me propose une interphase graphique et des animations au jeu en language c si dessousmerci d'avance#include#include#incl steganographie C [ par trypon ] Bonjour je programme sous ggcc (LINUX) et j'ai un petit pb avec mon programme j'arrive a mettre un texte dans l'image mais pas à faire le contrairela probleme cast [ par morgandetoi06 ] svp aidez moi...j utilise la fonction pow qui renvoie un doubledonc je fait double b; // nombredouble j; // exposantdouble n; // reponsen=pow(b,j);don C++ de merde...enfin je veux dire... [ par brindillee ] Salut,J'ai un petit soucis qui me cause des grands soucis...Voila j'ai choppé une fonction de décomposition (svd...) en C++ sur le net mais je n'arriv ressources et API !!!! [ par Xs ] salut !voila, pour me simplifier la tache, j'utlise les ressources pour creer une boite de dialog (sous VC++ 6).mais j'obtiens, lors de la compilation class matrice [ par flaky ] Slt à tousJ'utilise une classe "matrice" (celle de nicolas aunai, téléchargée sur le site) qui fonctionne très bien. Mais j'ai du mal à manipuler l'ob


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales