Hausaufgaben

A-Welt Forum
Verfügbare Informationen zu "Hausaufgaben"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Belafarinrod - alexander
  • Forum: A-Welt Forum
  • Forenbeschreibung: Das geile Forum
  • aus dem Unterforum: Java-Forum
  • Antworten: 3
  • Forum gestartet am: Freitag 04.03.2005
  • Sprache: deutsch
  • Link zum Originaltopic: Hausaufgaben
  • Letzte Antwort: vor 18 Jahren, 2 Monaten, 23 Tagen, 22 Stunden, 58 Minuten
  • Alle Beiträge und Antworten zu "Hausaufgaben"

    Re: Hausaufgaben

    Belafarinrod - 19.02.2006, 14:21

    Hausaufgaben
    Hi,

    so ich habe leider mal wieder nicht die kleinste Ahnung wie ich die Klasse liesFaktor und liesProdukt schreiben soll. Bitte also wieder um Hilfe.


    MFG Belafarinrod



    Re: Hausaufgaben

    alexander - 19.02.2006, 15:00


    ich hab zwar nicht überprüft, aber es könnte so aussehen:

    Code: // Autor: Alex
    // Datum: 19.02.2006

    public class AusdruckBaum {

      private String eingabe;
      private int pos, laenge;
      private char aktZeichen;
      private final static char ENDE ='\u0000';

      public AusdruckBaum (String str) {
        neueEingabe(str);
      }

      public void neueEingabe(String str) {
        eingabe = str; pos = 0; laenge = str.length();
        naechstesZeichen();
      }

      private void naechstesZeichen() {
        if (pos<laenge) {
          aktZeichen = eingabe.charAt(pos); pos++;
        } else aktZeichen = ENDE;
      }

      public BinTree liesAusdruck() {
        BinTree x, operand;
        char operator;
        x = liesProdukt();
        while (aktZeichen=='+' || aktZeichen=='-') {
          operator = aktZeichen;
          naechstesZeichen();
          operand = liesProdukt();
          x = new BinTree(x, new Character(operator), operand);
        }
        return x;
      }
     
      private BinTree liesProdukt(){
        BinTree x, operand;
        char operator;
        x = liesFaktor();
        while(aktZeichen=='*' || aktZeichen=='/'){
          operator = aktZeichen;
          naechstesZeichen();
          operand = liesFaktor();
          x = new BinTree(x, new Character(operator), operand);
        }
        return x;
      }
     
      private BinTree liesFaktor(){
        BinTree x;
        if(aktZeichen=='('){
          naechstesZeichen();
          x = liesAusdruck();
          naechstesZeichen();
         
          if(aktZeichen==')'){
            x = new BinTree(x, new Character(aktZeichen), liesAusdruck());
          }
        }else{
          x = new BinTree(new Character(aktZeichen));
          naechstesZeichen();
        }
        return x;
      }
    }



    Re: Hausaufgaben

    alexander - 21.02.2006, 20:43


    Hab den Ausdrucksbaum berichtigt! Und so könnte der AusdrucksbaumTest aussehen:

    Code: // Autor: Alex
    // Datum: 21.02.2006

    public class AusdruckBaumTest {
      static void prefix(BinTree b){
        if(!b.empty()){
          System.out.print( ((Character)b.value()).toString()+" " );
          prefix(b.left());
          prefix(b.right());
        }
      }
     
      static void infix(BinTree b){
        if(!b.empty()){
          infix(b.left());
          System.out.print( ((Character)b.value()).toString()+" " );
          infix(b.right());
        }
      }
     
      static void postfix(BinTree b){
        if(!b.empty()){
          postfix(b.left());
          postfix(b.right());
          System.out.print( ((Character)b.value()).toString()+" " );
        }
      }
     
      public static void main(String[] args) {
        AusdruckBaum ab;
        BinTree b;
       
        ab = new AusdruckBaum("A+B*C");
        b = ab.liesAusdruck();
        prefix(b); System.out.println("");
        infix(b);  System.out.println("");
        postfix(b);
       
    //    System.out.println("");
    //    ab.neueEingabe("(A+B)*C");
    //    b = ab.liesAusdruck();
    //    prefix(b);
    //   
    //    System.out.println("");
    //    ab.neueEingabe("(A+B)*(C+D)");
    //    b = ab.liesAusdruck();
    //    prefix(b);
    //   
    //    System.out.println("");
    //    ab.neueEingabe("(A+B+B+D)*2");
    //    b = ab.liesAusdruck();
    //    prefix(b);
      }
    }



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum A-Welt Forum



    Ähnliche Beiträge wie "Hausaufgaben"

    Hausaufgaben - Andy (Dienstag 28.11.2006)
    Hausaufgaben die wir aufbekommen habe ! - michael (Montag 06.11.2006)
    Hausaufgaben vom 26. September 2006 - Shazam (Dienstag 26.09.2006)
    Hausaufgaben - Knöpfl3 (Samstag 07.04.2007)
    Hausaufgaben vom 22.11 zum 29.11. - War of Genesis (Montag 28.11.2005)
    hausaufgaben - N4pAlm3 (Montag 21.08.2006)
    Hausaufgaben zum 19.9.07 - Natalie (Dienstag 18.09.2007)
    Hausaufgaben vom 28. November 2006 - Shazam (Dienstag 28.11.2006)
    Hausaufgaben - joschka (Dienstag 28.08.2007)
    Hausaufgaben - vanfimenig (Dienstag 05.12.2006)