|
|
@ -0,0 +1,106 @@ |
|
|
|
/*********************** |
|
|
|
* Ein einfacher Taschenrechner |
|
|
|
* |
|
|
|
* Rainer Hihn |
|
|
|
*/ |
|
|
|
|
|
|
|
#include <stdio.h> |
|
|
|
|
|
|
|
void exit(int); |
|
|
|
|
|
|
|
float calculate(char optr, float opr1, float opr2) |
|
|
|
{ |
|
|
|
float rErg = 0; |
|
|
|
|
|
|
|
switch(optr) { |
|
|
|
/** |
|
|
|
* addieren |
|
|
|
*/ |
|
|
|
case '+': |
|
|
|
rErg = opr1 + opr2; |
|
|
|
break; |
|
|
|
/** |
|
|
|
* subtrahieren |
|
|
|
*/ |
|
|
|
case '-': |
|
|
|
rErg = opr1 - opr2; |
|
|
|
break; |
|
|
|
/** |
|
|
|
* multiplizieren |
|
|
|
*/ |
|
|
|
case '*': |
|
|
|
rErg = opr1 * opr2; |
|
|
|
break; |
|
|
|
/** |
|
|
|
* dividieren |
|
|
|
*/ |
|
|
|
case '/': |
|
|
|
rErg = opr1 / opr2; |
|
|
|
break; |
|
|
|
/** |
|
|
|
* Wenn kein erlaubter |
|
|
|
* Operator eingegeben wurde |
|
|
|
*/ |
|
|
|
default: |
|
|
|
printf("Falscher Operator: %c \n", optr); |
|
|
|
exit(1); |
|
|
|
} |
|
|
|
|
|
|
|
return rErg; |
|
|
|
} |
|
|
|
|
|
|
|
int main(void) |
|
|
|
{ |
|
|
|
/** |
|
|
|
* Variablendeklaration |
|
|
|
*/ |
|
|
|
char cOptr; |
|
|
|
float fOpr1; |
|
|
|
float fOpr2; |
|
|
|
float fErg; |
|
|
|
|
|
|
|
while(1) |
|
|
|
{ |
|
|
|
printf("Eingabe: Operator <return> Operand1 <return> Operand2 <return> \n"); |
|
|
|
|
|
|
|
/** |
|
|
|
* Benutzereingabe Operator |
|
|
|
*/ |
|
|
|
printf("Bitte Eingabe Operator \n"); |
|
|
|
scanf(" %c", &cOptr); |
|
|
|
|
|
|
|
/** |
|
|
|
* Programm wird beendet wenn |
|
|
|
* 'q' eingeben wird |
|
|
|
*/ |
|
|
|
if(cOptr == 'q') |
|
|
|
{ |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Benutzereingabe Operand 1 |
|
|
|
*/ |
|
|
|
printf("Bitte Eingabe Operand1: \n"); |
|
|
|
scanf(" %f", &fOpr1); |
|
|
|
/** |
|
|
|
* Benutzereingabe Operand 2 |
|
|
|
*/ |
|
|
|
printf("Bitte Eingabe Operand2: \n"); |
|
|
|
scanf(" %f", &fOpr2); |
|
|
|
|
|
|
|
if(cOptr == '/' && fOpr2 == 0) |
|
|
|
{ |
|
|
|
printf("ehm ... nein? \n"); |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Ergebnis berechnen und ausgeben |
|
|
|
*/ |
|
|
|
fErg = calculate(cOptr, fOpr1, fOpr2); |
|
|
|
printf("%f %c %f = %f \n\n", fOpr1, cOptr, fOpr2, fErg); |
|
|
|
} |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |