update the function
This commit is contained in:
parent
6f16f730b2
commit
3697c483d3
1 changed files with 29 additions and 16 deletions
|
@ -44,7 +44,6 @@ class RPN_Calculator {
|
||||||
USER_INPUTS.add(Double.parseDouble(USER_INPUT_CURRENT));
|
USER_INPUTS.add(Double.parseDouble(USER_INPUT_CURRENT));
|
||||||
} else if (USER_INPUTS.size() >= 2) {
|
} else if (USER_INPUTS.size() >= 2) {
|
||||||
if (USER_INPUT_CURRENT.matches("[-+\\/*×÷]") && (String.valueOf(USER_INPUTS.get(USER_INPUT_LENGTH-1)).matches("-?\\d+(\\.\\d+)?"))) {
|
if (USER_INPUT_CURRENT.matches("[-+\\/*×÷]") && (String.valueOf(USER_INPUTS.get(USER_INPUT_LENGTH-1)).matches("-?\\d+(\\.\\d+)?"))) {
|
||||||
System.out.println(USER_INPUTS.get(USER_INPUT_LENGTH-1));
|
|
||||||
USER_INPUTS.add(USER_INPUT_CURRENT);
|
USER_INPUTS.add(USER_INPUT_CURRENT);
|
||||||
} else if (USER_INPUT_CURRENT.isBlank()) {
|
} else if (USER_INPUT_CURRENT.isBlank()) {
|
||||||
if (String.valueOf(USER_INPUTS.get(USER_INPUT_LENGTH-1)).isBlank()) {
|
if (String.valueOf(USER_INPUTS.get(USER_INPUT_LENGTH-1)).isBlank()) {
|
||||||
|
@ -71,28 +70,42 @@ class RPN_Calculator {
|
||||||
static double calculate(ArrayList<Object> ENTRIES_LIST) {
|
static double calculate(ArrayList<Object> ENTRIES_LIST) {
|
||||||
// Calculate length.
|
// Calculate length.
|
||||||
int ENTRIES_LIST_LENGTH = ENTRIES_LIST.size();
|
int ENTRIES_LIST_LENGTH = ENTRIES_LIST.size();
|
||||||
|
int OPERATION_ITERATIONS = 0;
|
||||||
String OPERATION = "";
|
String OPERATION = "";
|
||||||
double OPERATION_RESULT = (double) ENTRIES_LIST.get(0);
|
double OPERATION_RESULT = 0;
|
||||||
|
|
||||||
|
ArrayList<Double> NUMBERS_CURRENT = new ArrayList<Double>();
|
||||||
|
|
||||||
|
// TO DO: fix entries search
|
||||||
if (ENTRIES_LIST_LENGTH > 1) {
|
if (ENTRIES_LIST_LENGTH > 1) {
|
||||||
for (int ENTRY_CURRENT = 0; ENTRY_CURRENT < ENTRIES_LIST_LENGTH; ENTRY_CURRENT++) {
|
for (int ENTRY_CURRENT = 0; ENTRY_CURRENT < ENTRIES_LIST_LENGTH; ENTRY_CURRENT++) {
|
||||||
if (String.valueOf(ENTRIES_LIST.get(ENTRY_CURRENT)).matches("[-+\\/*×÷]")) {
|
if (String.valueOf(ENTRIES_LIST.get(ENTRY_CURRENT)).matches("[-+\\/*×÷]")) {
|
||||||
OPERATION = String.valueOf(ENTRIES_LIST.get(ENTRY_CURRENT));
|
OPERATION = String.valueOf(ENTRIES_LIST.get(ENTRY_CURRENT));
|
||||||
|
|
||||||
if (OPERATION == "+") {
|
OPERATION_RESULT = (OPERATION_ITERATIONS>0) ? OPERATION_RESULT : NUMBERS_CURRENT.get(0);
|
||||||
OPERATION_RESULT += (float) ENTRIES_LIST.get(ENTRY_CURRENT - 1);
|
|
||||||
} else if (OPERATION == "-") {
|
for (int ENTRY_CURRENT_NUMBERS = 1; ENTRY_CURRENT_NUMBERS < NUMBERS_CURRENT.size(); ENTRY_CURRENT_NUMBERS++) {
|
||||||
OPERATION_RESULT -= (float) ENTRIES_LIST.get(ENTRY_CURRENT - 1);
|
if (OPERATION == "*" || OPERATION == "×") {
|
||||||
} else if (OPERATION == "*" || OPERATION == "×") {
|
OPERATION_RESULT *= NUMBERS_CURRENT.get(ENTRY_CURRENT_NUMBERS);
|
||||||
OPERATION_RESULT *= (float) ENTRIES_LIST.get(ENTRY_CURRENT - 1);
|
} else if (OPERATION == "/" || OPERATION == "÷") {
|
||||||
} else if (OPERATION == "/" || OPERATION == "÷") {
|
if (NUMBERS_CURRENT.get(ENTRY_CURRENT_NUMBERS) != 0) {
|
||||||
if ((double) ENTRIES_LIST.get(ENTRY_CURRENT - 1) != 0) {
|
OPERATION_RESULT /= (float) ENTRIES_LIST.get(ENTRY_CURRENT - 1);
|
||||||
OPERATION_RESULT /= (float) ENTRIES_LIST.get(ENTRY_CURRENT - 1);
|
} else {
|
||||||
} else {
|
handle_error(-3);
|
||||||
handle_error(-3);
|
break;
|
||||||
break;
|
};
|
||||||
|
} else if (OPERATION == "+") {
|
||||||
|
OPERATION_RESULT += NUMBERS_CURRENT.get(ENTRY_CURRENT_NUMBERS);
|
||||||
|
} else if (OPERATION == "-") {
|
||||||
|
OPERATION_RESULT -= NUMBERS_CURRENT.get(ENTRY_CURRENT_NUMBERS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
OPERATION_ITERATIONS++;
|
||||||
};
|
};
|
||||||
|
NUMBERS_CURRENT.clear();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
NUMBERS_CURRENT.add((double) ENTRIES_LIST.get(ENTRY_CURRENT));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -110,5 +123,5 @@ class RPN_Calculator {
|
||||||
NUMBER_RESULT = calculate(NUMBERS_INPUT);
|
NUMBER_RESULT = calculate(NUMBERS_INPUT);
|
||||||
System.out.println(NUMBER_RESULT);
|
System.out.println(NUMBER_RESULT);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
}
|
};
|
Loading…
Add table
Add a link
Reference in a new issue