Advertisement
fensa08

[APS] Kolokvium 1 - Matematicki Izraz

Nov 15th, 2019
780
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.76 KB | None | 0 0
  1. Математички израз Problem 8 (1 / 5)
  2.  
  3. Да се напише алгоритам кој ќе пресметува (евалуира) математички израз составен од броеви и операциите за собирање (+) и множење (*).
  4.  
  5. Забелешка: Операцијата множење има предност пред операцијата собирање.
  6.  
  7. Име на класата: ExpressionEvaluator
  8.  
  9.  
  10.  
  11. import java.io.BufferedReader;
  12. import java.io.IOException;
  13. import java.io.InputStreamReader;
  14. import java.util.Stack;
  15.  
  16. public class ExpressionEvaluator {
  17.  
  18.     public static int evaluateExpression(String expression){
  19.         // Vasiot kod tuka
  20.  
  21.         String str[] = expression.split("\\+");
  22.  
  23.         int arr[] = new int[str.length];
  24.  
  25.         for(int i = 0; i < str.length; i++){
  26.  
  27.             int mul = 1;
  28.             int operand = 0;
  29.             String string = str[i];
  30.             for(int j = 0; j < string.length(); j++){
  31.                 if(string.charAt(j) == '*'){
  32.                     mul = mul * operand;
  33.                     operand = 0;
  34.                    
  35.                 }else{
  36.                     operand = operand*10 + Character.digit(string.charAt(j), 10);
  37.                 }
  38.             }
  39.             mul = mul * operand;
  40.             arr[i] = mul;
  41.             mul = 1;
  42.             operand = 1;
  43.         }
  44.  
  45.  
  46.         int sum = 0;
  47.         for(int i = 0; i < arr.length; i++){
  48.             sum += arr[i];
  49.         }
  50.  
  51.  
  52.         return sum;
  53.     }
  54.     public static void main(String[] args) throws IOException {
  55.         BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
  56.  
  57.         System.out.println( evaluateExpression(input.readLine()));
  58.     }
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement