// scientificMode #include #include // get the number which has to be calculated double getNumberFromUser() { double num; printf("Enter a number: "); scanf("%lf", &num); return num; } // Choice for ScientificMode int getScientificModeChoice() { int choice; printf("Scientific mode Options:\n"); printf("1: Square root\n"); printf("2: Exponential\n"); printf("3: Logarithm\n"); printf("4: Trigonometric\n"); printf("0: Exit\n"); scanf("%d", &choice); return choice; } // Choice for Logarithm int getLogarithmChoice() { int logChoice; printf("Logarithm Options:\n"); printf("1: Logarithm (base 10)\n"); printf("2: Natural Logarithm (ln)\n"); printf("3: Logarithm (base 2)\n"); printf("0: Exit Logarithm Menu\n"); scanf("%d", &logChoice); return logChoice; } // Choice for Trigonomtri int getTrigonometricChoice() { int trigChoice; printf("Trigonometric functions:\n"); printf("1: Sine\n"); printf("2: Cosine\n"); printf("3: Tangent\n"); printf("0: Exit Trigonometric Menu\n"); scanf("%d", &trigChoice); return trigChoice; } // Logarithm void executeLogarithmFunction(double num) { int logChoice; do { logChoice = getLogarithmChoice(); switch (logChoice) { case 1: // Logarithm (base 10) printf("Result: %lf\n", logarithmFunction(num)); break; case 2: // Natural Logarithm (ln) printf("Result: %lf\n", naturalLogarithmFunction(num)); break; case 3: // Logarithm (base 2) printf("Result: %lf\n", logarithmBase2Function(num)); break; case 0: // Exit the logarithm menu break; default: printf("Invalid logarithm function choice. Please try again.\n"); } } while (logChoice != 0); } // Trigonometric void executeTrigonometricFunction(double num) { int trigChoice; do { trigChoice = getTrigonometricChoice(); switch (trigChoice) { case 1: // Sine printf("Result: %lf\n", sineFunction(num)); break; case 2: // Cosine printf("Result: %lf\n", cosineFunction(num)); break; case 3: // Tangent printf("Result: %lf\n", tangentFunction(num)); break; case 0: // Exit the trigonometric menu break; default: printf("Invalid trigonometric function choice. Please try again.\n"); } } while (trigChoice != 0); } void executeScientificFunction(double num, int choice) { double result; switch (choice) { case 1: // Square root result = squareRootFunction(num); printf("Result: %lf\n", result); break; case 2: // Exponential result = exponentialFunction(num); printf("Result: %lf\n", result); break; case 3: // Logarithm executeLogarithmFunction(num); break; case 4: // Trigonometric executeTrigonometricFunction(num); break; case 0: // Exit the loop break; default: printf("Invalid choice. Please try again.\n"); } } // scientificMode double scientificMode() { double result; int choice; do { double num = getNumberFromUser(); choice = getScientificModeChoice(); executeScientificFunction(num, choice); } while (choice != 0); return result; }