Enrico Schellenberger
11 months ago
2 changed files with 264 additions and 4 deletions
@ -1,12 +1,229 @@ |
|||||
#include <stdio.h> |
#include <stdio.h> |
||||
// #include <string.h> |
|
||||
|
#include <string.h> |
||||
#include <stdlib.h> |
#include <stdlib.h> |
||||
|
#include <math.h> |
||||
|
|
||||
#include "taschenrechner.h" |
#include "taschenrechner.h" |
||||
|
|
||||
|
|
||||
int add(int a, int b) { |
|
||||
|
doulbe add(doulbe a, doulbe b) { |
||||
|
return a + b; |
||||
|
} |
||||
|
|
||||
|
doulbe minus (doulbe a, doulbe b){ |
||||
|
return a - b; |
||||
|
} |
||||
|
|
||||
|
doulbe multiply(doulbe a, doulbe b) { |
||||
|
return a * b; |
||||
|
} |
||||
|
|
||||
|
doulbe divide(doulbe a, doulbe b) { |
||||
|
if (b == 0) { |
||||
|
return 0; |
||||
|
} |
||||
|
return a / b; |
||||
|
} |
||||
|
|
||||
|
// Square root function |
||||
|
double squareRootFunction(double x) { |
||||
|
// Using the sqrt function from math.h |
||||
|
return sqrt(x); |
||||
|
} |
||||
|
|
||||
|
//.. |
||||
|
// Trigonometric functions |
||||
|
double sineFunction(double angle) { |
||||
|
// Convert degrees to radians for trigonometric functions |
||||
|
return sin(angle * M_PI / 180.0); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
double cosineFunction(double angle) { |
||||
|
// Convert degrees to radians for trigonometric functions |
||||
|
return cos(angle * M_PI / 180.0); |
||||
|
} |
||||
|
|
||||
|
double tangentFunction(double angle) { |
||||
|
// Convert degrees to radians for trigonometric functions |
||||
|
return tan(angle * M_PI / 180.0); |
||||
|
} |
||||
|
|
||||
|
//.. |
||||
|
// Logarithmic functions |
||||
|
double logarithmFunction(double x) { |
||||
|
// Logarithm with base 10 |
||||
|
return log10(x); |
||||
|
} |
||||
|
|
||||
|
double naturalLogarithmFunction(double x) { |
||||
|
// Natural logarithm (ln) |
||||
|
return log(x); |
||||
|
} |
||||
|
|
||||
|
double logarithmBase2Function(double x) { |
||||
|
// Logarithm with base 2 |
||||
|
return log2(x); |
||||
|
} |
||||
|
//.. |
||||
|
// Exponential function |
||||
|
double exponentialFunction(double x) { |
||||
|
// Exponential function (e^x) |
||||
|
return exp(x); |
||||
|
} |
||||
|
|
||||
|
// .. |
||||
|
// Bitwise AND function |
||||
|
int bitwiseAND(int num1, int num2) { |
||||
|
return num1 & num2; |
||||
|
} |
||||
|
|
||||
|
// Bitwise OR function |
||||
|
int bitwiseOR(int num1, int num2) { |
||||
|
return num1 | num2; |
||||
|
} |
||||
|
|
||||
|
// Bitwise XOR function |
||||
|
int bitwiseXOR(int num1, int num2) { |
||||
|
return num1 ^ num2; |
||||
|
} |
||||
|
|
||||
|
//.. |
||||
|
|
||||
|
// scientificmode |
||||
|
int scientificMode(){ |
||||
|
|
||||
|
double num, result; |
||||
|
|
||||
|
int choice; |
||||
|
|
||||
|
printf("Enter a number: "); |
||||
|
|
||||
|
scanf("%lf", &num); // scan the number from user |
||||
|
|
||||
return a+b; |
|
||||
|
printf("Scientific mode Options:\n"); |
||||
|
printf("1: Square root:\n"); |
||||
|
printf("2: Exponential:\n"); |
||||
|
printf("2: Logarithm:\n"); |
||||
|
printf("4: Trigonomertic"); |
||||
|
scanf("%d", &choice); // user choice |
||||
|
|
||||
|
switch(choice) { |
||||
|
|
||||
|
case 1: // Square root |
||||
|
break; |
||||
|
|
||||
|
case 2: // Exponential |
||||
|
break; |
||||
|
|
||||
|
case 3: // Logarithm |
||||
|
break; |
||||
|
|
||||
|
case 4: // Trigonomertic |
||||
|
break; |
||||
|
|
||||
|
default: printf("Invalid choice. Please try again.\n"); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
// graphMode |
||||
|
void graphMode() { |
||||
|
double x, y; |
||||
|
|
||||
|
printf("Enter the range for x (start end step): "); |
||||
|
double x_start, x_end, x_step; |
||||
|
scanf("%lf %lf %lf", &x_start, &x_end, &x_step); |
||||
|
|
||||
|
printf("\nGraph for the function y = sin(x):\n"); |
||||
|
|
||||
|
printf(" x\t| y\n"); |
||||
|
printf("--------------\n"); |
||||
|
|
||||
|
for (x = x_start; x <= x_end; x += x_step) { |
||||
|
y = sin(x); |
||||
|
printf("%.2lf\t| %.2lf\n", x, y); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// Programming mode |
||||
|
|
||||
|
void programmingMode() { |
||||
|
|
||||
|
int num1, num2, result; |
||||
|
char operator; |
||||
|
|
||||
|
printf("Enter first integer: "); |
||||
|
scanf("%d", &num1); |
||||
|
|
||||
|
printf("Enter operator (+, -, *, /): "); |
||||
|
scanf(" %c", &operator); |
||||
|
|
||||
|
printf("Enter second integer: "); |
||||
|
scanf("%d", &num2); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
// Unit converter mode |
||||
|
|
||||
|
void unitConverterMode() { |
||||
|
int choice; |
||||
|
double value, result; |
||||
|
|
||||
|
printf("Unit Converter Mode:\n"); |
||||
|
printf("1. Meter to Kilometer\n"); |
||||
|
printf("2. Kilogram to Gram\n"); |
||||
|
printf("3. Celsius to Fahrenheit\n"); |
||||
|
printf("Enter your choice: "); |
||||
|
scanf("%d", &choice); |
||||
|
|
||||
|
printf("Enter the value to convert: "); |
||||
|
scanf("%lf", &value); |
||||
|
|
||||
} |
} |
||||
|
|
||||
|
// change mode |
||||
|
int mode(int userChoice){ |
||||
|
|
||||
|
switch(userChoice) { |
||||
|
|
||||
|
case 1:return 1; // Basic mode |
||||
|
break; |
||||
|
|
||||
|
case 2:return 2; // Scientific mode (Trigonomertic functions, Logarithm and exponential functions.) |
||||
|
break; |
||||
|
|
||||
|
case 3:return 3; // Graph mode (Draw and visualize functions.) |
||||
|
break; |
||||
|
|
||||
|
case 4:return 4; // Programming mode (Binary , octal and hexadecimal ) |
||||
|
break; |
||||
|
|
||||
|
case 5:return 5; // Unit converter mode (length, weight volume etc.) |
||||
|
break; |
||||
|
|
||||
|
case 0: return 0; // printf("Exiting the calculator.\n"); |
||||
|
break; |
||||
|
|
||||
|
default: return -1; // printf("Invalid choice. Please try again.\n"); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
// display the mode options: |
||||
|
int displayMenu(){ |
||||
|
|
||||
|
printf("\nCalculator Modes: \n"); |
||||
|
printf("\n1: Basic Mode\n"); |
||||
|
printf("\n2: Scientific Mode (Trigonomertic functions, Logarithm and exponential functions.)\n"); |
||||
|
printf("\n3: Graph Mode (Draw and visualize functions.)\n"); |
||||
|
printf("\n4: Programming Mode (Binary , octal and hexadecimal )\n"); |
||||
|
printf("\n5: Unit converter Mode (length, weight volume etc.)\n"); |
||||
|
printf("\n0: Exit calculator\n"); |
||||
|
|
||||
|
return 1; // return 1 to check if the function works |
||||
|
} |
@ -1,6 +1,49 @@ |
|||||
#ifndef TASCHENRECHNER_H |
#ifndef TASCHENRECHNER_H |
||||
#define TASCHENRECHNER_H |
#define TASCHENRECHNER_H |
||||
|
|
||||
int add(int a, int b); |
|
||||
|
doulbe add(doulbe a, doulbe b); |
||||
|
|
||||
|
doulbe minus(doulbe a, doulbe b); |
||||
|
|
||||
|
doulbe multiply(doulbe a, doulbe b); |
||||
|
|
||||
|
doulbe divide(doulbe a, doulbe b); |
||||
|
|
||||
|
// 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 |
#endif // TASCHENRECHNER_H |
Write
Preview
Loading…
Cancel
Save
Reference in new issue