Advertisement
gewur33

Untitled

Nov 19th, 2014
441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.80 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[];
  8.  
  9. # alle ints in a array
  10. Integer integerArray[];
  11.  
  12. #arrays befüllencod - durch den input durchloopen
  13. for (int x = 0; x < input.length(); x++) {
  14.     # wenn die aktuelle position eine Zahl ist
  15.     if (input[x].isInteger()) {
  16.         Integer howManyInts = -1; #wenn wir bei 0 anfangen, dann ist der erste int auf integerArray[1], er soltle aber auf integerArray[0] sein^
  17.         howmanyInts++;      #um 1 erhöhen
  18.         integerArray[howmanyInts] = input[x];
  19.     }
  20.     # wenn aktuele position ein operator
  21.     # ACHTUNG, erster operator kann vergessen werden!, bzw kann nur + oder - sein und wir gehen mal davon aus, das + und - schon im Typen integer definiert sind
  22.     # was auch der Realität entspricht: in java und c ist es legal sowas zu machen: Integer x = -20;
  23.     # wir nehmen einfach vom fertigen OpArray den ersten wert weg und machen ein neues - erscheint mir die billigste lösung ( nicht die beste.. )
  24.     if (input[x].IsOperator()) {
  25.         Integer howManyOps = -1;
  26.         howManyOps++;           #same same
  27.         operatorArray[howManyOps] = input[x];
  28.     }
  29. }
  30.  
  31. # erster wert vom operatorArray[] wegnehmen:
  32. operatorArray[0].remove();      #kA ob ihr das im pseudocode dürft^^ :)
  33.  
  34. # jetzt gibts zwei arrays mit operatoren und mit zahlen
  35. # nun muss durch diese richtig durchiteriert werden - das ist etwas tricky...
  36.  
  37. Integer Ergenis = 0;
  38.  
  39. for (x = 0; x < integerArray[].length(); x++) {
  40.     for(i = 0; i <operatorArray[].length(); i++) {
  41.         # je nachdem, was für ein operator
  42.         String operator = operatorArray[i];
  43.         switch (operator) {
  44.             case '+':
  45.                 Ergebnis = Ergebnis + integerArray[x]+integerArray[x+1];
  46.             case '-':
  47.                 Ergebnis = Ergebnis + integerArray[x]-integerArray[x+1];
  48.             case '*':
  49.                 .........
  50.         }
  51.     }  
  52. }
  53.  
  54. return Ergebnis;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement