dimanche 31 mai 2015

Wohlgeformtheit eines Ausdrucks

Hallo,

Aufgabe ist folgende gewesen;

Arithmetische Ausdrücke. Wir betrachten nun sehr einfache arithmetische Ausdrücke. Erlaubtsind Klammern, die binären Operatoren „+“, „-“, “*“, “/“, sowie Zahlen mit einer einzelnen Ziffer(„0“,“1“,...,“9“). Erlaubt wäre also z.B.: „1+2+3“ oder „(1+2)*3+(4-7)“. Verboten wären dagegen„23+42“, „-4“ (unäres Minus erlauben wir nicht) oder „2++“, und natürlich auch falsche Klammerungenwie „((3+2)“. Leere Klammern machen auch keinen Sinn: „()+4“ ist verboten.Schreiben Sie ein JAVA Programm, das kontrolliert, ob ein eingegebener String das richtigeFormat hat (also nur geklammerte Ausdrücke von den vier Grundrechenarten mit Zahlen dieaus einzelnen Ziffern bestehen).



Java Code:

  1. public class Doityourself_b {
  2.  
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5.  
  6. String Bracket_open=new String ("(2+(2*(3-5)"); //String erstellen
  7. char [] open=Bracket_open.toCharArray(); // In Char umwandeln, um jedes Zeichen lesen zu können
  8.  
  9. if(open[0] == '(' && open[1] == '1'||open[1] == '2'||open[1] == '3'||open[1] == '4'||open[1] == '5'||open[1] == '6'||open[1] == '7'||open[1] == '8'||open[1] == '9'){
  10.  
  11. for(int i=2;i < Bracket_open.length();i++) {
  12. try {
  13. if(open[i] == '+'||open[i] == '-'||open[i] == '*'||open[i] == '/') {
  14.  
  15. if(open[i+1] == '1'||open[i+1] == '2'||open[i+1] == '3'||open[i+1] == '4'||open[i+1] == '5'||open[i+1] == '6'||open[i+1] == '7'||open[i+1] == '8'||open[i+1] == '9') {
  16.  
  17. if(open[i+2] == ')') {
  18. i=i+2;
  19. continue;
  20. }
  21. }
  22. else if(open[i+1] == '(')
  23.  
  24. if(open[i+2] == '1'||open[i+2] == '2'||open[i+2] == '3'||open[i+2] == '4'||open[i+2] == '5'||open[i+2] == '6'||open[i+2] == '7'||open[i+2] == '8'||open[i+2] == '9') {
  25. i=i+2;
  26. continue;
  27. }
  28. else
  29. System.out.println("Der Ausdruck entspricht nicht dem richtigen Format");
  30. System.exit(0);
  31. }
  32.  
  33. else
  34. System.out.println("Der Ausdruck entspricht nicht dem richtigen Format");
  35. System.exit(0);
  36. System.out.println("Der Ausdruck entspricht nicht dem richtigen Format");
  37. System.exit(0);
  38.  
  39. }
  40.  
  41.  
  42.  
  43. }
  44. System.out.println("Der Ausdruck entspricht dem richtigen Format");
  45.  
  46. }
  47. else
  48. System.out.println("Der Ausdruck entspricht nicht dem richtigen Format");
  49. System.exit(0);
  50.  
  51. }
  52.  
  53.  
  54. }


Wohlgeformtheit eines Ausdrucks

0 commentaires:

Enregistrer un commentaire