<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.178.178.63</id>
	<title>FreitagsrundenWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.178.178.63"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/85.178.178.63"/>
	<updated>2026-11-02T05:02:13Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9631</id>
		<title>Javakurs/Übungsaufgaben/Rekursion vs. Iteration</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9631"/>
		<updated>2007-04-06T22:17:49Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeitsgrad&#039;&#039;&#039;: schwer&lt;br /&gt;
&lt;br /&gt;
Das Ziel dieser Aufgabe ist es, dass Ihr möglichst viele Eurer bisher erworbenen Java-Kenntnisse Schritt für Schritt anwendet. Abschließend sollt Ihr noch einen kleinen Benchmark einer rekrusiv und iterativ implementierten Funktion durchführen.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise Ermitteln &amp;amp; Verhübschen==&lt;br /&gt;
&lt;br /&gt;
Gegeben ist folgende kleine Funktion:&lt;br /&gt;
&lt;br /&gt;
 public static int doSomethingClever(int a){&lt;br /&gt;
    int b;&lt;br /&gt;
    if(a &amp;lt;= 1){&lt;br /&gt;
       if(a == 1){&lt;br /&gt;
          b = calcSomethingNice(a);&lt;br /&gt;
       }else{&lt;br /&gt;
          b = getSomeSmartInt(a - 1);&lt;br /&gt;
       }&lt;br /&gt;
    }else{&lt;br /&gt;
       return theSmartestMethodsAlwaysNeedRidiculouslyLongNames(a);&lt;br /&gt;
    }&lt;br /&gt;
    return b;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int getSomeSmartInt(int c){&lt;br /&gt;
    return ++c;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int calcSomethingNice(int d){&lt;br /&gt;
    int i = 1;&lt;br /&gt;
    for(i = d * 11; i &amp;gt; d; i--){&lt;br /&gt;
       i--;&lt;br /&gt;
    }&lt;br /&gt;
    return i;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int theSmartestMethodsAlwaysNeedRidiculouslyLongNames(int e){&lt;br /&gt;
    int container = doSomethingClever(e - 1);&lt;br /&gt;
    return container + doSomethingClever(e - 2);&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
Offensichtlich ist hier programmiertechnisch Einiges schief gegangen. Denn obwohl der Code richtig funktioniert, ist er nur schwer leserlich. Folgende Fehler wurden gemacht:&lt;br /&gt;
&lt;br /&gt;
*nichtssagende Bennung der Variablen und Methoden &lt;br /&gt;
*keine Kommentare&lt;br /&gt;
*übertrieben Auslagerung in Extra-Methoden&lt;br /&gt;
&lt;br /&gt;
All das sollt Ihr jetzt schrittweise ändern:&lt;br /&gt;
&lt;br /&gt;
#Versucht, ohne den PC mit einigen Handsimulationen herauszufinden, was doSomethingClever eigentlich berechnet&lt;br /&gt;
#* Hinweis: Beginnt mit kleinen Zahlen wie 0,1,2 oder 3 und macht mehrere Durchgänge.&lt;br /&gt;
#* Tipp: Es wird stets das n-te Glied einer bekannten Zahlenfolge berechnet.&lt;br /&gt;
#Integriert zuerst die beiden Hilfsfunktionen getSomeSmartInt und calcSomethingNice in die Hauptfunktion, da beide ziemlich überflüssig sind.&lt;br /&gt;
#Löst die verschachtelte Rekursion von doSomethingClever und theSmartest... auf.&lt;br /&gt;
#Lasst Euch &amp;quot;sprechende&amp;quot; Namen sowohl für die Variablen, Methode(n) und als auch die Klasse einfallen.&lt;br /&gt;
#Fügt ausreichend viele und prägnante Kommentare hinzu, bis das Programm für Euch gut lesbar ist.&lt;br /&gt;
#&#039;&#039;&#039;WICHTIG:&#039;&#039;&#039; Holt Euch nun einen &#039;&#039;&#039;Tutor&#039;&#039;&#039; ran, zeigt ihm Euer Programm und diskutiert die Lesbarkeit des Codes. Er kann euch sicherlich nützliche Tipps geben, was Ihr in Zukunft beim Programmieren unbedingt beachten solltet.&lt;br /&gt;
&lt;br /&gt;
== Eine Iterative Alternative ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein Programm, dass die gleiche Zahlenreihe nicht-rekursiv berechnet. Verwendet dazu ein Array von Integern und folgende Idee: &lt;br /&gt;
* Initialisiert ein Array, das alle Folgenglieder (bei 0 anfangend) bis zum Gesuchten aufnehmen kann.&lt;br /&gt;
* Berechnet die Folgenglieder in einer Schleife Eurer Wahl aufsteigend bei 0 beginnend und speichert sie in dem Array wie folgt: Folgenglied 0 steht an Position 0 im Array, Folgenglied 1 steht an Position 1 im Array, usw.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Wenn Ihr mit der Programmidee oder der Implementation Probleme habt, zögert nicht, einen Tutor zu fragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Benchmark und Auswertung ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein letztes kurzes Programm, das zuerst die Folgenglieder 5, 10, 15, 20, 30 und 40 iterativ und dann noch einmal rekursiv berechnet und sofort auf der Console ausdruckt.&lt;br /&gt;
&lt;br /&gt;
Diskutiert die Geschwindigkeitsunterschiede und die möglichen Vorteile der iterativen Implementation mit einem Tutor.&lt;br /&gt;
&lt;br /&gt;
Tipp: Sollte Euer iteratives Programm nicht binnen weniger Sekunden sämtliche Zahlen berechnet haben, lasst unbedingt einen Tutor kurz drüberschauen.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9654</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9654"/>
		<updated>2007-04-06T22:16:02Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: /* Zusatz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.&lt;br /&gt;
&lt;br /&gt;
Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Testet jede Eurer geschriebenen Methoden am besten sobald Ihr sie geschrieben habt, um mögliche Fehler frühzeitig zu finden.&lt;br /&gt;
&lt;br /&gt;
== 3D-Punkt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Point3D, die die Representation eines Punktes im dreidimensionalen Punktes darstellt.&lt;br /&gt;
&lt;br /&gt;
Die Klasse soll folgende Daten, Methoden und Funktionen haben:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für x-, y- und z-Koordinaten&lt;br /&gt;
# einen Constructor, der Initialisierungswerte für x,y und z bekommt&lt;br /&gt;
# eine toString(), die den Punkt so darstellt: &amp;quot;(3, 2, 1)&amp;quot;&lt;br /&gt;
#* Tipp: Spätestens jetzt sollte ein erster Test des bisher Geschriebenen erfolgen.&lt;br /&gt;
# eine Methode changeCoordinates, die eine nachträgliche Anpassung der Koordinaten ermöglicht.&lt;br /&gt;
# eine Funktion calcDistance, die den Abstand des Punktes zu einem zweiten berechnet&lt;br /&gt;
#* Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnen wollte. In beiden Fällen könnt Ihr unter [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html java.lang.Math] Nützliches finden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kugel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Sphere, die eine Kugel darstellen soll.&lt;br /&gt;
&lt;br /&gt;
Sphere soll folgende Daten und Methoden kapseln:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für Ursprung (Point3D) und Radius&lt;br /&gt;
# Methoden zum Ändern und Initialisieren dieser Werte&lt;br /&gt;
# eine toString mit passender Visualisierung&lt;br /&gt;
#* Tipp: Heute schon getestet? ;-)&lt;br /&gt;
# zwei Funktionen, die Volumen und Oberfläche der Kugel berechnen&lt;br /&gt;
# eine Funktion, die diese Kugel und eine andere hinsichtlich ihrer Größe vergleicht (compareSpheres)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitere Figuren ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Orientiert Euch an Sphere und Point 3D und schreibt Klassen für weitere Figuren, wie z.B. Würfel, Zylinder oder Kegel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Canvas ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schreibt eine Klasse Canvas, die &lt;br /&gt;
&lt;br /&gt;
# durch ein parameterlosen Constructor erzeugt wird.&lt;br /&gt;
# ein Array für jede Sorte von geometrischer Figur besitzt&lt;br /&gt;
#* Tipp: Macht Euch Gedanken wie Ihr ein über- oder unterlaufen des Arrays verhindern und abfangen könnt.&lt;br /&gt;
# durch entsprechende Methoden Figuren jeder Sorte einzeln hinzufügen und löschen kann&lt;br /&gt;
# eine Methode zu Berechnung des Gesamtvolumens und der Gesamtoberfläche hat&lt;br /&gt;
# als toString eine Liste aller Figuren und andere relevante Infos ausgibt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zusatz ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung nur für Cracks&#039;&#039;&#039;: Diese Zusatzaufgabe geht über den Inhalt und Sinn des Javakurses hinaus. Daher fangt sie nur an, wenn Ihr alles andere verstanden und keine weiteren Fragen mehr habt. Das meinen wir ernst.&lt;br /&gt;
&lt;br /&gt;
Schreibt mithilfe der Terminalklasse eine Klasse, die eine Oberfläche zur Verfügung stellt, die interaktiv das Hinzufügen und Löschen von Figuren ermöglicht und alle Daten ausgeben kann.&lt;br /&gt;
&lt;br /&gt;
* Tipp: Nutze folgendes Konstukt für die mehrstufige Fallunterscheidung:&lt;br /&gt;
&lt;br /&gt;
 public class MyClass{...&lt;br /&gt;
    char decision;&lt;br /&gt;
    ...&lt;br /&gt;
    //decision gets some value&lt;br /&gt;
    ...&lt;br /&gt;
    switch(decision){&lt;br /&gt;
      case &#039;a&#039;: doSth();break;&lt;br /&gt;
      case &#039;b&#039;: doSthDiff();break;&lt;br /&gt;
      default doAnotherThing();break;&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Das funktioniert natürlich auch mit mehr Fällen und ints.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9653</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9653"/>
		<updated>2007-04-06T22:15:17Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.&lt;br /&gt;
&lt;br /&gt;
Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Testet jede Eurer geschriebenen Methoden am besten sobald Ihr sie geschrieben habt, um mögliche Fehler frühzeitig zu finden.&lt;br /&gt;
&lt;br /&gt;
== 3D-Punkt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Point3D, die die Representation eines Punktes im dreidimensionalen Punktes darstellt.&lt;br /&gt;
&lt;br /&gt;
Die Klasse soll folgende Daten, Methoden und Funktionen haben:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für x-, y- und z-Koordinaten&lt;br /&gt;
# einen Constructor, der Initialisierungswerte für x,y und z bekommt&lt;br /&gt;
# eine toString(), die den Punkt so darstellt: &amp;quot;(3, 2, 1)&amp;quot;&lt;br /&gt;
#* Tipp: Spätestens jetzt sollte ein erster Test des bisher Geschriebenen erfolgen.&lt;br /&gt;
# eine Methode changeCoordinates, die eine nachträgliche Anpassung der Koordinaten ermöglicht.&lt;br /&gt;
# eine Funktion calcDistance, die den Abstand des Punktes zu einem zweiten berechnet&lt;br /&gt;
#* Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnen wollte. In beiden Fällen könnt Ihr unter [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html java.lang.Math] Nützliches finden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kugel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Sphere, die eine Kugel darstellen soll.&lt;br /&gt;
&lt;br /&gt;
Sphere soll folgende Daten und Methoden kapseln:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für Ursprung (Point3D) und Radius&lt;br /&gt;
# Methoden zum Ändern und Initialisieren dieser Werte&lt;br /&gt;
# eine toString mit passender Visualisierung&lt;br /&gt;
#* Tipp: Heute schon getestet? ;-)&lt;br /&gt;
# zwei Funktionen, die Volumen und Oberfläche der Kugel berechnen&lt;br /&gt;
# eine Funktion, die diese Kugel und eine andere hinsichtlich ihrer Größe vergleicht (compareSpheres)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitere Figuren ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Orientiert Euch an Sphere und Point 3D und schreibt Klassen für weitere Figuren, wie z.B. Würfel, Zylinder oder Kegel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Canvas ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schreibt eine Klasse Canvas, die &lt;br /&gt;
&lt;br /&gt;
# durch ein parameterlosen Constructor erzeugt wird.&lt;br /&gt;
# ein Array für jede Sorte von geometrischer Figur besitzt&lt;br /&gt;
#* Tipp: Macht Euch Gedanken wie Ihr ein über- oder unterlaufen des Arrays verhindern und abfangen könnt.&lt;br /&gt;
# durch entsprechende Methoden Figuren jeder Sorte einzeln hinzufügen und löschen kann&lt;br /&gt;
# eine Methode zu Berechnung des Gesamtvolumens und der Gesamtoberfläche hat&lt;br /&gt;
# als toString eine Liste aller Figuren und andere relevante Infos ausgibt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zusatz ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung nur für Cracks&#039;&#039;&#039;: Diese Zusatzaufgabe geht über den Inhalt und Sinn des Javakurses hinaus. Daher fangt sie nur an, wenn Ihr alles andere verstanden und keine weiteren Fragen mehr habt. Das meinen wir ernst.&lt;br /&gt;
&lt;br /&gt;
Schreibt mithilfe der Terminalklasse eine Klasse, die eine Oberfläche zur Verfügung stellt, die interaktiv das Hinzufügen und Löschen von Figuren ermöglicht und alle Daten ausgeben kann.&lt;br /&gt;
&lt;br /&gt;
* Tipp: Nutze folgendes Construct:&lt;br /&gt;
&lt;br /&gt;
 public class MyClass{...&lt;br /&gt;
    char decision;&lt;br /&gt;
    ...&lt;br /&gt;
    //decision gets some value&lt;br /&gt;
    ...&lt;br /&gt;
    switch(decision){&lt;br /&gt;
      case &#039;a&#039;: doSth();break;&lt;br /&gt;
      case &#039;b&#039;: doSthDiff();break;&lt;br /&gt;
      default doAnotherThing();break;&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Das funktioniert natürlich auch mit mehr Fällen und ints.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9652</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9652"/>
		<updated>2007-04-06T22:12:49Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: /* Zusatz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.&lt;br /&gt;
&lt;br /&gt;
Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Testet jede Eurer geschriebenen Methoden am besten sobald Ihr sie geschrieben habt, um mögliche Fehler frühzeitig zu finden.&lt;br /&gt;
&lt;br /&gt;
== 3D-Punkt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Point3D, die die Representation eines Punktes im dreidimensionalen Punktes darstellt.&lt;br /&gt;
&lt;br /&gt;
Die Klasse soll folgende Daten, Methoden und Funktionen haben:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für x-, y- und z-Koordinaten&lt;br /&gt;
# einen Constructor, der Initialisierungswerte für x,y und z bekommt&lt;br /&gt;
# eine toString(), die den Punkt so darstellt: &amp;quot;(3, 2, 1)&amp;quot;&lt;br /&gt;
#* Tipp: Spätestens jetzt sollte ein erster Test des bisher Geschriebenen erfolgen.&lt;br /&gt;
# eine Methode changeCoordinates, die eine nachträgliche Anpassung der Koordinaten ermöglicht.&lt;br /&gt;
# eine Funktion calcDistance, die den Abstand des Punktes zu einem zweiten berechnet&lt;br /&gt;
#* Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnen wollte. In beiden Fällen könnt Ihr unter [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html java.lang.Math] Nützliches finden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kugel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Sphere, die eine Kugel darstellen soll.&lt;br /&gt;
&lt;br /&gt;
Sphere soll folgende Daten und Methoden kapseln:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für Ursprung (Point3D) und Radius&lt;br /&gt;
# Methoden zum Ändern und Initialisieren dieser Werte&lt;br /&gt;
# eine toString mit passender Visualisierung&lt;br /&gt;
#* Tipp: Heute schon getestet? ;-)&lt;br /&gt;
# zwei Funktionen, die Volumen und Oberfläche der Kugel berechnen&lt;br /&gt;
# eine Funktion, die diese Kugel und eine andere hinsichtlich ihrer Größe vergleicht (compareSpheres)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitere Figuren ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Orientiert Euch an Sphere und Point 3D und schreibt Klassen für weitere Figuren, wie z.B. Würfel, Zylinder oder Kegel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Canvas ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Klasse Canvas, die &lt;br /&gt;
&lt;br /&gt;
# durch ein parameterlosen Constructor erzeugt wird.&lt;br /&gt;
# ein Array für jede Sorte von geometrischer Figur besitzt&lt;br /&gt;
#* Tipp: Macht Euch Gedanken wie Ihr ein über- oder unterlaufen des Arrays verhindern und abfangen könnt.&lt;br /&gt;
# durch entsprechende Methoden Figuren jeder Sorte einzeln hinzufügen und löschen kann&lt;br /&gt;
# eine Methode zu Berechnung des Gesamtvolumens und der Gesamtoberfläche hat&lt;br /&gt;
# als toString eine Liste aller Figuren und andere relevante Infos ausgibt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zusatz ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung nur für Cracks&#039;&#039;&#039;: Diese Zusatzaufgabe geht über den Inhalt und Sinn des Javakurses hinaus. Daher fange sie nur an, wenn du alles andere verstanden und keine weiteren Fragen mehr hast. Das meinen wir ernst.&lt;br /&gt;
&lt;br /&gt;
Schreibe mithilfe der Terminalklasse eine Klasse, die eine Oberfläche zur Verfügung stellt, die interaktiv das Hinzufügen und Löschen von Figuren ermöglicht und alle Daten ausgeben kann.&lt;br /&gt;
&lt;br /&gt;
* Tipp: Nutze folgendes Construct:&lt;br /&gt;
&lt;br /&gt;
 public class MyClass{...&lt;br /&gt;
    char decision;&lt;br /&gt;
    ...&lt;br /&gt;
    //decision gets some value&lt;br /&gt;
    ...&lt;br /&gt;
    switch(decision){&lt;br /&gt;
      case &#039;a&#039;: doSth();break;&lt;br /&gt;
      case &#039;b&#039;: doSthDiff();break;&lt;br /&gt;
      default doAnotherThing();break;&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Das funktioniert natürlich auch mit mehr Fällen und ints.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9651</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9651"/>
		<updated>2007-04-06T22:12:30Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.&lt;br /&gt;
&lt;br /&gt;
Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Testet jede Eurer geschriebenen Methoden am besten sobald Ihr sie geschrieben habt, um mögliche Fehler frühzeitig zu finden.&lt;br /&gt;
&lt;br /&gt;
== 3D-Punkt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Point3D, die die Representation eines Punktes im dreidimensionalen Punktes darstellt.&lt;br /&gt;
&lt;br /&gt;
Die Klasse soll folgende Daten, Methoden und Funktionen haben:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für x-, y- und z-Koordinaten&lt;br /&gt;
# einen Constructor, der Initialisierungswerte für x,y und z bekommt&lt;br /&gt;
# eine toString(), die den Punkt so darstellt: &amp;quot;(3, 2, 1)&amp;quot;&lt;br /&gt;
#* Tipp: Spätestens jetzt sollte ein erster Test des bisher Geschriebenen erfolgen.&lt;br /&gt;
# eine Methode changeCoordinates, die eine nachträgliche Anpassung der Koordinaten ermöglicht.&lt;br /&gt;
# eine Funktion calcDistance, die den Abstand des Punktes zu einem zweiten berechnet&lt;br /&gt;
#* Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnen wollte. In beiden Fällen könnt Ihr unter [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html java.lang.Math] Nützliches finden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kugel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Sphere, die eine Kugel darstellen soll.&lt;br /&gt;
&lt;br /&gt;
Sphere soll folgende Daten und Methoden kapseln:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für Ursprung (Point3D) und Radius&lt;br /&gt;
# Methoden zum Ändern und Initialisieren dieser Werte&lt;br /&gt;
# eine toString mit passender Visualisierung&lt;br /&gt;
#* Tipp: Heute schon getestet? ;-)&lt;br /&gt;
# zwei Funktionen, die Volumen und Oberfläche der Kugel berechnen&lt;br /&gt;
# eine Funktion, die diese Kugel und eine andere hinsichtlich ihrer Größe vergleicht (compareSpheres)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitere Figuren ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Orientiert Euch an Sphere und Point 3D und schreibt Klassen für weitere Figuren, wie z.B. Würfel, Zylinder oder Kegel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Canvas ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Klasse Canvas, die &lt;br /&gt;
&lt;br /&gt;
# durch ein parameterlosen Constructor erzeugt wird.&lt;br /&gt;
# ein Array für jede Sorte von geometrischer Figur besitzt&lt;br /&gt;
#* Tipp: Macht Euch Gedanken wie Ihr ein über- oder unterlaufen des Arrays verhindern und abfangen könnt.&lt;br /&gt;
# durch entsprechende Methoden Figuren jeder Sorte einzeln hinzufügen und löschen kann&lt;br /&gt;
# eine Methode zu Berechnung des Gesamtvolumens und der Gesamtoberfläche hat&lt;br /&gt;
# als toString eine Liste aller Figuren und andere relevante Infos ausgibt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zusatz ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Achtung nur für Cracks: Diese Zusatzaufgabe geht über den Inhalt und Sinn des Javakurses hinaus. Daher fange sie nur an, wenn du alles andere verstanden und keine weiteren Fragen mehr hast. Das meinen wir ernst.&lt;br /&gt;
&lt;br /&gt;
Schreibe mithilfe der Terminalklasse eine Klasse, die eine Oberfläche zur Verfügung stellt, die interaktiv das Hinzufügen und Löschen von Figuren ermöglicht und alle Daten ausgeben kann.&lt;br /&gt;
&lt;br /&gt;
* Tipp: Nutze folgendes Construct:&lt;br /&gt;
&lt;br /&gt;
 public class MyClass{...&lt;br /&gt;
    char decision;&lt;br /&gt;
    ...&lt;br /&gt;
    //decision gets some value&lt;br /&gt;
    ...&lt;br /&gt;
    switch(decision){&lt;br /&gt;
      case &#039;a&#039;: doSth();break;&lt;br /&gt;
      case &#039;b&#039;: doSthDiff();break;&lt;br /&gt;
      default doAnotherThing();break;&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Das funktioniert natürlich auch mit mehr Fällen und ints.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9650</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9650"/>
		<updated>2007-04-06T22:07:31Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.&lt;br /&gt;
&lt;br /&gt;
Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Testet jeder Eurer geschriebenen Methoden am besten sobald Ihr sie geschrieben habt, um mögliche Fehler frühzeitig zu finden.&lt;br /&gt;
&lt;br /&gt;
== 3D-Punkt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Point3D, die die Representation eines Punktes im dreidimensionalen Punktes darstellt.&lt;br /&gt;
&lt;br /&gt;
Die Klasse soll folgende Daten, Methoden und Funktionen haben:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für x-, y- und z-Koordinaten&lt;br /&gt;
# einen Constructor, der Initialisierungswerte für x,y und z bekommt&lt;br /&gt;
# eine toString(), die den Punkt so darstellt: &amp;quot;(3, 2, 1)&amp;quot;&lt;br /&gt;
#* Tipp: Spätestens jetzt sollte ein erster Test des bisher Geschriebenen erfolgen.&lt;br /&gt;
# eine Methode changeCoordinates, die eine nachträgliche Anpassung der Koordinaten ermöglicht.&lt;br /&gt;
# eine Funktion calcDistance, die den Abstand des Punktes zu einem zweiten berechnet&lt;br /&gt;
#* Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnen wollte. In beiden Fällen könnt Ihr unter [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html java.lang.Math] Nützliches finden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kugel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Sphere, die eine Kugel darstellen soll.&lt;br /&gt;
&lt;br /&gt;
Sphere soll folgende Daten und Methoden kapseln:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für Ursprung (Point3D) und Radius&lt;br /&gt;
# Methoden zum Ändern und Initialisieren dieser Werte&lt;br /&gt;
# eine toString mit passender Visualisierung&lt;br /&gt;
#* Tipp: Heute schon getestet? ;-)&lt;br /&gt;
# zwei Funktionen, die Volumen und Oberfläche der Kugel berechnen&lt;br /&gt;
# eine Funktion, die diese Kugel und eine andere hinsichtlich ihrer Größe vergleicht (compareSpheres)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitere Figuren ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Orientiert Euch an Sphere und Point 3D und schreibt Klassen für weitere Figuren, wie z.B. Würfel, Zylinder oder Kegel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Canvas ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Klasse Canvas, die &lt;br /&gt;
&lt;br /&gt;
# durch ein parameterlosen Constructor erzeugt wird.&lt;br /&gt;
# ein Array für jede Sorte von geometrischer Figur besitzt&lt;br /&gt;
#* Tipp: Macht Euch Gedanken wie Ihr ein über- oder unterlaufen des Arrays verhindern und abfangen könnt.&lt;br /&gt;
# durch entsprechende Methoden Figuren jeder Sorte einzeln hinzufügen und löschen kann&lt;br /&gt;
# eine Methode zu Berechnung des Gesamtvolumens und der Gesamtoberfläche hat&lt;br /&gt;
# als toString eine Liste aller Figuren und andere relevante Infos ausgibt&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9649</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9649"/>
		<updated>2007-04-06T22:05:59Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.&lt;br /&gt;
&lt;br /&gt;
Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3D-Punkt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Point3D, die die Representation eines Punktes im dreidimensionalen Punktes darstellt.&lt;br /&gt;
&lt;br /&gt;
Die Klasse soll folgende Daten, Methoden und Funktionen haben:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für x-, y- und z-Koordinaten&lt;br /&gt;
# einen Constructor, der Initialisierungswerte für x,y und z bekommt&lt;br /&gt;
# eine toString(), die den Punkt so darstellt: &amp;quot;(3, 2, 1)&amp;quot;&lt;br /&gt;
#* Tipp: Spätestens jetzt sollte ein erster Test des bisher Geschriebenen erfolgen.&lt;br /&gt;
# eine Methode changeCoordinates, die eine nachträgliche Anpassung der Koordinaten ermöglicht.&lt;br /&gt;
# eine Funktion calcDistance, die den Abstand des Punktes zu einem zweiten berechnet&lt;br /&gt;
#* Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnen wollte. In beiden Fällen könnt Ihr unter [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html java.lang.Math] Nützliches finden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kugel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Sphere, die eine Kugel darstellen soll.&lt;br /&gt;
&lt;br /&gt;
Sphere soll folgende Daten und Methoden kapseln:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für Ursprung (Point3D) und Radius&lt;br /&gt;
# Methoden zum Ändern und Initialisieren dieser Werte&lt;br /&gt;
# eine toString mit passender Visualisierung&lt;br /&gt;
# zwei Funktionen, die Volumen und Oberfläche der Kugel berechnen&lt;br /&gt;
# eine Funktion, die diese Kugel und eine andere hinsichtlich ihrer Größe vergleicht (compareSpheres)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitere Figuren ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Orientiert Euch an Sphere und Point 3D und schreibt Klassen für weitere Figuren, wie z.B. Würfel, Zylinder oder Kegel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Canvas ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schreibe eine Klasse Canvas, die &lt;br /&gt;
&lt;br /&gt;
# durch ein parameterlosen Constructor erzeugt wird.&lt;br /&gt;
# ein Array für jede Sorte von geometrischer Figur besitzt&lt;br /&gt;
#* Tipp: Macht Euch Gedanken wie Ihr ein über- oder unterlaufen des Arrays verhindern und abfangen könnt.&lt;br /&gt;
# durch entsprechende Methoden Figuren jeder Sorte einzeln hinzufügen und löschen kann&lt;br /&gt;
# eine Methode zu Berechnung des Gesamtvolumens und der Gesamtoberfläche hat&lt;br /&gt;
# als toString eine Liste aller Figuren und andere relevante Infos ausgibt&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9648</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9648"/>
		<updated>2007-04-06T22:02:57Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.&lt;br /&gt;
&lt;br /&gt;
Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3D-Punkt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Point3D, die die Representation eines Punktes im dreidimensionalen Punktes darstellt.&lt;br /&gt;
&lt;br /&gt;
Die Klasse soll folgende Daten, Methoden und Funktionen haben:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für x-, y- und z-Koordinaten&lt;br /&gt;
# einen Constructor, der Initialisierungswerte für x,y und z bekommt&lt;br /&gt;
# eine toString(), die den Punkt so darstellt: &amp;quot;(3, 2, 1)&amp;quot;&lt;br /&gt;
#* Tipp: Spätestens jetzt sollte ein erster Test des bisher Geschriebenen erfolgen.&lt;br /&gt;
# eine Methode changeCoordinates, die eine nachträgliche Anpassung der Koordinaten ermöglicht.&lt;br /&gt;
# eine Funktion calcDistance, die den Abstand des Punktes zu einem zweiten berechnet&lt;br /&gt;
#* Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnen wollte. In beiden Fällen könnt Ihr unter [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html java.lang.Math] Nützliches finden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kugel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Sphere, die eine Kugel darstellen soll.&lt;br /&gt;
&lt;br /&gt;
Sphere soll folgende Daten und Methoden kapseln:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für Ursprung (Point3D) und Radius&lt;br /&gt;
# Methoden zum Ändern und Initialisieren dieser Werte&lt;br /&gt;
# eine toString mit passender Visualisierung&lt;br /&gt;
# zwei Funktionen, die Volumen und Oberfläche der Kugel berechnen&lt;br /&gt;
# eine Funktion, die diese Kugel und eine andere hinsichtlich ihrer Größe vergleicht (compareSpheres)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weitere Figuren ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Orientiert Euch an Sphere und Point 3D und schreibt Klassen für weitere Figuren, wie z.B. Würfel, Zylinder oder Kegel.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9647</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9647"/>
		<updated>2007-04-06T22:01:15Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.&lt;br /&gt;
&lt;br /&gt;
Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3D-Punkt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Point3D, die die Representation eines Punktes im dreidimensionalen Punktes darstellt.&lt;br /&gt;
&lt;br /&gt;
Die Klasse soll folgende Daten, Methoden und Funktionen haben:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für x-, y- und z-Koordinaten&lt;br /&gt;
# einen Constructor, der Initialisierungswerte für x,y und z bekommt&lt;br /&gt;
# eine toString(), die den Punkt so darstellt: &amp;quot;(3, 2, 1)&amp;quot;&lt;br /&gt;
#* Tipp: Spätestens jetzt sollte ein erster Test des bisher Geschriebenen erfolgen.&lt;br /&gt;
# eine Methode changeCoordinates, die eine nachträgliche Anpassung der Koordinaten ermöglicht.&lt;br /&gt;
# eine Funktion calcDistance, die den Abstand des Punktes zu einem zweiten berechnet&lt;br /&gt;
#* Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnen wollte. In beiden Fällen könnt Ihr unter [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html java.lang.Math] Nützliches finden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kugel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle die Klasse Sphere, die eine Kugel darstellen soll.&lt;br /&gt;
&lt;br /&gt;
Sphere soll folgende Daten und Methoden kapseln:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für Ursprung (Point3D) und Radius&lt;br /&gt;
# Methoden zum Ändern und Initialisieren dieser Werte&lt;br /&gt;
# eine toString mit passender Visualisierung&lt;br /&gt;
# zwei Funktionen, die Volumen und Oberfläche der Kugel berechnen&lt;br /&gt;
# eine Funktion, die diese Kugel und eine andere hinsichtlich ihrer Größe vergleicht (compareSpheres)&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9646</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9646"/>
		<updated>2007-04-06T21:57:52Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.&lt;br /&gt;
&lt;br /&gt;
Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.&lt;br /&gt;
&lt;br /&gt;
== 3D-Punkt ==&lt;br /&gt;
&lt;br /&gt;
Erstellt die Klasse Point3D, die die Representation eines Punktes im dreidimensionalen Punktes darstellt.&lt;br /&gt;
&lt;br /&gt;
Die Klasse soll folgende Daten, Methoden und Funktionen haben:&lt;br /&gt;
&lt;br /&gt;
# private Variablen für x-, y- und z-Koordinaten&lt;br /&gt;
# einen Constructor, der Initialisierungswerte für x,y und z bekommt&lt;br /&gt;
# eine toString(), die den Punkt so darstellt: &amp;quot;(3, 2, 1)&amp;quot;&lt;br /&gt;
#* Tipp: Spätestens jetzt sollte ein erster Test des bisher Geschriebenen erfolgen.&lt;br /&gt;
# eine Methode changeCoordinates, die eine nachträgliche Anpassung der Koordinaten ermöglicht.&lt;br /&gt;
# eine Funktion calcDistance, die den Abstand des Punktes zu einem zweiten berechnet&lt;br /&gt;
#* Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnen wollte. In beiden Fällen könnt Ihr unter [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html java.lang.Math] Nützliches finden.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9645</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9645"/>
		<updated>2007-04-06T21:53:03Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe sollt Ihr eine Representation einer dreidimensionalen Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann.&lt;br /&gt;
&lt;br /&gt;
Beachtet bitte, dass diese Aufgabe ziemlich umfangreich ist und daher viele mögliche Fehlerquellen enthält. Fragt daher bei jedem auftauchenden Problem einen Tutor um Hilfe, da sich mögliche Fehler sonst bis zum Schluss durchziehen könnten.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9644</id>
		<title>Javakurs/Übungsaufgaben/Canvas</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9644"/>
		<updated>2007-04-06T21:51:06Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Schwierigkeit&#039;&#039;&#039;: Schwer&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9630</id>
		<title>Javakurs/Übungsaufgaben/Rekursion vs. Iteration</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9630"/>
		<updated>2007-04-06T21:47:17Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Schwierigkeitsgrad: schwer&lt;br /&gt;
&lt;br /&gt;
Das Ziel dieser Aufgabe ist es, dass Ihr möglichst viele Eurer bisher erworbenen Java-Kenntnisse Schritt für Schritt anwendet. Abschließend sollt Ihr noch einen kleinen Benchmark einer rekrusiv und iterativ implementierten Funktion durchführen.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise Ermitteln &amp;amp; Verhübschen==&lt;br /&gt;
&lt;br /&gt;
Gegeben ist folgende kleine Funktion:&lt;br /&gt;
&lt;br /&gt;
 public static int doSomethingClever(int a){&lt;br /&gt;
    int b;&lt;br /&gt;
    if(a &amp;lt;= 1){&lt;br /&gt;
       if(a == 1){&lt;br /&gt;
          b = calcSomethingNice(a);&lt;br /&gt;
       }else{&lt;br /&gt;
          b = getSomeSmartInt(a - 1);&lt;br /&gt;
       }&lt;br /&gt;
    }else{&lt;br /&gt;
       return theSmartestMethodsAlwaysNeedRidiculouslyLongNames(a);&lt;br /&gt;
    }&lt;br /&gt;
    return b;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int getSomeSmartInt(int c){&lt;br /&gt;
    return ++c;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int calcSomethingNice(int d){&lt;br /&gt;
    int i = 1;&lt;br /&gt;
    for(i = d * 11; i &amp;gt; d; i--){&lt;br /&gt;
       i--;&lt;br /&gt;
    }&lt;br /&gt;
    return i;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 public static int theSmartestMethodsAlwaysNeedRidiculouslyLongNames(int e){&lt;br /&gt;
    int container = doSomethingClever(e - 1);&lt;br /&gt;
    return container + doSomethingClever(e - 2);&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
Offensichtlich ist hier programmiertechnisch Einiges schief gegangen. Denn obwohl der Code richtig funktioniert, ist er nur schwer leserlich. Folgende Fehler wurden gemacht:&lt;br /&gt;
&lt;br /&gt;
*nichtssagende Bennung der Variablen und Methoden &lt;br /&gt;
*keine Kommentare&lt;br /&gt;
*übertrieben Auslagerung in Extra-Methoden&lt;br /&gt;
&lt;br /&gt;
All das sollt Ihr jetzt schrittweise ändern:&lt;br /&gt;
&lt;br /&gt;
#Versucht, ohne den PC mit einigen Handsimulationen herauszufinden, was doSomethingClever eigentlich berechnet&lt;br /&gt;
#* Hinweis: Beginnt mit kleinen Zahlen wie 0,1,2 oder 3 und macht mehrere Durchgänge.&lt;br /&gt;
#* Tipp: Es wird stets das n-te Glied einer bekannten Zahlenfolge berechnet.&lt;br /&gt;
#Integriert zuerst die beiden Hilfsfunktionen getSomeSmartInt und calcSomethingNice in die Hauptfunktion, da beide ziemlich überflüssig sind.&lt;br /&gt;
#Löst die verschachtelte Rekursion von doSomethingClever und theSmartest... auf.&lt;br /&gt;
#Lasst Euch &amp;quot;sprechende&amp;quot; Namen sowohl für die Variablen, Methode(n) und als auch die Klasse einfallen.&lt;br /&gt;
#Fügt ausreichend viele und prägnante Kommentare hinzu, bis das Programm für Euch gut lesbar ist.&lt;br /&gt;
#&#039;&#039;&#039;WICHTIG:&#039;&#039;&#039; Holt Euch nun einen &#039;&#039;&#039;Tutor&#039;&#039;&#039; ran, zeigt ihm Euer Programm und diskutiert die Lesbarkeit des Codes. Er kann euch sicherlich nützliche Tipps geben, was Ihr in Zukunft beim Programmieren unbedingt beachten solltet.&lt;br /&gt;
&lt;br /&gt;
== Eine Iterative Alternative ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein Programm, dass die gleiche Zahlenreihe nicht-rekursiv berechnet. Verwendet dazu ein Array von Integern und folgende Idee: &lt;br /&gt;
* Initialisiert ein Array, das alle Folgenglieder (bei 0 anfangend) bis zum Gesuchten aufnehmen kann.&lt;br /&gt;
* Berechnet die Folgenglieder in einer Schleife Eurer Wahl aufsteigend bei 0 beginnend und speichert sie in dem Array wie folgt: Folgenglied 0 steht an Position 0 im Array, Folgenglied 1 steht an Position 1 im Array, usw.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Wenn Ihr mit der Programmidee oder der Implementation Probleme habt, zögert nicht, einen Tutor zu fragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Benchmark und Auswertung ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein letztes kurzes Programm, das zuerst die Folgenglieder 5, 10, 15, 20, 30 und 40 iterativ und dann noch einmal rekursiv berechnet und sofort auf der Console ausdruckt.&lt;br /&gt;
&lt;br /&gt;
Diskutiert die Geschwindigkeitsunterschiede und die möglichen Vorteile der iterativen Implementation mit einem Tutor.&lt;br /&gt;
&lt;br /&gt;
Tipp: Sollte Euer iteratives Programm nicht binnen weniger Sekunden sämtliche Zahlen berechnet haben, lasst unbedingt einen Tutor kurz drüberschauen.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9629</id>
		<title>Javakurs/Übungsaufgaben/Rekursion vs. Iteration</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9629"/>
		<updated>2007-04-06T20:35:44Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Schwierigkeitsgrad: schwer&lt;br /&gt;
&lt;br /&gt;
Das Ziel dieser Aufgabe ist es, dass Ihr möglichst viele Eurer bisher erworbenen Java-Kenntnisse Schritt für Schritt anwendet. Abschließend sollt Ihr noch einen kleinen Benchmark einer rekrusiv und iterativ implementierten Funktion durchführen.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise Ermitteln &amp;amp; Verhübschen==&lt;br /&gt;
&lt;br /&gt;
Gegeben ist folgendes kleines Programm:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
public class MyProgramm{&lt;br /&gt;
&lt;br /&gt;
  public static int doSomethingClever(int a){&lt;br /&gt;
    int b;&lt;br /&gt;
    if(a &amp;lt;= 1){&lt;br /&gt;
       if(a == 1){&lt;br /&gt;
          b = calcSomethingNice(a);&lt;br /&gt;
       }else{&lt;br /&gt;
          b = getSomeSmartInt(a - 1);&lt;br /&gt;
       }&lt;br /&gt;
    }else{&lt;br /&gt;
       return theSmartestMethodsAlwaysNeedRidiculouslyLongNames(a);&lt;br /&gt;
    }&lt;br /&gt;
    return b;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public static int getSomeSmartInt(int c){&lt;br /&gt;
    return ++c;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public static int calcSomethingNice(int d){&lt;br /&gt;
    int i = 1;&lt;br /&gt;
    for(i = d * 11; i &amp;gt; d; i--){&lt;br /&gt;
       i--;&lt;br /&gt;
    }&lt;br /&gt;
    return i;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public static int theSmartestMethodsAlwaysNeedRidiculouslyLongNames(int e){&lt;br /&gt;
    int container = doSomethingClever(e - 1);&lt;br /&gt;
    return container + doSomethingClever(e - 2);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Offensichtlich ist hier programmiertechnisch Einiges schief gegangen. Denn obwohl der Code richtig funktioniert, ist er nur schwer leserlich. Folgende Fehler wurden gemacht:&lt;br /&gt;
&lt;br /&gt;
*nichtssagende Bennung der Variablen und Methoden &lt;br /&gt;
*keine Kommentare&lt;br /&gt;
*übertrieben Auslagerung in Extra-Methoden&lt;br /&gt;
&lt;br /&gt;
All das sollt Ihr jetzt schrittweise ändern:&lt;br /&gt;
&lt;br /&gt;
#Versucht, ohne den PC mit einigen Handsimulationen herauszufinden, was das Programm eigentlich berechnet&lt;br /&gt;
#* Hinweis: Beginnt mit kleinen Zahlen wie 0,1,2 oder 3 und macht mehrere Durchgänge.&lt;br /&gt;
#* Tipp: Es wird stets das n-te Glied einer bekannten Zahlenfolge berechnet.&lt;br /&gt;
#Integriert zuerst die beiden Hilfsfunktionen getSomeSmartInt und calcSomethingNice in die Hauptfunktion, da beide ziemlich überflüssig sind.&lt;br /&gt;
#Löst die verschachtelte Rekursion von doSomethingClever und theSmartest... auf.&lt;br /&gt;
#Lasst Euch &amp;quot;sprechende&amp;quot; Namen sowohl für die Variablen, Methode(n) und als auch die Klasse einfallen.&lt;br /&gt;
#Fügt ausreichend viele und prägnante Kommentare hinzu, bis das Programm für Euch gut lesbar ist.&lt;br /&gt;
#&#039;&#039;&#039;WICHTIG:&#039;&#039;&#039; Holt Euch nun einen &#039;&#039;&#039;Tutor&#039;&#039;&#039; ran, zeigt ihm Euer Programm und diskutiert die Lesbarkeit des Codes. Er kann euch sicherlich nützliche Tipps geben, was Ihr in Zukunft beim Programmieren unbedingt beachten solltet.&lt;br /&gt;
&lt;br /&gt;
== Eine Iterative Alternative ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein Programm, dass die gleiche Zahlenreihe nicht-rekursiv berechnet. Verwendet dazu ein Array von Integern und folgende Idee: &lt;br /&gt;
* Initialisiert ein Array, das alle Folgenglieder (bei 0 anfangend) bis zum Gesuchten aufnehmen kann.&lt;br /&gt;
* Berechnet die Folgenglieder in einer Schleife Eurer Wahl aufsteigend bei 0 beginnend und speichert sie in dem Array wie folgt: Folgenglied 0 steht an Position 0 im Array, Folgenglied 1 steht an Position 1 im Array, usw.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Wenn Ihr mit der Programmidee oder der Implementation Probleme habt, zögert nicht, einen Tutor zu fragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Benchmark und Auswertung ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein letztes kurzes Programm, das zuerst die Folgenglieder 5, 10, 15, 20, 30 und 40 iterativ und dann noch einmal rekursiv berechnet und sofort auf der Console ausdruckt.&lt;br /&gt;
&lt;br /&gt;
Diskutiert die Geschwindigkeitsunterschiede und die möglichen Vorteile der iterativen Implementation mit einem Tutor.&lt;br /&gt;
&lt;br /&gt;
Tipp: Sollte Euer iteratives Programm nicht binnen weniger Sekunden sämtliche Zahlen berechnet haben, lasst unbedingt einen Tutor kurz drüberschauen.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9628</id>
		<title>Javakurs/Übungsaufgaben/Rekursion vs. Iteration</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rekursion_vs._Iteration&amp;diff=9628"/>
		<updated>2007-04-06T20:34:42Z</updated>

		<summary type="html">&lt;p&gt;85.178.178.63: /* Funktionsweise Ermitteln &amp;amp; Verhübschen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Schwierigkeitsgrad: mittel bis schwer.&lt;br /&gt;
&lt;br /&gt;
Das Ziel dieser Aufgabe ist es, dass Ihr möglichst viele Eurer bisher erworbenen Java-Kenntnisse Schritt für Schritt anwendet. Abschließend sollt Ihr noch einen kleinen Benchmark einer rekrusiv und iterativ implementierten Funktion durchführen.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise Ermitteln &amp;amp; Verhübschen==&lt;br /&gt;
&lt;br /&gt;
Gegeben ist folgendes kleines Programm:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
public class MyProgramm{&lt;br /&gt;
&lt;br /&gt;
  public static int doSomethingClever(int a){&lt;br /&gt;
    int b;&lt;br /&gt;
    if(a &amp;lt;= 1){&lt;br /&gt;
       if(a == 1){&lt;br /&gt;
          b = calcSomethingNice(a);&lt;br /&gt;
       }else{&lt;br /&gt;
          b = getSomeSmartInt(a - 1);&lt;br /&gt;
       }&lt;br /&gt;
    }else{&lt;br /&gt;
       return theSmartestMethodsAlwaysNeedRidiculouslyLongNames(a);&lt;br /&gt;
    }&lt;br /&gt;
    return b;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public static int getSomeSmartInt(int c){&lt;br /&gt;
    return ++c;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public static int calcSomethingNice(int d){&lt;br /&gt;
    int i = 1;&lt;br /&gt;
    for(i = d * 11; i &amp;gt; d; i--){&lt;br /&gt;
       i--;&lt;br /&gt;
    }&lt;br /&gt;
    return i;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public static int theSmartestMethodsAlwaysNeedRidiculouslyLongNames(int e){&lt;br /&gt;
    int container = doSomethingClever(e - 1);&lt;br /&gt;
    return container + doSomethingClever(e - 2);&lt;br /&gt;
  }&lt;br /&gt;
}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Offensichtlich ist hier programmiertechnisch Einiges schief gegangen. Denn obwohl der Code richtig funktioniert, ist er nur schwer leserlich. Folgende Fehler wurden gemacht:&lt;br /&gt;
&lt;br /&gt;
*nichtssagende Bennung der Variablen und Methoden &lt;br /&gt;
*keine Kommentare&lt;br /&gt;
*übertrieben Auslagerung in Extra-Methoden&lt;br /&gt;
&lt;br /&gt;
All das sollt Ihr jetzt schrittweise ändern:&lt;br /&gt;
&lt;br /&gt;
#Versucht, ohne den PC mit einigen Handsimulationen herauszufinden, was das Programm eigentlich berechnet&lt;br /&gt;
#* Hinweis: Beginnt mit kleinen Zahlen wie 0,1,2 oder 3 und macht mehrere Durchgänge.&lt;br /&gt;
#* Tipp: Es wird stets das n-te Glied einer bekannten Zahlenfolge berechnet.&lt;br /&gt;
#Integriert zuerst die beiden Hilfsfunktionen getSomeSmartInt und calcSomethingNice in die Hauptfunktion, da beide ziemlich überflüssig sind.&lt;br /&gt;
#Löst die verschachtelte Rekursion von doSomethingClever und theSmartest... auf.&lt;br /&gt;
#Lasst Euch &amp;quot;sprechende&amp;quot; Namen sowohl für die Variablen, Methode(n) und als auch die Klasse einfallen.&lt;br /&gt;
#Fügt ausreichend viele und prägnante Kommentare hinzu, bis das Programm für Euch gut lesbar ist.&lt;br /&gt;
#&#039;&#039;&#039;WICHTIG:&#039;&#039;&#039; Holt Euch nun einen &#039;&#039;&#039;Tutor&#039;&#039;&#039; ran, zeigt ihm Euer Programm und diskutiert die Lesbarkeit des Codes. Er kann euch sicherlich nützliche Tipps geben, was Ihr in Zukunft beim Programmieren unbedingt beachten solltet.&lt;br /&gt;
&lt;br /&gt;
== Eine Iterative Alternative ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein Programm, dass die gleiche Zahlenreihe nicht-rekursiv berechnet. Verwendet dazu ein Array von Integern und folgende Idee: &lt;br /&gt;
* Initialisiert ein Array, das alle Folgenglieder (bei 0 anfangend) bis zum Gesuchten aufnehmen kann.&lt;br /&gt;
* Berechnet die Folgenglieder in einer Schleife Eurer Wahl aufsteigend bei 0 beginnend und speichert sie in dem Array wie folgt: Folgenglied 0 steht an Position 0 im Array, Folgenglied 1 steht an Position 1 im Array, usw.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Wenn Ihr mit der Programmidee oder der Implementation Probleme habt, zögert nicht, einen Tutor zu fragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Benchmark und Auswertung ==&lt;br /&gt;
&lt;br /&gt;
Schreibt nun ein letztes kurzes Programm, das zuerst die Folgenglieder 5, 10, 15, 20, 30 und 40 iterativ und dann noch einmal rekursiv berechnet und sofort auf der Console ausdruckt.&lt;br /&gt;
&lt;br /&gt;
Diskutiert die Geschwindigkeitsunterschiede und die möglichen Vorteile der iterativen Implementation mit einem Tutor.&lt;br /&gt;
&lt;br /&gt;
Tipp: Sollte Euer iteratives Programm nicht binnen weniger Sekunden sämtliche Zahlen berechnet haben, lasst unbedingt einen Tutor kurz drüberschauen.&lt;/div&gt;</summary>
		<author><name>85.178.178.63</name></author>
	</entry>
</feed>