Saviator

ONP

May 31st, 2017
839
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.io.IOException;
  2.  
  3. public class ONP {
  4.      
  5.     public static int j = 0;
  6.     public static Stack st = new Stack();
  7.     public static String temp = "";
  8.    
  9.  
  10.     public static void main(String[] args) throws IOException {
  11.        
  12.          String []onp = new String[args.length];
  13.           OnpCount onponp = new OnpCount();
  14.            
  15.             for(String str: args){
  16.                 System.out.print(str + " ");
  17.                  onp[j] = "";
  18.                  if(str.endsWith("=")){
  19.                    
  20.                      for (int i = 0; i < str.length(); i++){
  21.                        
  22.                          if(str.charAt(i) >= '0' && str.charAt(i)<= '9' || str.charAt(i) == '.'){
  23.                             onp[j] += str.charAt(i);
  24.                            
  25.                             if(!(str.charAt(i+1) >= '0' && str.charAt(i+1)<= '9') &&  str.charAt(i+1) != '.')
  26.                                 onp[j] += " ";
  27.                          }
  28.                        
  29.                        
  30.                          else{
  31.                            
  32.                              switch (str.charAt(i)){
  33.                              
  34.                                  case '(':{
  35.                                      st.push(str.charAt(i) + "");
  36.                                      break;
  37.                                  }
  38.                                  
  39.                                  case ')':{
  40.                                      while(st.size() - 1 >= 0 && !st.get().equals("(")){
  41.                                          onp[j] += st.get() + " ";
  42.                                          st.pop();
  43.                                      }
  44.                                      st.pop();
  45.                                      break;
  46.                                  }
  47.                                
  48.                                
  49.                                  case '-':
  50.                                  case '+':{
  51.                                      while(st.size() - 1 >= 0 && !st.get().equals("(")){
  52.                                         onp[j] += st.get() + " ";
  53.                                         st.pop();
  54.                                      }
  55.                                      st.push(str.charAt(i) + "");
  56.                                     break;
  57.                                  }
  58.                                
  59.                                  case '*':
  60.                                  case '/':{
  61.                                      
  62.                                      while(st.size() - 1 >= 0 && !st.get().equals("(") && !st.get().equals("+") && !st.get().equals("-")){
  63.                                             onp[j] += st.get() + " ";
  64.                                             st.pop();
  65.                                      }
  66.                                      st.push(str.charAt(i) + "");
  67.                                         break;
  68.                                  }
  69.                                
  70.                                  case '^':{
  71.                                      
  72.                                      while(st.size() - 1 >= 0 && !st.get().equals("(") && !st.get().equals("+") && !st.get().equals("-") && !st.get().equals("*") && !st.get().equals("/")){
  73.                                          onp[j] += st.get() + " ";
  74.                                          st.pop();
  75.                                      }
  76.                                      st.push(str.charAt(i) + "");
  77.                                      break;
  78.                                  }
  79.                                  
  80.                              }
  81.                              
  82.                           }
  83.                     }  
  84.                    
  85.                                  while(st.size() - 1 >= 1 ){
  86.                                      onp[j] += st.get() + " "; //spisanie pozostałości na stosie
  87.                                      st.pop();
  88.                                  }
  89.                                  onp[j] += st.get(); // spisanie ostatniego elementu
  90.                                  st.pop();
  91.                                        
  92.                  
  93.                     for (int i = 0; i < onp[j].length(); i++){
  94.  
  95.                        if(onp[j].charAt(i) >= '0' && onp[j].charAt(i)<= '9' || onp[j].charAt(i) == '.')
  96.                          temp += onp[j].charAt(i);
  97.                        else
  98.                          onponp.Count(onp[j].charAt(i));                      
  99.  
  100.                     }
  101.  
  102.                   onp[j] += " //==> " + st.get();
  103.                   st.pop();
  104.                      
  105.                    System.out.println(onp[j++]);
  106.    
  107.                  }
  108.                  else
  109.                  {
  110.                      throw new IOException("Błędne równianie, brak znaku = na końcu !");
  111.                      
  112.                    /*  onp[j] += " !Błędne równanie!";
  113.                      System.out.println(onp[j++]);*/
  114.                  }
  115.                  
  116.                
  117.             }
  118.            
  119.     }
  120.  
  121. }
RAW Paste Data