Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ public static double multiply(double a, double b) {
}

public static double divide(double a, double b) {
if (b == 0) {
throw new ArithmeticException("Err");
}

double quotient = a / b;
System.out.println(quotient);
return quotient;
Expand All @@ -40,6 +44,9 @@ public static double square(double a) {
}

public static double squareRoot(double a) {
if (a < 0) {
throw new ArithmeticException("Err");
}
double result = Math.sqrt(a);
System.out.println(result);
return result;
Expand All @@ -58,6 +65,9 @@ public static double invert(double a) {
}

public static double logarithm(double a) {
if (a <= 0) {
throw new ArithmeticException("Err");
}
double result = Math.log(a);
System.out.println(result);
return result;
Expand All @@ -69,7 +79,41 @@ public static double exponent(double a, double b) {
return result;
}

public static double sine(double a) {
double result = Math.sin(a);
System.out.println(result);
return result;
}

public static double cosine(double a) {
double result = Math.cos(a);
System.out.println(result);
return result;
}

public static double tangent(double a) {
double result = Math.tan(a);
System.out.println(result);
return result;
}

public static double inverseSine(double a) {
double result = Math.asin(a);
System.out.println(result);
return result;
}

public static double inverseCosine(double a) {
double result = Math.acos(a);
System.out.println(result);
return result;
}

public static double inverseTangent(double a) {
double result = Math.atan(a);
System.out.println(result);
return result;
}

public static void print(String output, Object... args) {
System.out.printf(output, args);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,24 @@ public static double calculate(double a, double b, String operator) {
case "exp":
result = (double) Console.exponent(a, b);
break;
case "sin":
result = (double) Console.sine(a);
break;
case "cos":
result = (double) Console.cosine(a);
break;
case "tan":
result = (double) Console.tangent(a);
break;
case "asin":
result = (double) Console.inverseSine(a);
break;
case "acos":
result = (double) Console.inverseCosine(a);
break;
case "atan":
result = (double) Console.inverseTangent(a);
break;
default:
System.out.println("Invalid operator");
}
Expand All @@ -50,19 +68,28 @@ public static double calculate(double a, double b, String operator) {
public static void main(String[] args) {
boolean isRunning = true;
double result = 0.0;
double memory = 0.0;
double prevA = 0.0;
double prevB = 0.0;
String prevOperator = "";

String prompt = "Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log, exp): ";
String prompt = "Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log, exp, sin, cos, tan, mr, cv, mc): ";
String operatorInput = Console.getStringInput(prompt);
if (operatorInput.equals("sqrt") || operatorInput.equals("sqr") || operatorInput.equals("inv") || operatorInput.equals("neg") || operatorInput.equals("log")) {
if (operatorInput.equals("sqrt") || operatorInput.equals("sqr") || operatorInput.equals("inv") || operatorInput.equals("neg") || operatorInput.equals("log") || operatorInput.equals("sin") || operatorInput.equals("cos") || operatorInput.equals("tan")) {
Double numInput = Console.getDoubleInput("Enter a number: ");
prevA = numInput;
prevB = 0.0;
prevOperator = operatorInput;
result = calculate(numInput, 0, operatorInput);
Console.println("Result: %f", result);
} else {

Double num1Input = Console.getDoubleInput("Enter the first number: ");
Double num2Input = Console.getDoubleInput("Enter the second number: ");
result = calculate(num1Input, num2Input, operatorInput);
Console.println("Result: %f", result);
Double num1Input = Console.getDoubleInput("Enter the first number: ");
Double num2Input = Console.getDoubleInput("Enter the second number: ");
prevA = num1Input;
prevB = num2Input;
prevOperator = operatorInput;
result = calculate(num1Input, num2Input, operatorInput);
Console.println("Result: %f", result);
}

while (isRunning) {
Expand All @@ -71,23 +98,42 @@ public static void main(String[] args) {
if (again.equalsIgnoreCase("no")) {
isRunning = false;
} else {
String newOperator = Console.getStringInput("Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log, exp): ");
String newOperator = Console.getStringInput("Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log, exp, sin, cos, tan, mr, cv, mc): ");

if (newOperator.equals("sqrt") || newOperator.equals("sqr") || newOperator.equals("inv") || newOperator.equals("neg") || newOperator.equals("log")) {
if (newOperator.equals("mr")) {
result = memory;
Console.println("Memory Recall: %f", result);
} else if (newOperator.equals("cv")) {
Console.println("Current Value: %f", result);
} else if (newOperator.equals("mc")) {
memory = 0.0;
Console.println("Memory cleared.");
} else if (newOperator.equals("redo")) {
Double editNum = Console.getDoubleInput("Enter a new number: ");
memory = result;
result = calculate(prevA, editNum, prevOperator);
Console.println("Result: %f", result);
}
else if (newOperator.equals("sqrt") || newOperator.equals("sqr") || newOperator.equals("inv") || newOperator.equals("neg") || newOperator.equals("log") || newOperator.equals("sin") || newOperator.equals("cos") || newOperator.equals("tan")) {
memory = result;
prevA = result;
prevB = 0.0;
prevOperator = newOperator;
result = calculate(result, 0, newOperator);
} else {
Console.println("Result: %f", result);
}
else {
Double newNum = Console.getDoubleInput("Enter a number: ");
memory = result;
prevA = result;
prevB = newNum;
prevOperator = newOperator;
result = calculate(result, newNum, newOperator);
Console.println("Result: %f", result);
}
Console.println("Result: %f", result);
}
}
Console.println("Thank you for using the calculator!");
Console.println("Thank you for using our calculator!");
}
}


// String newOperator = Console.getStringInput("Enter an operator (+, -, *, /): ");
// Double newNum = Console.getDoubleInput("Enter a number: ");
// double newResult = calculate(result, newNum, newOperator);
// result = newResult;
Loading