class Ausdruck {
    
	/*
	Konstruktor für einen zusammengesetzten Ausdruck
	*/
	Ausdruck(String t, Ausdruck lOperand, Ausdruck rOperand) {
		// Hier gehört Code hin.
	}
	
	/*
	Konstruktor für einen atomaren Ausdruck (d.h. eine natürliche Zahl).
	*/
	Ausdruck(String zahl) {
		// Hier gehört Code hin.
	}
	

	boolean istNatuerlicheZahl(String zeichenkette) {
		// Hier gehört Code hin.
		return true;
	}

	boolean istErlaubterOperator(String zeichenkette) {
		// Hier gehört Code hin.
		return true;
	}

        public String toString() {
		// Hier gehört Code hin.
		return "";
	}
    
	int berechneWert() {
		// Hier gehört Code hin.
		return 1;
	}
    
	/* mit while-do: */
	static int exp(int a, int b) {
		// Hier gehört Code hin.
		return 1;
	}
    
	/* mit do-while: */
	static int exp2(int a, int b) {
		// Hier gehört Code hin.
		return 1;
	}

	
	/* eventuell mit for */
	static int exp3(int a, int b) {
		// Hier gehört Code hin.
		return 1;
	}
	
	/* und noch eine Möglichkeit? */
	static int exp4(int a, int b) {
		// Hier gehört Code hin.
		return 1;
	}
	
	/* 
	Zum Testen: ein paar Beispielaufrufe
	*/
	public static void main(String[] args) {

		Ausdruck a=new Ausdruck("42");
		Ausdruck b=new Ausdruck("120");
		Ausdruck falsch1=new Ausdruck("5bla7");
		Ausdruck falsch2=new Ausdruck("*");
		Ausdruck zusammen1=new Ausdruck("*",a,b);
		Ausdruck zusammen2=new Ausdruck("*",zusammen1,b);
		Ausdruck falsch3=new Ausdruck("*",a,null);
		Ausdruck falsch4=new Ausdruck("42",null,a);
		Ausdruck c=new Ausdruck("10",null,null);
		System.out.println();
		
		System.out.println("Ausdruck a: "+a.toString());
		System.out.println("Ausdruck b: "+b.toString());
		System.out.println("Ausdruck zusammen1: "+zusammen1.toString());
		System.out.println("Ausdruck zusammen2: "+zusammen2.toString());
		System.out.println("Ausdruck c: "+c.toString());
		System.out.println();
		
		System.out.println("Wert von Ausdruck a: "+a.berechneWert());
		System.out.println("Wert von Ausdruck b: "+b.berechneWert());
		System.out.println("Wert von Ausdruck zusammen1: "+zusammen1.berechneWert());
		System.out.println("Wert von Ausdruck zusammen2: "+zusammen2.berechneWert());
		System.out.println("Wert von Ausruck c: "+c.berechneWert());
		System.out.println();
		
		System.out.println("3**4, Version 1: "+exp(3,4));
		System.out.println("3**4, Version 2: "+exp2(3,4));
		System.out.println("3**4, Version 3: "+exp3(3,4));
		System.out.println("3**4, Version 4: "+exp4(3,4));
		
	}
}
