/***************************************************************/ /* Prof. Dr. Carsten Vogt */ /* FH Koeln, Fak. 07 / Nachrichtentechnik */ /* http://www.nt.fh-koeln.de/vogt */ /* */ /* Beispielprogramm p06060202.c */ /* aus "C fuer Java-Programmierer", Hanser-Verlag */ /* */ /* Demonstriert wird die Verwendung der mathematischen Funk- */ /* tionen der Standardbibliothek. */ /***************************************************************/ #include #include #include int main(void) { int wahl, wahl2; double x, y, v, d; int i, n; long l; unsigned int initwert; do { do { printf("\n\nBitte auswaehlen:\n\n"); printf("( 1 ) Exponentialfunktionen und logarithmische Funktionen\n"); printf("( 2 ) Trigonometrische Funktionen\n"); printf("( 3 ) Betrags- und Rundungsfunktionen\n"); printf("( 4 ) Zufallszahlen\n"); printf("( 5 ) Sonstige Funktionen\n"); printf("( 0 ) Programmende\n"); scanf("%d",&wahl); printf("\n"); } while (wahl<0 || wahl>5); printf("\n"); switch(wahl) { case 1: printf("Bitte auswaehlen:\n\n"); printf("( 1 ) pow(x,y) \n"); printf("( 2 ) exp(x) \n"); printf("( 3 ) ldexp(x,y) \n"); printf("( 4 ) frexp(x,n) \n"); printf("( 5 ) sqrt(x) \n"); printf("( 6 ) log(x) \n"); printf("( 7 ) log10(x) \n"); scanf("%d",&wahl2); printf("\n"); switch(wahl2) { case 1: printf("pow(x,y):\n"); printf(" x? "); scanf("%lf",&x); printf(" y? "); scanf("%lf",&y); printf("\npow(%lf,%lf) = %lf\n",x,y,pow(x,y)); break; case 2: printf("exp(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nexp(%lf) = %lf\n",x,exp(x)); break; case 3: printf("ldexp(x,y):\n"); printf(" x? "); scanf("%lf",&x); printf(" y? "); scanf("%lf",&y); printf("\nldexp(%lf,%lf) = %lf\n",x,y,ldexp(x,y)); break; case 4: printf("frexp(x,n):\n"); printf(" x? "); scanf("%lf",&x); printf("\nfrexp(%lf,n) = %lf, n = %d\n",x,frexp(x,&n),n); break; case 5: printf("sqrt(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nsqrt(%lf) = %lf\n",x,sqrt(x)); break; case 6: printf("log(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nlog(%lf) = %lf\n",x,log(x)); break; case 7: printf("log10(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nlog10(%lf) = %lf\n",x,log10(x)); break; } break; case 2: printf("Bitte auswaehlen:\n\n"); printf("( 1 ) sin(x)\n"); printf("( 2 ) cos(x)\n"); printf("( 3 ) tan(x)\n"); printf("( 4 ) asin(x)\n"); printf("( 5 ) acos(x)\n"); printf("( 6 ) atan(x)\n"); printf("( 7 ) sinh(x)\n"); printf("( 8 ) cosh(x)\n"); printf("( 9 ) tanh(x)\n"); scanf("%d",&wahl2); printf("\n"); switch(wahl2) { case 1: printf("sin(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nsin(%lf) = %lf\n",x,sin(x)); break; case 2: printf("cos(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\ncos(%lf) = %lf\n",x,cos(x)); break; case 3: printf("tan(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\ntan(%lf) = %lf\n",x,tan(x)); break; case 4: printf("asin(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nasin(%lf) = %lf\n",x,asin(x)); break; case 5: printf("acos(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nacos(%lf) = %lf\n",x,acos(x)); break; case 6: printf("atan(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\natan(%lf) = %lf\n",x,atan(x)); break; case 7: printf("sinh(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nsinh(%lf) = %lf\n",x,sinh(x)); break; case 8: printf("cosh(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\ncosh(%lf) = %lf\n",x,cosh(x)); break; case 9: printf("tanh(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\ntanh(%lf) = %lf\n",x,tanh(x)); break; } break; case 3: printf("Bitte auswaehlen:\n\n"); printf("( 1 ) fabs(x)\n"); printf("( 2 ) abs(x)\n"); printf("( 3 ) labs(x)\n"); printf("( 4 ) ceil(x)\n"); printf("( 5 ) floor(x)\n"); scanf("%d",&wahl2); printf("\n"); switch(wahl2) { case 1: printf("fabs(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nfabs(%lf) = %lf\n",x,fabs(x)); break; case 2: printf("abs(x):\n"); printf(" x? (int-Wert) "); scanf("%d",&i); printf("\nabs(%d) = %d\n",i,abs(i)); break; case 3: printf("labs(x):\n"); printf(" x? (long-Wert) "); scanf("%ld",&l); printf("\nlabs(%ld) = %ld\n",l,labs(l)); break; case 4: printf("ceil(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nceil(%lf) = %lf\n",x,ceil(x)); break; case 5: printf("floor(x):\n"); printf(" x? "); scanf("%lf",&x); printf("\nfloor(%lf) = %lf\n",x,floor(x)); break; } break; case 4: printf("Anfangswert des Zufallszahlengenerators: "); scanf("%ud",&initwert); srand(initwert); printf("\n10 Zufallszahlen:\n"); for (i=0;i<10;i++) printf("%d ",rand()); printf("\n\n"); printf("RAND_MAX = %ld\n\n",RAND_MAX); break; case 5: printf("Bitte auswaehlen:\n\n"); printf("( 1 ) fmod(x,y)\n"); printf("( 2 ) modf(v,d)\n"); scanf("%d",&wahl2); printf("\n"); switch(wahl2) { case 1: printf("fmod(x,y):\n"); printf(" x? "); scanf("%lf",&x); printf(" y? "); scanf("%lf",&y); printf("\nfabs(%lf,%lf) = %lf\n",x,y,fmod(x,y)); break; case 2: printf("modf(v,d):\n"); printf(" v? "); scanf("%lf",&v); printf("\nmodf(%lf,d) = %lf, d = %lf\n",v,modf(v,&d),d); break; } break; } } while (wahl!=0); }