Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #pragma warning(disable:4996)
- double LaskeSini(double x);
- double LaskeKosini(double x);
- double LaskeEx(double x);
- double LaskeNelioJuuri(double x);
- int TeeValinta(char menu[]);
- double HaeX(double alaraja, double ylaraja);
- double LaskeEx(double x)
- {
- double y;
- y=x;
- double valisumma = 1;
- double osasumma = 1;
- int toistomaara = 1;
- int kierros = 1;
- do
- {
- while(kierros<=toistomaara)
- {
- osasumma = (osasumma*y) / kierros;
- kierros++;
- }
- toistomaara = toistomaara + 1;
- valisumma = valisumma + osasumma;
- }
- while( osasumma > 0.00001);
- return valisumma;
- }
- double LaskeKosini(double x)
- {
- double valisumma =1;
- double osasumma =1;
- int etumerkki = -1;
- int kierros=1;
- double y;
- y=x;
- do
- {
- osasumma = (osasumma * y * y) / (kierros*(kierros+1) );
- kierros = kierros + 2;
- valisumma = valisumma + osasumma*etumerkki;
- etumerkki = etumerkki * -1;
- }
- while (kierros < 10);
- return valisumma;
- }
- double LaskeSini(double x)
- {
- int etumerkki = -1;
- int kierros = 1 ;
- double y;
- y=x;
- double valisumma = y;
- double osasumma =y;
- do
- {
- osasumma = (osasumma * y * y) / ((kierros+1)*(kierros+2));
- kierros = kierros + 2;
- valisumma = valisumma + osasumma*etumerkki;
- etumerkki = etumerkki * -1;
- }
- while ( kierros<10) ;
- return valisumma;
- }
- double LaskeNelioJuuri(double x)
- {
- double muutos = 0;
- double arvo = 0;
- double dx = 0;
- double yx=x;
- arvo=yx;
- yx = arvo / 10;
- do
- {
- dx = (arvo - yx*yx) / ( 2.0 * yx );
- yx = yx + dx;
- if ( arvo > yx*yx)
- {
- muutos = arvo - yx*yx;
- }
- else
- {
- muutos = yx*yx - arvo;
- }
- }
- while (muutos > 0.00001 );
- return yx;
- }
- int TeeValinta()
- {
- double x=0;
- double y,z,q,w;
- do
- {
- int a=0;
- printf("\n 1 = Anna x\n");
- printf(" 2 = sin\n");
- printf(" 3 = cos\n");
- printf(" 4 = e^x\n");
- printf(" 5 = neli\224juuri\n");
- printf(" 6 = lopeta\n");
- printf("\n Valintasi ");
- scanf("%i",&a);
- switch(a)
- {
- case 1:x=HaeX(1,1);break;
- case 2:q=LaskeSini(x);printf("\n Sin(%3.2f) = %6.3f\n",x,q);break;
- case 3:w=LaskeKosini(x);printf("\n Cos(%3.2f) = %6.3f\n",x,w);break;
- case 4:z=LaskeEx(x);printf("\n e^%3.2f = %6.3f\n",x,z);break;
- case 5:y=LaskeNelioJuuri(x);printf("\n Neli\224juuri (%3.2f) = %6.3f\n",x,y);break;
- case 6:return 0; break;
- }
- }
- while (1==1);
- }
- double HaeX(double alaraja, double ylaraja)
- {
- float e=0;
- alaraja = -1.58;
- ylaraja = 1.58;
- do
- {
- printf("\nAnna x:n arvo (v\204lill\204 -1.57..+1.57) ");
- scanf("%f", &e);
- }
- while(e<alaraja || e >ylaraja);
- return e;
- }
- int main(void)
- {
- printf("\n KOTITEHT\216V\216 2\n");
- TeeValinta();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement