ein Kapitel zurück                                           ein Kapitel weiter

Hier die Lösung der Aufgabe......
Hier ist nun unser Programm mit 'double' - Werten und unseren 2 Neuen Funktionen die bei der 'op

/*Download:aufzgr.c*/
#include <stdio.h>
#include <math.h>
#define Pi 3.14

static double zahl;

double addition(double zahl)
{
double y;
printf("%lf+>",zahl);
scanf("%lf",&y);
fflush(stdin);
return zahl+=y;
}

double subtraktion(double zahl)
{
double y;
printf("%lf->",zahl);
scanf("%lf",&y);
fflush(stdin);
return zahl-=y;
}

double division(double zahl)
{
double y;
printf("%lf/>",zahl);
scanf("%lf",&y);
fflush(stdin);
return zahl/=y;
}

double multiplikation(double zahl)
{
double y;
printf("%lf*>",zahl);
scanf("%lf",&y);
fflush(stdin);
return zahl*=y;
}

double sqrtw(double zahl)
{
double x=sqrt(zahl);
printf("(sqrt)%lf>",x);
return x;
}

double hypotenuse(double zahl)
{
double a=zahl;
double b,c;
printf("Kathete b>");
scanf("%lf",&b);
c=(a*a)+(b*b);
return zahl=sqrt(c);
}

double kugel(double zahl)
{
double d=zahl;
return zahl=Pi*(d*d*d)/6;
}


double (*rechenfunk[])(double) = { addition, subtraktion,
division, multiplikation,
sqrtw, hypotenuse, kugel };

int main()
{
char op;

printf("no.>");
scanf("%lf",&zahl);
do {
printf(" op>");
scanf("%c",&op);
fflush(stdin);
switch(op)
{
case '+': printf("%lf",zahl=(*rechenfunk[0])(zahl)); break;
case '-': printf("%lf",zahl=(*rechenfunk[1])(zahl)); break;
case '/': printf("%lf",zahl=(*rechenfunk[2])(zahl)); break;
case '*': printf("%lf",zahl=(*rechenfunk[3])(zahl)); break;
case 'q': printf("%lf",zahl=(*rechenfunk[4])(zahl)); break;
case 'H': printf("H=%lf",zahl=(*rechenfunk[5])(zahl)); break;
case 'V': printf("V=%lf",zahl=(*rechenfunk[6])(zahl)); break;
default : printf("op '=','+','-','/','*','q','H','V'\n"); break;
}
} while(op != '=');

printf("Gesamtergebnis=%lf\n",zahl);

return 0;
}

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf