Advertisement
gewur33

Untitled

Nov 19th, 2014
437
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.12 KB | None | 0 0
  1.  
  2. String input = "+1-2*3";
  3.  
  4. # zersch mol da input splitten:
  5.  
  6. # alle operatoren in a array
  7. String operatorArray[]; #länge isch input.length()/2 .. falls des a rolle spiel (gleichviel operatoren wie zahlen)
  8.  
  9. # alle ints in a array
  10. Integer integerArray[];
  11.  
  12. #arrays befüllencod - durch den input durchloopen
  13.  
  14. # eine laufvariable, damit wir wissenwo in den arrays wir einfüllen müssen
  15. # da es genau gleichviele Integer wie Operatoren im ausdruck sind, reicht eine solche laufvariable howManyInts
  16.  
  17. Integer howManyInts = -1;   #wenn wir bei 0 anfangen, dann ist der erste int auf integerArray[1],
  18.                 # er soltle aber auf integerArray[0] sein^
  19.  
  20. for (int x = 0; x < input.length(); x++) {
  21.     # wenn die aktuelle position eine Zahl ist
  22.     if (input[x].isInteger()) {
  23.                
  24.         integerArray[howmanyInts] = input[x];
  25.     }
  26.     # wenn aktuele position ein operator
  27.     # ACHTUNG, erster operator kann vergessen werden!, bzw kann nur + oder - sein und wir gehen mal davon aus,
  28.     # das + und - schon im Typen integer definiert sind
  29.     # was auch der Realität entspricht: in java und c ist es legal sowas zu machen: Integer x = -20;
  30.     # wir nehmen einfach vom fertigen OpArray den ersten wert weg und machen ein neues
  31.     # - erscheint mir die billigste lösung ( nicht die beste.. )
  32.  
  33.     if (input[x].IsOperator()) {
  34.         howManyInts++;      # um 1 erhöhen, das geschieht hier, da der ausdruck immer mit einem operator anfängt
  35.         operatorArray[howManyInts] = input[x];
  36.     }
  37. }
  38.  
  39. # erster wert vom operatorArray[] wegnehmen:
  40. operatorArray[0].remove();      #kA ob ihr das im pseudocode dürft^^ :)
  41.  
  42. # jetzt gibts zwei arrays mit operatoren und mit zahlen
  43. # nun muss durch diese richtig durchiteriert werden - das ist etwas tricky...
  44.  
  45. Integer Ergebnis = 0;
  46.  
  47. for (x = 0; x < integerArray[].length(); x++) {
  48.     for(i = 0; i <operatorArray[].length(); i++) {
  49.         # je nachdem, was für ein operator
  50.         String operator = operatorArray[i];
  51.         switch (operator) {
  52.             case '+':
  53.                 Ergebnis = Ergebnis + integerArray[x]+integerArray[x+1];
  54.             case '-':
  55.                 Ergebnis = Ergebnis + integerArray[x]-integerArray[x+1];
  56.             case '*':
  57.                 .........
  58.         }
  59.     }  
  60. }
  61.  
  62. return Ergebnis;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement