Browse Source
added BasicMode.c and refractoring to testForOperator/taschenrechner.h
remotes/origin/feature
added BasicMode.c and refractoring to testForOperator/taschenrechner.h
remotes/origin/feature
Enrico Schellenberger
11 months ago
3 changed files with 143 additions and 64 deletions
@ -1,8 +1,56 @@ |
|||||
#include <stdio.h> |
|
||||
#include <string.h> |
|
||||
#include <stdlib.h> |
|
||||
#include <math.h> |
|
||||
|
|
||||
#include "taschenrechner.h" |
|
||||
|
|
||||
|
|
||||
|
#include <stdio.h> |
||||
|
#include <string.h> |
||||
|
#include <stdlib.h> |
||||
|
#include <math.h> |
||||
|
|
||||
|
#include "taschenrechner.h" |
||||
|
|
||||
|
|
||||
|
void BasicMode() { |
||||
|
char endtmp = '0'; //0 false, 1 true |
||||
|
double result = 0; |
||||
|
double numbers[100] = {0.0}; |
||||
|
char operatoren[100]; |
||||
|
|
||||
|
do { |
||||
|
//100 doubles in this array goes through the for loop till 100 numbers or = is entered |
||||
|
for (int i = 0; i < 100) { |
||||
|
printf("Enter a Number: "); |
||||
|
numbers[i] = testForNumber(); //gets number |
||||
|
|
||||
|
printf("Enter a operation: "); |
||||
|
operator[i] = testForOperator(); //gets operator |
||||
|
|
||||
|
if (i > 1) { //if function to prevent numbers[-1] |
||||
|
switch (operator[i]) //checks of the operator and switches to the case with the needed function |
||||
|
{ |
||||
|
case '+': |
||||
|
result += add(numbers[i - 1], numbers[i]) |
||||
|
break; |
||||
|
|
||||
|
case '-': |
||||
|
result += minus(numbers[i - 1], numbers[i]) |
||||
|
break; |
||||
|
|
||||
|
case '*': |
||||
|
result += multiply(numbers[i - 1], numbers[i]) |
||||
|
break; |
||||
|
|
||||
|
case '/': |
||||
|
result += divide(numbers[i - 1], numbers[i]) |
||||
|
break; |
||||
|
|
||||
|
case '=': |
||||
|
printf("The result is: %d", result); |
||||
|
endtmp = 1; |
||||
|
break; |
||||
|
|
||||
|
default: |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
i++; |
||||
|
} |
||||
|
} while (endtmp != '1') |
||||
|
|
||||
|
} |
@ -1,56 +1,59 @@ |
|||||
#ifndef TASCHENRECHNER_H |
|
||||
#define TASCHENRECHNER_H |
|
||||
|
|
||||
//add function |
|
||||
doulbe add(doulbe a, doulbe b); |
|
||||
|
|
||||
//minus function |
|
||||
doulbe minus(doulbe a, doulbe b); |
|
||||
|
|
||||
//multiply function |
|
||||
doulbe multiply(doulbe a, doulbe b); |
|
||||
|
|
||||
//divide function |
|
||||
doulbe divide(doulbe a, doulbe b); |
|
||||
|
|
||||
//get input and check if its a number |
|
||||
double testForNumber() |
|
||||
|
|
||||
// Square root function |
|
||||
double squareRootFunction(double x); |
|
||||
|
|
||||
//.. |
|
||||
// Trigonometric functions |
|
||||
double sineFunction(double angle); |
|
||||
|
|
||||
double cosineFunction(double angle); |
|
||||
|
|
||||
double tangentFunction(double angle); |
|
||||
|
|
||||
//.. |
|
||||
// Logarithmic functions |
|
||||
double logarithmFunction(double x); |
|
||||
|
|
||||
double naturalLogarithmFunction(double x); |
|
||||
|
|
||||
double logarithmBase2Function(double x); |
|
||||
|
|
||||
//.. |
|
||||
// Exponential function |
|
||||
double exponentialFunction(double x); |
|
||||
|
|
||||
// .. |
|
||||
// Bitwise AND function |
|
||||
int bitwiseAND(int num1, int num2); |
|
||||
|
|
||||
// Bitwise OR function |
|
||||
int bitwiseOR(int num1, int num2); |
|
||||
|
|
||||
// Bitwise XOR function |
|
||||
int bitwiseXOR(int num1, int num2); |
|
||||
|
|
||||
int mode(int userChoice); |
|
||||
|
|
||||
int displayMenu(); |
|
||||
|
|
||||
#endif // TASCHENRECHNER_H |
|
||||
|
#ifndef TASCHENRECHNER_H |
||||
|
#define TASCHENRECHNER_H |
||||
|
|
||||
|
//add function |
||||
|
doulbe add(doulbe a, doulbe b); |
||||
|
|
||||
|
//minus function |
||||
|
doulbe minus(doulbe a, doulbe b); |
||||
|
|
||||
|
//multiply function |
||||
|
doulbe multiply(doulbe a, doulbe b); |
||||
|
|
||||
|
//divide function |
||||
|
doulbe divide(doulbe a, doulbe b); |
||||
|
|
||||
|
//get input and check if its a number |
||||
|
double testForNumber() |
||||
|
|
||||
|
//get input and check if its a operator |
||||
|
char testForOperator() |
||||
|
|
||||
|
// Square root function |
||||
|
double squareRootFunction(double x); |
||||
|
|
||||
|
//.. |
||||
|
// Trigonometric functions |
||||
|
double sineFunction(double angle); |
||||
|
|
||||
|
double cosineFunction(double angle); |
||||
|
|
||||
|
double tangentFunction(double angle); |
||||
|
|
||||
|
//.. |
||||
|
// Logarithmic functions |
||||
|
double logarithmFunction(double x); |
||||
|
|
||||
|
double naturalLogarithmFunction(double x); |
||||
|
|
||||
|
double logarithmBase2Function(double x); |
||||
|
|
||||
|
//.. |
||||
|
// Exponential function |
||||
|
double exponentialFunction(double x); |
||||
|
|
||||
|
// .. |
||||
|
// Bitwise AND function |
||||
|
int bitwiseAND(int num1, int num2); |
||||
|
|
||||
|
// Bitwise OR function |
||||
|
int bitwiseOR(int num1, int num2); |
||||
|
|
||||
|
// Bitwise XOR function |
||||
|
int bitwiseXOR(int num1, int num2); |
||||
|
|
||||
|
int mode(int userChoice); |
||||
|
|
||||
|
int displayMenu(); |
||||
|
|
||||
|
#endif // TASCHENRECHNER_H |
@ -0,0 +1,28 @@ |
|||||
|
#include <stdio.h> |
||||
|
#include <string.h> |
||||
|
#include <stdlib.h> |
||||
|
#include <math.h> |
||||
|
|
||||
|
#include "taschenrechner.h" |
||||
|
|
||||
|
char testForOperator() { |
||||
|
//saving the number of operators in a variable so it only needs to be changed in one location |
||||
|
int numberOfOperators = 5; |
||||
|
//array where all valid Operators are saved, can be esily expanded |
||||
|
char oppArray[numberOfOperators] = { '+','-','*','/','=' }; |
||||
|
char input; |
||||
|
bool validInput = false; |
||||
|
|
||||
|
//Loops as long as input isn't valid, enters at least one time |
||||
|
while (!validInput) { |
||||
|
scanf_s("%c\n", &input); |
||||
|
//checks every position of the array if a position is equal to input returns the input, which also stopps the function |
||||
|
for (int i = 0; i <= numberOfOperators; i++) { |
||||
|
if (input == oppArray[i]) { |
||||
|
return input; |
||||
|
} |
||||
|
} |
||||
|
//if the input was deemed invalid it asks for new input and goes to the top of the while loop |
||||
|
printf("Diese Eigabe war nicht zulässig probieren sie es noch einmal!\n"); |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue