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 ((double) ENTRIES_LIST.get(ENTRY_CURRENT - 1) != 0) { | 							if (NUMBERS_CURRENT.get(ENTRY_CURRENT_NUMBERS) != 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