# Bestimmte Ebene eines Baumes rekursiv ausgeben



## Gast08/15 (25. Jan 2009)

Hallo, also das Problem steht ja quasi schon im Titel.

Bin bisher soweit:


```
if (e == 0)IO.println(b.value());
    Keller k=new VerweisKeller();
    Baum tmp =new VerweisBaum();
    
    
    if(!b.left().empty()){
        k.push(b.value());
        printLevel(b.left(),e);
        if(!b.right().empty()){
            printLevel(b.right(),e);
        }
    }
    
    if(!b.right().empty()){
        k.push(b.value());
        printLevel(b.right(),e);
        if(!b.left().empty()){
            printLevel(b.left(),e);
        }
    }
    
    while (!k.empty()){
        IO.print(k.top() + " ");
        k.pop();
```

habs noch nicht getestet, sollte eig den ganzen Baum ausgeben.

Wie beschränk ich das jetzt auf eine Ebene? Ich dachte mir ich guck auf den Vater des Vaters, frag ihn ob er nen linken Sohn hat, wenn ja frag ich den Sohn ob er auch nen Sohn hat und ist dies der fall geb ich den aus, klappt natürlich nur ab der 3.Ebene und ist irgendwie auch nicht zu bewerkstelligen.

Hat jmd vllt einen Ansatz für mich? 

Muss ich vllt nur in die Ebene vor der gewünschten Ebene und dann die Söhne, falls vorhanden, ausgeben? Das wär ja aber nicht rekursiv...

Größtes Problem also: wie komm ich erstmal "in" die genannte Ebene?

MfG


----------



## 0x7F800000 (25. Jan 2009)

Gast08/15 hat gesagt.:
			
		

> Bin bisher soweit: [code ]...


also das ist jetzt mal echt übertrieben. "IO,Keller,VerweisKeller,Baum,VerweisBaum,e,b" das sind schon mal mindestens 7 hässlich benannte Sachen bei den kein Mensch weiß, was die sein sollen. Zudem fehlt jeglicher Kontext, es fehlen überall Klammer, es gibt kein einziges Kommentärchen weit und breit. Wieso postest du den code hier überhaupt? :noe: Sorge nächstes mal bitte dafür, dass es zumindest mal irgendwie verständlich ist, am besten sollte es kompilierbar sein. Und verzichte bitte auf diese bescheuerten Eigenbau-"IO"-Klassen. :bloed: Wenn dein lehrer deswegen heult, dann sag ihm, dass er sich seine neuerfundenen dreieckigen Räder in den allerwertesten schieben soll. :toll: In der Java standard API gibt's schon mehr als genug möglichkeiten zeugs aus allen möglichen und unmöglichen quellen einzulesen und auszugeben.


Nun gut, zurück zum thema:


> Wie beschränk ich das jetzt auf eine Ebene?
> Hat jmd vllt einen Ansatz für mich?


Mach die Methode rekursiv. Zusätzlich zum aktuellen Knoten übergibst du zusätzlich die Ebene. Bei jedem weiteren rekursionsschritt machst du den ebenen-zähler kleiner. Wenn der ebenen-zähler 0 ist, weißt du ja, dass du in der richtigen ebene Angekommen bist, und kannst dann den Aktuellen Knoten irgendwie ausgeben (oder was auch immer) und die rekursion abbrechen.

In pseudocode sollte es also imho so ähnlich aussehen:

```
class Node<T>{
   T content; //irgendein "Inhalt" des Knoten, was auch immer in dem baum abgespeichert wird (etwa zahlen, Strings o.ä)
   Collection<Node> children; //alternativ als array darstellbar, falls Baum binär ist: dann reicht schon "Node left,right"

   // methode, die eine ebene "level" ausgibt
   public void printLevel(int level){
      if(level==0){
         //rekursionsende. einfach "sich selbst" ausgeben, zB den eigenen content
         System.out.println(this); 
      }else{
         for(Node child:children){
            //rekursion fortsetzen, level um -1 verändern, weil die kinder ja eine ebene tiefer sind
            child.printLevel(level-1);
         }
      }
   }
}
```
ist der Ansatz soweit klar, oder hätte ich das lieber ohne generics und collections hinschreiben sollen?


----------



## SlaterB (25. Jan 2009)

so, ich muss meine fast gleichlautende Antwort nun nicht mehr posten,
nur die Kritik am Anfang von Andrey's Posting ist recht daneben,

der Code ist so besser als gar keiner bzw. bringt zwar nicht viel bei der schon klaren Frage, aber stört auch nicht,

für die Verwendung von Lehrer-Sonderklassen kann ja ein Schüler nix..,

nicht zu ernst nehmen

----

> Edit: ey, verarscht mich das Teil grad? Ich hab die code-tags doch korrekt gesetzt, was'n los hie

du hast im quote noch ein [ code ] drin, zwar bisschen komischer Grund, aber ein Grund

edit: ok, schon repariert


----------



## Gast (25. Jan 2009)

sorry, aber des versteh ich nciht ganz.
wird bei deinem Beispiel nicht der komplette Baum ausgegeben???

Zur vereinfachung: Ja, es geht nur um binäre Bäume.

BsP

                        A
               B                  C
  D                         E            F

Soll die dritte Ebene ausgegeben werden wäre die Lösung also

D E F

Hoffe das ahbt ihr auch so verstanden?!


----------



## Guest (25. Jan 2009)

ups, blöde Formatierung.


```
A
           B                                       C
D                                      E                       F
```


----------



## 0x7F800000 (25. Jan 2009)

SlaterB hat gesagt.:
			
		

> nur die Kritik am Anfang von Andrey's Posting ist recht daneben,
> 
> der Code ist so besser als gar keiner bzw. bringt zwar nicht viel bei der schon klaren Frage, aber stört auch nicht,
> 
> für die Verwendung von Lehrer-Sonderklassen kann ja ein Schüler nix..,


Okay, stören tut's nicht wirklich.
Und gegen die bescheuerten Lehrer können sich auch nicht zu viele durchsetzen, das richtete sich auch nicht wirklich gegen den OP, sondern gegen die Lehrer, das nervt halt einfach, was ist denn an "System.out." so viel schlimmer als an "IO" :x ? 

Aber bei der Kritik zu fehlenden kommentaren, kontext, und wenig sagenden bezeichnern wie "e" und "b" bleibe ich 


> nicht zu ernst nehmen


Das sollte ich zu meiner Signatur machen^^ 


> du hast im quote noch ein [ code ] drin, zwar bisschen komischer Grund, aber ein Grund
> 
> edit: ok, schon repariert


joah, hab's gerafft...  code-tags sind leider ein bisschen doof, maskierung fehlt...


----------



## 0x7F800000 (25. Jan 2009)

Gast hat gesagt.:
			
		

> Hoffe das ahbt ihr auch so verstanden?!


Aber sicher.
Überleg doch mal:

Anfang: *A.printLevel(2)* wird aufgerufen (wenn du die DEF ebene haben willst)
*2==0* trifft nicht zu, also wird *B.printLevel(2-1)* und *C.printLevel(2-1)* aufgerufen.
*1==0* trifft wieder nicht zu, also wird *D.printLevel(1-1)* , *E.printLevel(1-1)* , *F.printLevel(1-1)* aufgerufen.
*0==0* trifft zu, also wird *D* , *E* und *F* ausgegeben.


----------



## Guest (25. Jan 2009)

noch kurz ne frage zu eienr anderen aufgabe, in der es darum geht den baum zu spiegeln. dachte eigentlcih das wär gnz einfach, aber der compiler meckert:


```
if(!b.left().empty() || !b.right().empty()){
      tmp=b.left();
      b.left()=b.right(); //hier beschwert sich der compiler(UnexpectedType)
      b.right()=tmp;
      mirrorRekursive(b.left());
      mirrorRekursive(b.right());
   }

b.left und b.right sind doch beides verwiese auf die Söhne, warum kann ich die net tauschen???
```


----------



## Gast (25. Jan 2009)

ps, das mit der ebene hab ich nun verstanden ^^


----------



## 0x7F800000 (25. Jan 2009)

Schenk mir eine Kristallkugel zum Geburtstag, dann sag ich's dir^^ :roll:
Woher sollen wir denn wissen, wieso der Compiler da meckert? Wir haben doch keine Information drüber was diese b ist und was die methoden left() und right() liefern sollen.


----------



## Gast (25. Jan 2009)

hmm, ok, wann hast du geburtstag? ^^ 

sorry, also b ist ein baum, b.left sein linker sohn, b.right sein rechter sohn


----------



## 0x7F800000 (25. Jan 2009)

Gast hat gesagt.:
			
		

> hmm, ok, wann hast du geburtstag? ^^


nicht sehr bald, solange wirst du nicht warten wollen. Eine viel bessere Frage wäre sowieso: *"wo kriege ich eine Kristallkugel her?"*


> sorry, also b ist ein baum, b.left sein linker sohn, b.right sein rechter sohn


Jaaaa, von der Vorgehensweise her sieht es schon mal gar nicht so falsch aus, was es "anschaulich sein sollte" habe ich mir schon zusammendichten können. Hilft allerdings nichts bei der Frage nach dem Compilerfehler => need code.


----------



## SlaterB (25. Jan 2009)

> b.left()=b.right();

kann nie Sinn machen, links von einem = darf vereinfacht gesehen nur eine Variable stehen

tmp=b.left(); 
z.B. klingt gut,

b.setLeft(b.right());
ginge auch, sofern es eine entsprechende Methode gibt


----------



## Schreibi (25. Jan 2009)

der meckert weil eben left bzw right dir nur den linken bzw rechten sohn liefert und nicht überschreiben kann


----------



## 0x7F800000 (25. Jan 2009)

ooh, scheße, stimmt, wir sind hier ja nicht bei C++ :shock: Dass ich sowas übersehe^^ mir ist tatsächlich dieser offensichtlicher fehler entgangen, mir kam das alles lediglich ein wenig suspekt vor


----------



## Gast (25. Jan 2009)

ach klar, das sind ja nur methoden, ich muss ja die werte vertauschen ^^ danke


----------



## Guest (25. Jan 2009)

hier erstmal mein ansatz für das ebenenausgeben


```
public static void printLevel(Baum b, int e) {
    if (e == 0){IO.println(b.value());}
    else{
        printLevel(b.left(),e-1);
        printLevel(b.right(),e-1);
    }
```

so korrekt? ^^

bei dem anderen problem komm ich irgendwie nicht an die werte ran...da muss ich wohl noch bissl tüfteln


----------



## 0x7F800000 (25. Jan 2009)

"dein Ansatz" :lol:
ja, was flaubst du denn selbst? Läuft's denn?


----------



## Gast (25. Jan 2009)

ok, DEIN ansatz von mir gecovert ^^ um zu gucken obs läuft müsst ich erstmal ne testklasse schreiben. wollt aber erstmal den code soweit fertig ahben, bin immernoch bissl am verzweifeln mit dem problem, die söhne zu tauschen. 

hab sogar versucht nen neuen baum zu erstellen, halt mit den vertauschten söhnen, aber nichtmal das klappt...


----------



## 0x7F800000 (25. Jan 2009)

sag mal, in was für eine klasse schreibst du diese methoden denn rein? Schreib die doch direkt in die baum-klasse, dann brauchst du diese ganzen right() und left() methoden nicht zu bemühen, sondern hast direkt zugriff auf referenzen right und left.

Und überhaupt würde ich das alles als member methoden schreiben, nicht als statische methoden, die den baum kriegen.


----------



## Bääääm (25. Jan 2009)

Hatten wir uns nicht darauf geeinigt, dass Hausaufgaben der Uni Osnabrück hier nicht mehr bearbeitet werden? ^^


----------



## 0x7F800000 (25. Jan 2009)

Oooh, von einer Uni kommt das sogar...

Nur mal so als Vorschlag: könntet ihr dort vielleicht ein wenig Druck auf den Prof/Oberassi oder wen auch immer machen, dass sie den ganzen "MyIO"-Quatsch aus den Übungen entfernen? Dann hätten die Leute womöglich zumindest mal etwas weniger Stress damit, normale Literatur zu Java zu lesen.

Ich könnte mir vorstellen, dass die Leute ansonsten die Literatur ganz schnell in die dunkle Ecke schmeißen, weil sie bereits nach dem _"new BufferedReader(new InputStreamReader(System.in))"_ in der zweiten Zeile des elementaren Beispielcodes nichts mehr raffen ("an der Uni hat's uns ja keiner erzählt *heul* :cry:") Das muss doch echt nicht sein. :roll: Hier und da zehn Buchstaben mehr zu tippen hat noch keinem geschadet. :?


----------



## Bä³m (25. Jan 2009)

Andrey hat gesagt.:
			
		

> Und verzichte bitte auf diese bescheuerten Eigenbau-"IO"-Klassen. :bloed: Wenn dein lehrer deswegen heult, dann sag ihm, dass er sich seine neuerfundenen dreieckigen Räder in den allerwertesten schieben soll. :toll:


Oh, ach ja, vergessen: Professor Vornberger wird sicher begeistert deinen Vorschlägen lauschen, wie du in einer Erstsemester-Vorlesung, die in erster Linie Algorithmen vermitteln soll, direkt zu Beginn Streams und Exception-Handling an Lehramts-Studenten der Mathematik weitergeben kannst. Seine E-Mail-Adresse solltest du googeln können.


----------



## Schandro (25. Jan 2009)

stimmt, Anfänger können
System.out.println()
und z.b.
new Scanner(System.in).nextInt()
nicht ohne Streaming und Exception-Vorkentnissen schreiben, da muss schon sowas wie
IO.print()
her...


----------



## Gast (25. Jan 2009)

@Schandro: Wer nicht mal den Unterschied zwischen Eingabe und Ausgabe kennt, sollte sich vielleicht besser mal ganz ruhig verhalten...


----------



## Schandro (25. Jan 2009)

...was solln das?
türlich weiß ich den Unterschied zwischen ein- und ausgabe^^


----------



## Gast (25. Jan 2009)

Das Gefühl hab ich nicht, wenn ich mir dein obiges Posting so durchlese...


----------



## Guest (25. Jan 2009)

1. Zu den IO- Sachen:
In einer Vorlesung, wo es nicht um Java sondern eher allgemien um Algorithmen geht, macht es durchaus Sinn, den Studenten die ganzen Input/Output-Sachen zu erleichtern.
Die Vorlesung ist unter anderem auch für absolute Programmieranfänger und die Metoden in den AlgoTools (bzw. in der Klasse IO) beinhalten auch schon Fehlerbehandlungen, wenn z.B. kein Inegerwert eingegeben wird, obwohl einer erfordert ist ect.
Wenn man zu Begin der Vorlesung direkt mit den ganzen Ein- und Ausgabe-Streams anfangen würde, wäre das für die Studenten wohl wesentlich unverständlicher, als ihnen die AlgoTools an die Hand zu geben. Es geht ja nicht primär darum, Java zhu lernen, sondern Algorithmen zu verstehen und umzusetzten. Objektorientierung ist zu Beginn der Veranstaltung auch noch nicht bekannt.
Insofern finde ich (und auch viele andere) die IO-Klasse durchaus sinnvoll und finde nicht, dass man die in der Veranstaltung Algorithmen abschaffen sollte.
Bisher haben die Studenten auch keinerlei Probleme gehabt, in der Vorlesung Informatik B, wo es dann verstärkt um Java und Objektorientierung geht und dann eben auch die ganze Streamgeschichte dran kommt, Java-Literatur zu lensen und auch die IO Sachen selbst zu implementieren.
Die entsprechenden Lehrenden machden sich durchaus Gedanken, warum solche Hilfsklassen eingesetzt werden, es kommt hlat immer drauf an, wer die Zielgruppe ist.

2. Überhaupt zu den Fragen zu Aufgaben der Veranstaltung Algorithmen:
Wenn die fragenden Studenten einfach mal in die Übung gehen würden, wären viele der hier im Forum gestellten Fragen wirklich überflüssig. Die Programmieransätze werden immer(!) in den Übungen besprochen, da verstehe ich dann nicht, warum man das nicht nutzt.


----------



## Schandro (25. Jan 2009)

An den vorletzen Gast:

Weißt du überhaupt was I/O heißt? Input/Output
Wenn der Threadersteller Sachen wie IO.print benutzt, dann isses doch wahrscheinlich das diese IO Klasse auch methoden fürn Input hat. Deswegen mein Beispiel "new Scanner(System.in).nextInt() ".

Erst denken, dann posten


----------



## 0x7F800000 (25. Jan 2009)

Was müsstet ihr denn großartig über Ströme und exception-behandlung erzählen? Dass System.out der Standardausgabestrom ist, und das dieser Strom der einzige ist, den eure Lehramtsstudenten jemals brauchen werden?
Oder wie oft schmeißt der Scanner schon mit irgendwelchen Exceptions um sich? Selbst wenn er irgendwas schmeißt: sollen die doch "throws Exception" an die main dranschreiben... 



			
				Schandro hat gesagt.:
			
		

> stimmt, Anfänger können
> System.out.println()
> und z.b.
> new Scanner(System.in).nextInt()
> ...


full ack. Was die darauf folgende Antwort sollte habe ich auch nicht enträtseln können.



			
				Bä³m hat gesagt.:
			
		

> E-Mail-Adresse solltest du googeln können.


Als ob's was bringen würde. Wenn sogar Leute aus meiner direkten Umgebung nie zuhören, was soll dann eine email in irgendeiner weit entfernten Uni ändern? :roll:
Außerdem ist das viel zu unbedeutender Grund, einen Prof mit irgendwelchen emails zu belästigen. Vielleicht hält er ja sonst eine supertolle Vorlesung, dann ist das was ich hier erzähle höchstens einen Verbesserungsvorschlag bei irgendeiner Übungsgruppenleiter-Besprechung wert. Dann kannst du den Vorschlag gerne mal bei gelegenheit einwerfen, wenn du die Meinung teilst (was anscheinend nicht der Fall ist).

Manche Profs überschätzen sich manchmal einfach ein wenig auf fremden Gebieten. Und statt sich mit ihrer Umwelt auf einen gemeinsamen Nenner zu einigen, fangen sie dann an, irgendwelche "MyIO" Klassen zu schreiben, oder (noch schlimmer) irgendwelche halbdurchdachte C/C++-ähnliche Eigenbau-Sprachen zu entwerfen. 

Im ersten Fall denken sie sich wohl, dass Sun Microsystems seit 15 Jahren eine Horde Clowns beschäftigt, und dass jeder Prof das ganz alleine in drei Stunden besser hinbekommt.

Was sie sich im zweiten Fall denken weiß ich nicht. Wahrscheinlich wollen die auch nur irgendwelchen Lehrämtlern die Einarbeitungszeit in c/c++/java o.ä. ersparen. Die eingesparte Zeit dürfen die armen Lehrämtler dann an unbrauchbaren Fehlermeldungen und der mangelhaften Dokumentation verschwenden. Aber das ist wieder ein anderes Thema, ist halt nah mit dem extrem oft auftretenden "MyIO"-Phänomen verwandt. :roll:


----------



## Guest (25. Jan 2009)

Andrey hat gesagt.:
			
		

> Was müsstet ihr denn großartig über Ströme und exception-behandlung erzählen? Dass System.out der Standardausgabestrom ist, und das dieser Strom der einzige ist, den eure Lehramtsstudenten jemals brauchen werden?
> Oder wie oft schmeißt der Scanner schon mit irgendwelchen Exceptions um sich? Selbst wenn er irgendwas schmeißt: sollen die doch "throws Exception" an die main dranschreiben...



Also, da sind finde ich das Arbeiten mit gegebenen IO-Klassen doch noch besser.
Außderdem würde das nichts daran ändern, dass ein Programm bei falschen Eingaben einfach beendet ist. Bei den AlgoTools hingegen wird einfach erneut nachgefragt (mit entsprechender Fehlermeldung), wenn z.B. statt eines int-Wertes ein char eingegeben wird oder ähnliches. Das ist für den Benutzer dann doch etwas angenehmer, zumindest wenn es um die Programme aus der Algorithmen-Vorlesung geht.



			
				Andrey hat gesagt.:
			
		

> Was sie sich im zweiten Fall denken weiß ich nicht. Wahrscheinlich wollen die auch nur irgendwelchen Lehrämtlern die Einarbeitungszeit in c/c++ ersparen. Die eingesparte Zeit dürfen die armen Lehrämtler dann an unbrauchbaren Fehlermeldungen und der mangelhaften Dokumentation verschwenden. Brilliant. :roll:



Keine Ahnung, warum es nun um c/c++ geht, in Algorithemn wird nunmal mit Java programmiert.


----------



## Guest (25. Jan 2009)

Andrey hat gesagt.:
			
		

> Was müsstet ihr denn großartig über Ströme und exception-behandlung erzählen? Dass System.out der Standardausgabestrom ist, und das dieser Strom der einzige ist, den eure Lehramtsstudenten jemals brauchen werden?
> Oder wie oft schmeißt der Scanner schon mit irgendwelchen Exceptions um sich? Selbst wenn er irgendwas schmeißt: sollen die doch "throws Exception" an die main dranschreiben...



Die IO-Ausgabe-Methoden ermöglichen auch formatierte Ausgaben, die manchmal für Aufgaben benötigt werden.
Nur System.out zu benutzen würde grundsätzlich zwar gehen, aber die Aufgaben komplizierter machen, als es in dem Moment gewünscht ist.

Die AlgoTools stammen auch noch aus den Zeiten, vor Java 5, als es die Scanner-Klasse noch nicht gab. Es war durchaus im vor der Veranstaltung im Gespräch, die Scanner-Klasse zu verwenden. Unter anderem wegen der bereits mehrfach in anderen Posts erwähnten Exception-Sachen ect. werden aber für die Algorithmen-Veranstaltung weiterhin bewusst die AlgoTools verwendet.


----------



## 0x7F800000 (25. Jan 2009)

Anonymous hat gesagt.:
			
		

> finde nicht, dass man die in der Veranstaltung Algorithmen abschaffen sollte.


Um Himmels Willen. Sowas hat hier wirklich keiner behauptet. Das ist doch normalerweise die erste praktisch interessante Vorlesung, wo man sich nicht mehr nur auf "HelloWorld" beschränkt, sondern in der tat was brauchbares und realitätsnahes entwickeln kann.


> Bisher haben die Studenten auch keinerlei Probleme gehabt


Dass es nicht geschadet hat ist imho eine nicht zu tolle Rechtfertigung. Wie Schandro schon geschrieben hat: für System.out und Scanner braucht man genauso wenige (keine) Vorkenntnisse wie für diese mysteriöse IO-Klasse. Und wenn ich beim Anblick der "IO" oder "AlgoTools" Klasse halbe sekunde mehr überlegen muss, was es sein soll und wo das herkommt, dann gehe ich (aus Symmetriegründen) davon aus, dass die Programmieranfänger beim Blick in ein normales Java-Buch mit den ganzen normalen Eingabe/Ausgabe-sachen ebenso verwirrt sind, allerdings etwas mehr als für eine halbe Sekunde...



> 2. Überhaupt zu den Fragen zu Aufgaben der Veranstaltung Algorithmen:
> Wenn die fragenden Studenten einfach mal in die Übung gehen würden, wären viele der hier im Forum gestellten Fragen wirklich überflüssig. Die Programmieransätze werden immer(!) in den Übungen besprochen, da verstehe ich dann nicht, warum man das nicht nutzt.


Wahrscheinlich liegt's einfach daran, dass ein Forum keine 35 Minuten mit dem Bus entfernt ist, und außerdem auch um halb Zehn Uhr Abends am Sonntag irgendwas halbwegs sinnvolles antwortet.

Und ich meine: leute die total planlos sind werden hier auch so schon genug gestresst. Aber es ist doch besser wenn die nachfragen, als wenn sie einfach von irgendwem per copy+paste abschreiben oder am sonntagabend in "Einsamkeit und Verzweiflung" versauern und am ende nichts abgeben. Dadurch werden die doch auch nicht schlauer.


----------



## Guest (25. Jan 2009)

Andrey hat gesagt.:
			
		

> Anonymous hat gesagt.:
> 
> 
> 
> ...



Es ging wohl nicht darum die Veranstaltung abzuschaffen, sonder eher um die ALgoTools.



			
				Andrey hat gesagt.:
			
		

> > Bisher haben die Studenten auch keinerlei Probleme gehabt
> 
> 
> Dass es nicht geschadet hat ist imho eine nicht zu tolle Rechtfertigung. Wie Schandro schon geschrieben hat: für System.out und Scanner braucht man genauso wenige (keine) Vorkenntnisse wie für diese mysteriöse IO-Klasse. Und wenn ich beim Anblick der "IO" oder "AlgoTools" Klasse halbe sekunde mehr überlegen muss, was es sein soll und wo das herkommt, dann gehe ich (aus Symmetriegründen) davon aus, dass die Programmieranfänger beim Blick in ein normales Java-Buch mit den ganzen normalen Eingabe/Ausgabe-sachen ebenso verwirrt sind, allerdings etwas mehr als für eine halbe Sekunde...



Ich gehe davon aus, dass die IO-Klassen den Programmieranfängern in Algorithmen das gesamt programmieren soviel erleichtern, dass der Nachteil, dass sie ggf. Javacode in Büchern schlechter verstehen (der in der Tat da ist), für mich (und wohl für die beteiligten Lehrenden auch) nicht so stark ins Gewicht fällt.
Und den Scanner zu verwenden und in der main die Exception zu werfen birgt wie schon woanders erwähnt wurde das Problem, dass das Programm sofort bei einer fehlerhaften Eingabe abbricht (mit einer für den Benutzer nicht sehr schönen Fehlermeldung), was die ALgoTools vermeiden.




			
				Andrey hat gesagt.:
			
		

> > 2. Überhaupt zu den Fragen zu Aufgaben der Veranstaltung Algorithmen:
> > Wenn die fragenden Studenten einfach mal in die Übung gehen würden, wären viele der hier im Forum gestellten Fragen wirklich überflüssig. Die Programmieransätze werden immer(!) in den Übungen besprochen, da verstehe ich dann nicht, warum man das nicht nutzt.
> 
> 
> ...



Wenn man studiert, muss man ab und an nun mal in die Uni kommen. Da die Vorlesugn schon als Aufzeichnung existiert ist es wohl nicht zu viel verlangt, in die Übung zu gehen. Da es vier verschiedene Übungen gibt, wird eine davon ja für die allermeisten in ihren Stundenplan passen.
Auf der Mailingliste der Verantstaltung kann man auch Fragen stellen und bekommt in den allermeisten Fällen uach an Wochenenden und/oder spät abends auch sinnvolle Antworten. Das ganze hat dann auch den Vorteil, dass die Übungsleiter die Probleme mit bekommen und ggf. nochmal genaueres dazu sagen können. Außerdem bekommen alle aus der Veranstaltung die gleichen Tips. Und dass teilweise ganze Lösungen hier im Forum verraten werden (wie es auch schon war) finde ich nun nicht hilfreich, weil davon im wesentlichen auch nur abgeschrieben wird und man auch nicht schlauer wird. 
Ich sage nichts dagegen, sich Hilfe zu holen (von mir aus auch in Foren), aber teilweise wird hier schon dreist nach Lösungen gefragt und diese manchmal auch geliefert. Es ist einfach für diejenigen, die die Aufgaben selbst zu lösen, sehr unfair!


----------



## Guest (25. Jan 2009)

Andrey hat gesagt.:
			
		

> sag mal, in was für eine klasse schreibst du diese methoden denn rein? Schreib die doch direkt in die baum-klasse, dann brauchst du diese ganzen right() und left() methoden nicht zu bemühen, sondern hast direkt zugriff auf referenzen right und left.
> 
> Und überhaupt würde ich das alles als member methoden schreiben, nicht als statische methoden, die den baum kriegen.



Tja, man will ja gegebene Klassen nicht unbedingt ändern. Zumindest ist das in der Aufgabe nicht erlaubt. Auch ist es Absicht, dass das statische Methoden sind. Es kommt ja immer drauf an, was man will. Dein Vorshclag kann durchaus Sinn machen, ist hier aber nicht gefragt.


----------



## 0x7F800000 (25. Jan 2009)

Anonymous hat gesagt.:
			
		

> Ich gehe davon aus, dass die IO-Klassen den Programmieranfängern in Algorithmen das gesamt programmieren soviel erleichtern, dass der Nachteil, dass sie ggf. Javacode in Büchern schlechter verstehen (der in der Tat da ist), für mich (und wohl für die beteiligten Lehrenden auch) nicht so stark ins Gewicht fällt.
> Und den Scanner zu verwenden und in der main die Exception zu werfen birgt wie schon woanders erwähnt wurde das Problem, dass das Programm sofort bei einer fehlerhaften Eingabe abbricht (mit einer für den Benutzer nicht sehr schönen Fehlermeldung), was die ALgoTools vermeiden.


Gut. Das Argument mit dem unerwünschten Abbruch bei ungültigen Eingaben ist akzeptiert.
Bei einer vorlesung über Algorithmen sollte es imho die leute zwar auch nicht überfordern, eine while-schleife um die eingabe-methode drumrumzuwerfen, aber gut. Ferner hat tastatur eingabe/ausgabe imho eh nicht viel in einer Algorithmen-Übung verloren, da muss man doch eh immer zig tausend "abstrakte einheiten" von irgendwas einlesen damit der test interessant wird, das gibt doch eh kein mensch per hand ein, aber: auch gut. Soll mir alles recht sein. Aber imho könnte man in der Vorlesung den Leuten zumindest mal ein bisschen klarer machen, dass sie mit ihren separatisten-klassen in der "Außenwelt" auf unverständnis stoßen werden. Wenn ich hier jemanden bisschen helfen will, nervt es mich gewaltig, wenn ich auch nur an drei stellen statt "IO" irgendwas anderes reinschreiben muss, Ctrl+F hin oder her...

Und überhaupt "Ich gehe davon aus" klingt jetzt auch nicht danach, als ob du irgendwelche Statistiken vor dir hättest. Weißt du sicher, dass es den meisten nicht schadet? 

Ich weiß es nicht.
Ich wollte nur sagen, dass ich es wesentlich besser fände, wenn man den leuten nicht unnötige Klassen an den Kopf werfen würde, die nicht aus der API kommen. Solche Klassen haben irgendwie den bitteren Beigeschmack einer Dialektenbildung, die bei mir mit dem Untergang der Sprache assoziiert wird. Das ist jetzt meine subjektive Meinung, euren prof oder wen auch immer wollte ich nicht angreifen. Aber ich werde jedem den ich sehe weiterempfehlen, nach möglichkeit von der normalen API gebrauch zu machen.

Wenn ihr eure babylonische sprachverwirrung besser findet: ok, aber sorgt irgendwie dafür, dass klargestellt wird, dass es für dieselbe aufgabe auch die standard API gibt.




> Da die Vorlesugn schon als Aufzeichnung existiert ist es wohl nicht zu viel verlangt, in die Übung zu gehen.


 Mir erscheint die Anwesenheitspflicht in den Vorlesungen irgendwie sinnvoller, um ehrlich zu sein... aber das ist wieder ein ganz anderes Thema.


> Auf der Mailingliste der Verantstaltung kann man auch Fragen stellen und bekommt in den allermeisten Fällen uach an Wochenenden und/oder spät abends auch sinnvolle Antworten. Das ganze hat dann auch den Vorteil, dass die Übungsleiter die Probleme mit bekommen und ggf. nochmal genaueres dazu sagen können. Außerdem bekommen alle aus der Veranstaltung die gleichen Tips. Und dass teilweise ganze Lösungen hier im Forum verraten werden (wie es auch schon war) finde ich nun nicht hilfreich, weil davon im wesentlichen auch nur abgeschrieben wird und man auch nicht schlauer wird.


Hmhmhm. Na dann weiß ich auch nicht, warum der OP einfach nicht dort nachfragt. Vielleicht sucht er nach der gewohnten Anonymität? Ich find's wesentlich angenehmer irgendwo nachzufragen, wo kein Mensch weiß wer ich bin und worum es geht.


> Es ist einfach für diejenigen, die die Aufgaben selbst zu lösen, sehr unfair!


Zum einen kann man in der Klausur nichts im forum nachfragen, und auch nichts abschreiben.
Zum anderen ist bei mir dieses erwähnte Gerechtigkeitsgefühl wohl ein wenig unterentwickelt: ich darf seit mehreren Semestern beobachten, wie manche Komilitonen in 3er Gruppen (!!) abschreiben (!!!). Da komme ich mir mit meiner komplett eigenständig zusammengebauten Hausaufgabe manchmal schon ziemlich dämlich vor. 
Und überhaupt... Putin hat seine Doktorarbeit abgeschrieben, und hat jetzt etwa 40 Milliarden Dollar. Und wir sitzen hier rum und regen uns über programmierhausaufgaben auf :roll:


----------



## baetschelor (25. Jan 2009)

Ich versteh nicht warum ihr hier mit diesen "Leuten" ueber solche Dinge diskutiert, die scheinen doch nicht einmal zu verstehen worum es in einer Algorithmen Vorlesung geht. Ich mein jeder kann verstehen wie man mit Java einliesst und ausgibt, generell Java bedienen ist kein Kunststueck. Verstehe auch nicht warum es so ein Forum gibt, man kann einfach die Java api lesen falls man etwas nicht weiss. 
Aber wie gesagt, das spielt doch in einer Algo-Vorlesung gar keine Rolle.


----------



## 0x7F800000 (26. Jan 2009)

baetschelor hat gesagt.:
			
		

> Ich mein jeder kann verstehen wie man mit Java einliesst und ausgibt, generell Java bedienen ist kein Kunststueck.


Jo, das ist im wesentlichen genau das, was ich gesagt hab. Kann mir jetzt einer von euch bitte erklären, warum ihr hier zudritt (zuviert, zufünft?) schon seit über drei Stunden wegen meiner kurzen blöden Bemerkung Aufsätze zum Thema "Wie herrlich unsre IO doch ist" reinschreibt? Meine Güte, hätte ich gewusst dass wegen diesem Kleinkram hier voll der Karikaturstreit ausbricht... :?


> Verstehe auch nicht warum es so ein Forum gibt, man kann einfach die Java api lesen falls man etwas nicht weiss.


Es gibt auch Leute, die keine Informatik studieren, und trotzdem was über java/programmierung/algorithmen und ähnliche Geschichten wissen wollen.
Und jetzt mal ehrlich: willst du wirklich behaupten, dass du bisher alle Fragen nur Mithilfe der Literatur/API beantworten konntest, und nie eine Frage an Menschen gestellt hast? 


> Aber wie gesagt, das spielt doch in einer Algo-Vorlesung gar keine Rolle.


Sehe ich im Prinzip auch so. Einigen wir uns darauf :toll:


----------



## Gast (26. Jan 2009)

Oh du meine Güte, da hab ich ja was angeleiert ^^

@zur Übung: evtl ist man auch mal krank?! Also muss es ja auch ohne sie gehen.

Noch ne kurze Frage:

wie kann ich mgl. unkompliziert einen Baum erstellen?
Kann ruhig ein fest gegebener baum sein, mit buchstaben drin oder so, egal.

mach ich das mit ner for-schleife, oder ner while schleife oder gar rekursiv?

hab halt den konstruktor(Baum,Object, Baum)
und alternativ (Object)


----------



## Guest (26. Jan 2009)

Andrey hat gesagt.:
			
		

> Als ob's was bringen würde. Wenn sogar Leute aus meiner direkten Umgebung nie zuhören


Denk mal drüber nach, vielleicht laberst du in echt auch seitenweise Müll, wie hier?


----------



## 0x7F800000 (26. Jan 2009)

OP-Gast hat gesagt.:
			
		

> @zur Übung: evtl ist man auch mal krank?! Also muss es ja auch ohne sie gehen.


Antwort von jemand anders:


			
				~3. Gast hat gesagt.:
			
		

> Auf der Mailingliste der Verantstaltung kann man auch Fragen stellen und bekommt in den allermeisten Fällen uach an Wochenenden und/oder spät abends auch sinnvolle Antworten.


Ist vielleicht gar nicht mal so schlechte Idee? :roll:



			
				OP hat gesagt.:
			
		

> wie kann ich mgl. unkompliziert einen Baum erstellen?
> hab halt den konstruktor(Baum,Object, Baum)
> und alternativ (Object)


omg, Kollege, schon mal n' Baum gesehn? :shock:

Falls nicht, dann guggst du hier:





Ich hoffe die Lösung kannst du dir jetzt selbst zusammendichten :roll: 

PS: Wenn die Uni Osnabrück für diese explizite Lösung einen Auftragskiller auf mich ansetzt, soll's mir auch recht sein, ich konnt's mir nicht verkneifen :lol:


----------



## 0x7F800000 (26. Jan 2009)

Anonymous hat gesagt.:
			
		

> Andrey hat gesagt.:
> 
> 
> 
> ...


Ich dachte mir eigentlich ich wär' nach 12 Zeilen text und 16 zeilen code fertig :?


----------



## Guest (26. Jan 2009)

Andrey hat gesagt.:
			
		

> Und überhaupt "Ich gehe davon aus" klingt jetzt auch nicht danach, als ob du irgendwelche Statistiken vor dir hättest. Weißt du sicher, dass es den meisten nicht schadet?
> 
> Ich weiß es nicht.
> Ich wollte nur sagen, dass ich es wesentlich besser fände, wenn man den leuten nicht unnötige Klassen an den Kopf werfen würde, die nicht aus der API kommen. Solche Klassen haben irgendwie den bitteren Beigeschmack einer Dialektenbildung, die bei mir mit dem Untergang der Sprache assoziiert wird. Das ist jetzt meine subjektive Meinung, euren prof oder wen auch immer wollte ich nicht angreifen. Aber ich werde jedem den ich sehe weiterempfehlen, nach möglichkeit von der normalen API gebrauch zu machen.



Da ich seit ein paar Jahren mit dieser und anderen (nachfolgenden) Veranstaltung zu tun habe, kann ich das denke ich schon beurteilen und bin mir sicher. Aber du kannst ja anderer Meinung sein.

Natürlich sollte man keine überflüssigen Klassen verwenden, aber wie nun schon gesagt, ist die IO Klasse nicht überflüssig für diese Veranstaltung Algorithmen. Wenn es um andere Verantstaltungen geht kümmern sich die Studneten bei uns auch selbst um Ein- und Ausgabe. Das hat bisher trotz der zuvor benutzen AlgoTools immer funktioniert und es haben alle hinbekommen.

Du kannst gern jede empfehlen, die normale API zu verwenden, in der Algorithmenveranstaltung tun wir das nunmal nicht, und das haben wir uns auch gut überlegt.

Einigen werden wir uns wohl nicht, aber vielleicht ist es ja nun gut, jeder hat seine Meinung/Ansicht ausreichend erläutert, denke ich


----------



## Guest (26. Jan 2009)

Andrey hat gesagt.:
			
		

> Gut. Das Argument mit dem unerwünschten Abbruch bei ungültigen Eingaben ist akzeptiert.
> Bei einer vorlesung über Algorithmen sollte es imho die leute zwar auch nicht überfordern, eine while-schleife um die eingabe-methode drumrumzuwerfen, aber gut. Ferner hat tastatur eingabe/ausgabe imho eh nicht viel in einer Algorithmen-Übung verloren, da muss man doch eh immer zig tausend "abstrakte einheiten" von irgendwas einlesen damit der test interessant wird, das gibt doch eh kein mensch per hand ein, aber: auch gut. Soll mir alles recht sein. Aber imho könnte man in der Vorlesung den Leuten zumindest mal ein bisschen klarer machen, dass sie mit ihren separatisten-klassen in der "Außenwelt" auf unverständnis stoßen werden. Wenn ich hier jemanden bisschen helfen will, nervt es mich gewaltig, wenn ich auch nur an drei stellen statt "IO" irgendwas anderes reinschreiben muss, Ctrl+F hin oder her...


Die Schleife würde ja bei einer auftretenden Exception auch nichts nützen, wenn man den Studenten das try-catch noch nicht beibringen kann/will. Natürlich kann man wieder diskutieren, ob man das nicht lieber tun sollte. Dann könnte man nun wirklich die Klasse Scanner verwenden, das stitmmt. Bei uns wird es nach einigem Überlegen und Diskutieren bisher nicht gemacht. Vielleicht kommt das ja nochmal.

Die Tests zu dem Aufgaben der Algortihmenveranstaltung sind fast immer mit kurzen Eingaben sinnvoll zu bewerkstelligen.

Nur, weil in Foren dann jemand genervt ist, muss man den Studenten nichts erzählen. Aber es wird trotzdem gemacht.
Dass die AlgoTools mit Java-internen Mitteln programmiert sind, wird erzählt und auch, dass sie das Programmieren am Anfang einfach erleichtern sollen. Es wird auch gesagt, dass man dazu mehr in der nachfolgenden Veranstaltung lernt.


----------



## Gast (26. Jan 2009)

Bei uns an der Uni haben wir auch eine vorgefertigte Tastatur-Klasse zum Einlesen von Werten bekommen, die dafür sorgt, dass auch wirklich ein gewünschter Wert eingelesen wird.
Das ist eine Super-Sache gerade für Anfänger, die, ohne tief in Stream, Exception usw. eindringen zu müssen, Programme schreiben können, die für eine gewisse Befriedigung sorgen. Oh, ich kann meinen Namen und mein Alter eingeben und er berechnet mein BMI etc.
Später, wenn die Grundlagen gelegt sind, ist es Aufgabe, diese Klasse nachzuprogrammieren.

System.out.println() muss nicht ersetzt werden, aber BufferedReader = new .................
darf ruhig am ANFANG ausser Acht gelassen werden.

Ausserdem benutz ich diese Kasse für jegliche Konsolenprogrammierung, und ist dass nicht das schöne an höheren Programmiersprachen, die wiederverwertbarkeit?


----------



## Guest (26. Jan 2009)

Andrey hat gesagt.:
			
		

> Kann mir jetzt einer von euch bitte erklären, warum ihr hier zudritt (zuviert, zufünft?) schon seit über drei Stunden wegen meiner kurzen blöden Bemerkung Aufsätze zum Thema "Wie herrlich unsre IO doch ist" reinschreibt? Meine Güte, hätte ich gewusst dass wegen diesem Kleinkram hier voll der Karikaturstreit ausbricht... :?



Wenn hier im Forum behauptet wird, dass solche Hilfsklassen schlecht sind, dann kann man ja hier begründet reinschreiben, warum sie es nicht immer sind oder zumindest in unserm Fall nicht. Das war mein Grund, zu schreiben.


----------



## 0x7F800000 (26. Jan 2009)

Gast hat gesagt.:
			
		

> Ausserdem benutz ich diese Kasse für jegliche Konsolenprogrammierung, und ist dass nicht das schöne an höheren Programmiersprachen, die wiederverwertbarkeit?


gut, wenn du viele Konsolenprogramme schreibst, die in etwa gleich bedient werden müssen, dann nervt auch der hochpraktsiche Scanner vielleicht auf Dauer.
Solange man das alles mit Bedacht anwendet, ist doch sowieso alles in bester Ordnung.

Wovor ich hier gewarnt habe sind Situationen, in den solche anfangs noch hilfreiche Hilfsklassen zu monströsen gänzlich von der Realität entfernten Konstrukten entarten. ZB. kam da vor nicht allzu langer Zeit irgendeine arme Seele angekrabbelt, hat irgendwas unverständliches auf Marsianisch von sich gegeben, und hat dann letztendlich verraten, wer ihm das angetan hat, das war diese "pädagogisch sinnvolle" Maßnahme. Wegen solchen Fällen bin ich eben sehr skeptisch gegen jegliche nicht direkt notwendige "Hilfsklassen" eingestellt. Und ein paar Gründe die direkt mich selbst betreffen würden mir auch noch einfallen, aber das ist wieder ein anderes thema.


			
				irgend ein Anderer Gast hat gesagt.:
			
		

> Wenn hier im Forum behauptet wird, dass solche Hilfsklassen schlecht sind, dann kann man ja hier begründet reinschreiben, warum sie es nicht immer sind oder zumindest in unserm Fall nicht. Das war mein Grund, zu schreiben.


Aber natürlich. War ja auch alles größtenteils vollkommen in Ordnung. :toll: Aber die ein paar wenige dämliche Sprüche haben hier für eine ziemlich unangenehme Stimmung gesorgt, sowas wie


> @Schandro: Wer nicht mal den Unterschied zwischen Eingabe und Ausgabe kennt, sollte sich vielleicht besser mal ganz ruhig verhalten...


und


> Denk mal drüber nach, vielleicht laberst du in echt auch seitenweise Müll, wie hier?


hätte der jeweilige poster ruhig für sich behalten können, wenn der sonst nichts sinnvolles zu erzählen hat. :roll:

In meiner ersten Antwort an diesen "bäääm"-Tutor habe ich echt etwas genervt reagiert, da sollte ich mich wohl wirklich entschuldigen: Sorry  
 Ich konnte es irgendwie nicht richtig einordnen, wieso jemand Bewegungen von anderen Studenten im Internet beobachtet. Kann ich ehrlich gesagt immer noch nicht. ???:L Ob jemand eigenständig arbeitet, über die Hausaufgaben während Joga-Übungen meditiert, zwischen Egoshooter-Runden lernt, abschreibt, über den Vorlesungsstoff klarträumt, oder in Foren nachfragt: das ist doch jeweils private Sache von jedem einzelnen. Solange die Klausur am Ende fair ist, macht es doch eh keinen Unterschied.

Und bitte: Plakate mit den Namen der Professoren sollte man auch nicht bei jedem nichtigen Anlass ausrollen, wenn ich auf ein gutes Argument treffe, dann halte ich auch so die Klappe, große Autoritäten braucht man dazu nicht unbedingt zu bemühen :roll:

peace.
greetz, Andrey.


----------



## Guest (26. Jan 2009)

Andrey hat gesagt.:
			
		

> irgend ein Anderer Gast hat gesagt.:
> 
> 
> 
> ...



Ja,  da geb ich dir völlig recht. In dem Punkt sind wir uns einig. :toll: 



			
				Andrey hat gesagt.:
			
		

> Ich konnte es irgendwie nicht richtig einordnen, wieso jemand Bewegungen von anderen Studenten im Internet beobachtet. Kann ich ehrlich gesagt immer noch nicht. ???:L Ob jemand eigenständig arbeitet, über die Hausaufgaben während Joga-Übungen meditiert, zwischen Egoshooter-Runden lernt, abschreibt, über den Vorlesungsstoff klarträumt, oder in Foren nachfragt: das ist doch jeweils private Sache vom jeden einzelnen. Solange die Klausur am Ende fair ist, macht es doch eh keinen Unterschied.



Bei uns hat keiner was dagegen, wenn in Foren Hilfe gesucht wird. Es ist nur wirklich nicht schön, wenn komplette Lösungen erfragt werden. Wenn bei Problemen geholfen wird ist da ja gut. Grundsätzlich ist es ja sehr gut, sich Hilfe zu holen. Das Problem ist nur, dass das ganze meist darauf hinausläuft, dass komplette Lösungen gepostet werden. Es gibt sicher Leute, die das dann auch erst nachvollziehen, bevor sie es benutzen, aber auch einige (ich vermute, eher viele, aber das ist nun meine persönliche Vermutung), die das nicht tun. Da die Aufgaben gemacht werden müssen, um für Klausur zugelassen zu werden, finde ich, dass es einen Unterschied macht, wo die Lösung nun herkommt insbesondere, ob sie abgeschrieben ist (das ist meine Meinung, du kannst ja anderer Meinung sein). Wenn die Aufgaben nicht für die Zulassung wichtig wären, wäre es vielleicht etwas egaler, weil man dann einfach nur selbst schuld ist, wenn man nichts lernt, falls man abschreibt. 
Sicherlich steht man nachher in der Klausur allein da und muss die Sachen selber lösen könne, das stimmt. Aber für mich ist das kein Grund, warum nicht auch der Weg dahin und für die Zulassung für alle gleich fair sein sollte. Ich will nicht sagen, dass alle hier abschreiben, aber an manchen Fragen erkennt man, dass nichtmal irgendeinen Ansatz vorhanden ist und absolute Grundkenntnisse fehlen. Ich denke, dass so jemand mit "vorgefertigten Antworten" nicht viel lernt, sondern einfach abschreibt.
Also: wir haben nichts dagegen, wenn Probleme in Foren diskutiert werden, nur führt das eben oft zu oben genanntem Phänomen. Und wie schon erwähnt wäre es sehr fair für alle, soche Fragen auf der Mailingliste zu klären, weil die Mails alle bekommen.


			
				Andrey hat gesagt.:
			
		

> peace.
> greetz, Andrey.


dito


----------



## 0x7F800000 (26. Jan 2009)

Anonymous hat gesagt.:
			
		

> Aber für mich ist das kein Grund, warum nicht auch der Weg dahin und für die Zulassung für alle gleich fair sein sollte.


Okay. Kann man eigentlich auch nichts dagegen einwenden, das sind halt zwei Meinungen, was sich am Ende als sinnvoller herausstellt wage ich nicht vorherzusagen. Ich werde jedenfalls in Zukunft versuchen, die "Hausaufgaben-erschleicher" konsequenter abzuwimmeln, bzw diese möglichst lange an der Aufgabe hocken zu lassen, um sicherzugehen, dass die auch wirklich alles raffen, ich werde auch etwas weniger code posten  :toll:


----------



## Guest (26. Jan 2009)

Andrey hat gesagt.:
			
		

> Anonymous hat gesagt.:
> 
> 
> 
> ...



Ich denke, dass du das zwar nicht so meinst, aber ich wollte nur nochmal sagen, dass es mir nicht darum geht, dass sie Leute möglichst lang daran sitzen, sondern ums Verstehen. Aber ich denke, das meinst du ja. Insofern scheinen wir uns doch noch zumindest etwas einig zu sein.


----------

