Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define MENU1 "\n\n \
- \n KOTITEHT\216V\216 2 \
- \n \
- \n 1 = Anna x \
- \n 2 = sin \
- \n 3 = cos \
- \n 4 = e^x \
- \n 5 = neli\224juuri \
- \n 6 = lopeta \
- \n \
- \n Valintasi:"
- #include <stdio.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 LaskeSini(double x)
- {
- int etumerkki = -1;
- int kierros = 1 ;
- double valisumma = x;
- double osasumma = x;
- do
- {
- osasumma = (osasumma * x * x) / ((kierros+1)*(kierros+2) );
- kierros = kierros + 2;
- valisumma = valisumma + osasumma*etumerkki;
- etumerkki = etumerkki * -1;
- }
- while ( kierros < 10);
- return valisumma;
- }
- double LaskeKosini(double x)
- {
- double valisumma = 1;
- double osasumma = 1;
- int etumerkki = -1;
- int kierros = 1;
- do
- {
- osasumma = (osasumma * x * x) / (kierros*(kierros+1) );
- kierros = kierros + 2;
- valisumma = valisumma + osasumma*etumerkki;
- etumerkki = etumerkki * -1;
- }
- while ( kierros < 10);
- return valisumma;
- }
- double LaskeEx(double x)
- {
- double valisumma;
- double osasumma;
- x = 0;
- int toistomaara;
- int kierros;
- do
- {
- while ( kierros <= toistomaara );
- {
- osasumma = (osasumma * x) / kierros;
- kierros = kierros + 1;
- }
- toistomaara = toistomaara + 1;
- valisumma = valisumma + osasumma;
- }
- while ( osasumma > 0.00001);
- return valisumma;
- }
- double LaskeNelioJuuri(double x)
- {
- double arvo;
- double dx;
- double muutos;
- x = arvo / 10;
- do
- {
- dx = (arvo - x*x) / ( 2.0 * x );
- x = x + dx;
- if ( arvo > x*x)
- muutos = arvo - x*x;
- else
- muutos = x*x - arvo;
- }
- while ( muutos > 0.00001 );
- return muutos;
- }
- int TeeValinta()
- {
- int valinta;
- int virhe = 0;
- int valintamaara = 6;
- int tehtava = 1;
- do
- {
- switch( tehtava )
- {
- case 1: printf( MENU1 ); break;
- case 2: break;
- }
- scanf("%d", &valinta);
- virhe = (valinta <= 0) || (valinta > valintamaara);
- if (virhe)
- printf("\a\nValitse numero v\204lilt\204 1...%i! \n", valintamaara);
- }
- while( virhe );
- return valinta;
- }
- double HaeX()
- {
- double x;
- double alaraja = -1.58;
- double ylaraja = 1.58;
- do
- {
- printf("\nAnna x:n arvo (v\204lill\204 -1,57..+1.57): ");
- scanf("%lf", &x);
- }
- while (x < alaraja || x > ylaraja);
- return x;
- }
- int main(void)
- {
- int tehtava;
- double x;
- do
- {
- tehtava = TeeValinta();
- switch( tehtava )
- {
- case 1: x = HaeX ();break;
- case 2: printf("\nsin(%3.2lf) = %6.3lf", x,LaskeSini(x));break;
- case 3: printf("\ncos(%3.2lf) = %6.3lf", x,LaskeKosini(x));break;
- case 4: printf("\ne^(%3.2lf) = %6.3lf", x,LaskeEx(x));break;
- case 5: printf("\neli\224juuri(%3.2lf) = %6.3lf", x,LaskeNelioJuuri(x));break;
- case 6: return 0; break;
- }
- }while( 1==1 );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement