<?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=130.149.17.36</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=130.149.17.36"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/130.149.17.36"/>
	<updated>2026-11-01T12:58:52Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Methoden&amp;diff=9793</id>
		<title>Javakurs/Übungsaufgaben/Methoden</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Methoden&amp;diff=9793"/>
		<updated>2009-03-25T15:22:27Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: /* Argumente */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Alle in diese Übung verwendeten Klassen findest du auch als Vorgabedateien unter http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/Methoden.tar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Argumente ==&lt;br /&gt;
* Überlege dir, was der folgende Code macht. Was erwartest du als Ausgabe?&lt;br /&gt;
* Führe den Code aus und vergleiche das Ergebnis mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main ( String [] arguments ) {&lt;br /&gt;
		ausgabe( 1, &amp;quot;Martin&amp;quot; );&lt;br /&gt;
		ausgabe( 2, &amp;quot;Arthur&amp;quot; );&lt;br /&gt;
		ausgabe( 3, &amp;quot;Florian&amp;quot; );&lt;br /&gt;
		ausgabe( 4, &amp;quot;Robert&amp;quot; );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public static void ausgabe ( int zahl, String name ) {&lt;br /&gt;
		System.out.println( zahl + &amp;quot;: &amp;quot; + name );&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rückgabewert ==&lt;br /&gt;
* Überlege dir, was der folgende Code in den folgenden Beispielen macht. Was erwartest du als Ausgabe?&lt;br /&gt;
* Führe den Code jeweils aus und vergleiche das Ergebnis mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
//file: Methoden1.java&lt;br /&gt;
class Methoden1 {&lt;br /&gt;
    public static void main ( String[] arguments ) {&lt;br /&gt;
        System.out.println( gibMirNeZahl() );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static double gibMirNeZahl() {&lt;br /&gt;
        return 15.3;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
//file: Methoden2.java&lt;br /&gt;
class Methoden2 {&lt;br /&gt;
    public static void main ( String[] arguments ) {&lt;br /&gt;
        System.out.println( mathematik( 1, 2 ) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik ( int argument1, int argument2 ) {&lt;br /&gt;
        return ( argument1 + 5 ) &amp;lt; ( argument2 * 2 );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
//file: Methoden3.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main ( String[] arguments ) {&lt;br /&gt;
        System.out.println ( mathematik( 1, 2 ) );&lt;br /&gt;
        System.out.println ( mathematik( 1, 5 ) );&lt;br /&gt;
        System.out.println ( mathematik( 3, 4 ) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik ( int argument1, int argument2 ) {&lt;br /&gt;
        return ( argument1 + 5 ) &amp;lt; ( argument2 * 2 );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
//file: Methoden4.java&lt;br /&gt;
class Methoden4 {&lt;br /&gt;
    public static void main ( String[] arguments ) {&lt;br /&gt;
        int eineZahl = 2;&lt;br /&gt;
        System.out.println ( mathematik( 4, eineZahl ) );&lt;br /&gt;
        eineZahl = 5;&lt;br /&gt;
        System.out.println ( mathematik( 2, eineZahl ) );&lt;br /&gt;
        System.out.println ( mathematik( eineZahl, 4 ) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ran====&lt;br /&gt;
das:&lt;br /&gt;
 //file: Methoden2.java&lt;br /&gt;
 class Methoden3 &lt;br /&gt;
&lt;br /&gt;
soll so:&lt;br /&gt;
 //file: Methoden2.java&lt;br /&gt;
 class Methoden2 {&lt;br /&gt;
sein...&lt;br /&gt;
&lt;br /&gt;
====Robert====&lt;br /&gt;
Danke, ist geändert. -- [[Benutzer:Buchholz|Robert Buchholz]] 11:20, 11. Apr. 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Mario====&lt;br /&gt;
Jetzt auch den Fehler im Archiv verändert ... -- [[Benutzer:Mario|Mario Bodemann]] 11:26, 08. Apr. 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
====Fehler?====&lt;br /&gt;
&amp;lt;strike&amp;gt;Beispiel.java werden die Methoden  mit falscher Reihenfolge der Parameter aufgerufen:&lt;br /&gt;
&lt;br /&gt;
ausgabe(&amp;quot;Arthur&amp;quot;, 2); -&amp;gt; fehler&lt;br /&gt;
&lt;br /&gt;
ausgabe(&amp;quot;Robert&amp;quot;, 4); -&amp;gt; fehler&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fixed, siehe oben -- Mario&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9366</id>
		<title>Javakurs/Übungsaufgaben/Javamenue</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9366"/>
		<updated>2009-03-24T11:41:14Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Handwerkszeug ===&lt;br /&gt;
In vielen deiner Javaprogramme wirst du vom Benutzer eine Eingabe per Tastatur erfragen wollen.&lt;br /&gt;
Da sich in Java das Lesen von Tastatureingaben normalerweise etwas umständlich gestaltet, haben wir dir an dieser Stelle etwas zur Erleichterung vorbereitet.&lt;br /&gt;
&lt;br /&gt;
* kopiere die Datei [http://uebb.cs.tu-berlin.de/books/java/klassen/Terminal.java Terminal.java] in Dein Arbeitsverzeichnis.&lt;br /&gt;
&lt;br /&gt;
Solange diese Datei in demselben Verzeichnis liegt, wie die java-Datei, an der Du arbeitest, stehen Dir einige Befehle zur Verfügung, die das Lesen von Tastatureingaben stark erleichtern. Wenn dich interessiert, warum das so ist, so erfährst du es [[Javakurs2007/Terminal | hier]].&lt;br /&gt;
&lt;br /&gt;
Falls das nicht funktioniert, ist der sogenannte CLASSPATH falsch gesetzt.&lt;br /&gt;
Gibt dazu in dem Terminal(Eingabeaufforderung) direkt nach dem Öffnen vor dem Aufruf des Compilers in der shell folgendes Kommando ein: &lt;br /&gt;
  &lt;br /&gt;
 CLASSPATH=&amp;quot;.:$CLASSPATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zurück zum Thema: Einer dieser Befehle lautet &amp;quot;Terminal.readString()&amp;quot;. Er liest eine Tastatureingabe bis zum nächsten Zeilenumbruch von der Konsole und liefert ihn als String zurück.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 // Einlesen einer Tastatureingabe bis zum nächsten Zeilenumbruch in die Variable &amp;quot;eingegebeneTextzeile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 String eingegebeneTextzeile;&lt;br /&gt;
 eingegebeneTextzeile = Terminal.readString();&lt;br /&gt;
&lt;br /&gt;
=== Erste Konsolenabfrage ===&lt;br /&gt;
Probieren wir das ganze einmal aus.&lt;br /&gt;
&lt;br /&gt;
* Frage auf der Konsole nach dem Namen des Benutzers.&lt;br /&gt;
* speichere seine Eingabe mit Hilfe von &amp;quot;Terminal.readString()&amp;quot;.&lt;br /&gt;
* Begrüße den Benutzer mit seinem Namen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menü mit Zahlen ===&lt;br /&gt;
Schonmal nicht schlecht. Nun zum interessanten Teil.&lt;br /&gt;
Ein weiterer Befehl zur Vereinfachung der Konsolenbenutzung lautet Terminal.readInt(). Er liest eine Zahl von der Konsole und gibt sie als int zurück.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 // Einlesen einer Zahl per Tastatureingabe in die Variable &amp;quot;eingegebeneZahl&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 int eingegebeneZahl;&lt;br /&gt;
 eingegebeneZahl = Terminal.readInt();&lt;br /&gt;
&lt;br /&gt;
* Frage auf der Konsole, ob der Benutzer: &lt;br /&gt;
: 1) eine Frau ist.&lt;br /&gt;
: 2) ein Mann ist.&lt;br /&gt;
: 3) die Frage nicht beantworten möchte.&lt;br /&gt;
&lt;br /&gt;
* Begrüße den Benutzer abhängig von seiner Eingabe mit &amp;quot;Herr&amp;quot;, &amp;quot;Frau&amp;quot; oder geschlechtslos.&lt;br /&gt;
* Zeige eine Fehlermeldung an, wenn eine andere Zahl als 1,2 oder 3 eingegeben wird.&lt;br /&gt;
&lt;br /&gt;
=== Tipps ===&lt;br /&gt;
Einen Text auf der Konsole ausgeben:&lt;br /&gt;
 System.out.println(&amp;quot;text&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Den Programmfluss abhängig vom Wahrheitsgehalt einer Bedingung lenken:&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung) {&lt;br /&gt;
  fall1&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;else&#039;&#039;&#039; {&lt;br /&gt;
  fall2&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Zwei Bedingungen logisch miteinander verknüpfen:&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung1 &amp;amp;&amp;amp; bedingung2) {...} // Logisches Und&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung1 || bedingung2) {...} // logisches Oder&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Julia&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ich finde es ziemlich nervig, dass es keinen zurück-Button gibt oder einen Link &amp;quot;Zurück zu den Übungsaufgaben&amp;quot;, um wieder zur Übersicht der Aufgaben zu kommen. Vielleicht könnt ihr das mal einrichten...&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Cowsay&amp;diff=9892</id>
		<title>Javakurs/Übungsaufgaben/Cowsay</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Cowsay&amp;diff=9892"/>
		<updated>2009-03-24T11:16:57Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: funktionierendes cowsay&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Aufgabenstellung ===&lt;br /&gt;
Diese Aufgabe stellt eine etwas erweitere Version von HelloWorld dar. Als Vorbild dient das Unix-Programm Cowsay. Diesem Programm übergibt man einen Text und als Ergebnis erhält man eine kleines Bild (als ASCII) auf der Konsole, welches den übergeben Text enthält. Dies könnte so aussehen wie unter [[Javakurs2007/Cowsay#Beispiel | Beispiel]] zu sehen.&lt;br /&gt;
Cowsay könnt ihr hier ausprobieren: http://user.cs.tu-berlin.de/~mutax/cgi-bin/cowsay.cgi&lt;br /&gt;
&lt;br /&gt;
1) Als ersten Schritt könnt ihr mit &#039;&#039;&#039;System.out.println(&amp;quot;...&amp;quot;);&#039;&#039;&#039; erstmal ein wenig herumprobieren und versuchen eine ASCII Graphik, die ihr euch ausgedacht habt, auszugeben. Natürlich könnt ihr auch die aus dem Beispiel nehmen.&lt;br /&gt;
&lt;br /&gt;
2) Als zweiten Schritt könnt ihr probieren, auch etwas Text mit in die Graphik einzubinden, wie in dem ersten Beispiel zu sehen.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
&lt;br /&gt;
  _____________&lt;br /&gt;
 &amp;lt; Java rocks! &amp;gt;&lt;br /&gt;
  -------------&lt;br /&gt;
        \   ^__^&lt;br /&gt;
         \  (oo)\_______&lt;br /&gt;
            (__)\       )\/\&lt;br /&gt;
                ||----w |&lt;br /&gt;
                ||     ||&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
Wenn ihr auf der Konsole ein Backslash &amp;quot;\&amp;quot; ausgeben wollt, dann müsst ihr dieses Zeichen, da es selbst ein sogenanntes Escapezeichen ist, mit einem Backslash &amp;quot;escapen&amp;quot;.&lt;br /&gt;
Der Code um ein Backslash auszugeben, sieht also so aus.&lt;br /&gt;
 System.out.println(&amp;quot;\\&amp;quot;);&lt;br /&gt;
siehe auch: [http://de.wikipedia.org/wiki/Escape-Sequenz|weitere Escape Sequenzen auf de.wikipedia.org]&lt;br /&gt;
&lt;br /&gt;
=== Tipps ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lesen von der Konsole&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn ihr beim Ausführen eures Programms in der Konsole ein Parameter (also ein Wort) mit übergebt, so findet ihr ihn an Position [0] im String-Array eurer main-Methode wieder.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 java cowsay rocks&lt;br /&gt;
-&amp;gt; arguments[0] enthält rocks.&lt;br /&gt;
&lt;br /&gt;
Bei einem Satz muesst ihr diesen in Hochkomma angeben.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 java cowsay &amp;quot;Java Rocks&amp;quot;&lt;br /&gt;
-&amp;gt; arguments[0] enthaelt nun &amp;lt;i&amp;gt; Java Rocks &amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
wie kann man die 2 &amp;quot;&amp;quot; zeichen einbauen?&lt;br /&gt;
: Einfach escapen, also &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt; schreiben. --[[Benutzer:Buchholz|Robert Buchholz]] 22:50, 30. Mai. 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
Dankeschön ;)&lt;br /&gt;
Cowsay macht Spaaaaß :-D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben&amp;diff=11808</id>
		<title>Javakurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben&amp;diff=11808"/>
		<updated>2009-03-24T10:24:09Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. Einen kleinen Überblick zu den Schwierigkeitsgraden findet ihr ganz unten auf dieser Seite.&lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Die Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Von der Console zum HelloWorld | Vom Arbeiten mit der Konsole bis &amp;quot;Hallo Welt&amp;quot;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Einfaches Arbeiten mit der Kommandozeile &amp;lt;br&amp;gt; Kompilieren und Ausführen von Javacode&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Variablen_und_Zuweisungen | Variablen und Zuweisungen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Deklarieren und definieren von Variablen&amp;lt;br&amp;gt;grundlegende Regeln der Codeformatierung&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Cowsay | Cowsay oder &amp;quot;Wie macht die Kuh?&amp;quot;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | etwas mehr Bildschirmausgabe&amp;lt;br&amp;gt;schöne Graphiken&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Kassenbon | Erstellen eines Kassenbons]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Arbeiten mit Variablen&amp;lt;br&amp;gt;Fallunterscheidungen&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Javamenue | Ein eigenes Menü]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Lesen von Benutzereingaben über die Konsole&amp;lt;br&amp;gt;Fallunterscheidungen&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Glücksspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen &lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Arrays | Quickies Arrays]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Verwenden von Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Verschachtelte_Schleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Primzahlenaufgabe | Primzahlen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Geschicktes Einsetzen von Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Wetterstation | Wetterstation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Geometrie | Geometrie]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Methoden schreiben&amp;lt;br&amp;gt;schreiben mathematischer Funktionen&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Zweierpotenzen | Zweierpotenzen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Schleifen_und_Modulo | Schleifen und Modulo]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Verwendung von Schleifen&amp;lt;br&amp;gt;Benutzung des Modulo-Operators&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Methoden | Quickies zu Methoden]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Verwenden von Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/MathematischeMethoden | Eigene Methoden]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schreiben eigener Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Schaltjahr | Schaltjahr]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schreiben von Methoden&amp;lt;br&amp;gt;Fallunterscheidungen&amp;lt;br&amp;gt;Benutzerinteraktion&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Crack_the_Password | Crack the Password]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2/3. VL&lt;br /&gt;
 | Passwörter knacken ;-)&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Rekursion_vs._Iteration | Rekursion vs. Iteration]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Fehler finden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Lineare_Funktionen | Lineare Funktionen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Verwendung von Methoden&amp;lt;br&amp;gt;Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Fibonacci | Fibonaccizahlen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Brainfuck | Brainfuck vs Turingmaschine]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Arbeiten mit Arrays&amp;lt;br&amp;gt;Allgemeinwissen :-)&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Gau%C3%9F-Algorithmus | Gauß-Algorithmus]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Arrays und Matrizen&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Zahlenumrechner | Zahlenumrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Arbeiten mit Methoden&amp;lt;br&amp;gt;mathematisches Denken&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs 2007/Democracy | Der Fehler im System]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Fehler finden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Quersumme | Spaß mit Quersummen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5 - 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Benutzung des Modulo-Operators&amp;lt;br&amp;gt;Auslagern von Funktionalität in Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Appleman | Appleman und Fraktale]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schleifen, Umgang mit Fließkommazahlen&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/DiffusionLimitedAggregation | Diffusion Limited Aggregation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | 2-dimensionale Arrays, Methoden, Schleifen&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Entwurf von Programmen&amp;lt;br&amp;gt;Parameterübergabe beim Programmaufruf&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Hangman | Hangman]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Entwurf von Programmen&amp;lt;br&amp;gt;Arbeiten mit Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/SelectionSort | Selection Sort]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Verstehen von komplexeren Algorithmen&amp;lt;br&amp;gt;Schleifen und Arrays&amp;lt;br&amp;gt;(Hilfs-)Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Cäsar-Chiffre | Chiffrierung/Dechiffrierung (Cäsar)]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |9&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | eigenständiges Problemlösen. &amp;lt;br&amp;gt; Alle Konzepte des Kurses&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Abzaehlspiel | Abzählspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Analyse von Aufgabenstellungen&amp;lt;br&amp;gt;Entwurf eines komplexen Programms von Grund auf&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2006/Rennschnecke | Schneckenrennen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Objektorientierte Programmierung&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Studentendatenbank_LE5 | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Vertiefung in objektorientiertes Programmieren&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Multiarray| Mehrdimensionale Arrays]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |10&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Methoden, Schleifen, Arrays&amp;lt;br&amp;gt;Objektorientierung&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Canvas | Virtuelles Canvas mit 3D-Objekten]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6. VL&lt;br /&gt;
 | Arbeiten mit Methoden&amp;lt;br&amp;gt;mathematisches Denken&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Doom | ASCII DOOM ]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6. VL&lt;br /&gt;
 | Vertiefung in objektorientierte Programmierung&amp;lt;br&amp;gt;Benutzung der Java-API&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Textwordcount | Texte lesen und analysieren]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6. VL&lt;br /&gt;
 | eigenständiges Problemlösen&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Aufgaben als PDF ==&lt;br /&gt;
Alle Aufgaben als PDFs in einem Paket mit den Vorgaben gibt es hier:&lt;br /&gt;
&lt;br /&gt;
[http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2009/aufgaben2009.tar.gz http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2009/aufgaben2009.tar.gz] (Stand: 24.03.2009 8:45)&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer weden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
- Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben&amp;diff=11807</id>
		<title>Javakurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben&amp;diff=11807"/>
		<updated>2009-03-24T10:22:42Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: bash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. Einen kleinen Überblick zu den Schwierigkeitsgraden findet ihr ganz unten auf dieser Seite.&lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Von der Console zum HelloWorld | Vom Arbeiten mit der Konsole bis &amp;quot;Hallo Welt&amp;quot;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Einfaches Arbeiten mit der Kommandozeile &amp;lt;br&amp;gt; Kompilieren und Ausführen von Javacode&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Variablen_und_Zuweisungen | Variablen und Zuweisungen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Deklarieren und definieren von Variablen&amp;lt;br&amp;gt;grundlegende Regeln der Codeformatierung&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Cowsay | Cowsay oder &amp;quot;Wie macht die Kuh?&amp;quot;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | etwas mehr Bildschirmausgabe&amp;lt;br&amp;gt;schöne Graphiken&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Kassenbon | Erstellen eines Kassenbons]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Arbeiten mit Variablen&amp;lt;br&amp;gt;Fallunterscheidungen&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Javamenue | Ein eigenes Menü]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Lesen von Benutzereingaben über die Konsole&amp;lt;br&amp;gt;Fallunterscheidungen&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Glücksspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen &lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Arrays | Quickies Arrays]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Verwenden von Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Verschachtelte_Schleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Primzahlenaufgabe | Primzahlen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Geschicktes Einsetzen von Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Wetterstation | Wetterstation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Geometrie | Geometrie]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Methoden schreiben&amp;lt;br&amp;gt;schreiben mathematischer Funktionen&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Zweierpotenzen | Zweierpotenzen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Schleifen_und_Modulo | Schleifen und Modulo]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Verwendung von Schleifen&amp;lt;br&amp;gt;Benutzung des Modulo-Operators&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Methoden | Quickies zu Methoden]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Verwenden von Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/MathematischeMethoden | Eigene Methoden]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schreiben eigener Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Schaltjahr | Schaltjahr]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schreiben von Methoden&amp;lt;br&amp;gt;Fallunterscheidungen&amp;lt;br&amp;gt;Benutzerinteraktion&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Crack_the_Password | Crack the Password]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2/3. VL&lt;br /&gt;
 | Passwörter knacken ;-)&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Rekursion_vs._Iteration | Rekursion vs. Iteration]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Fehler finden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Lineare_Funktionen | Lineare Funktionen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Verwendung von Methoden&amp;lt;br&amp;gt;Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Fibonacci | Fibonaccizahlen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Brainfuck | Brainfuck vs Turingmaschine]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Arbeiten mit Arrays&amp;lt;br&amp;gt;Allgemeinwissen :-)&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Gau%C3%9F-Algorithmus | Gauß-Algorithmus]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Arrays und Matrizen&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Zahlenumrechner | Zahlenumrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Arbeiten mit Methoden&amp;lt;br&amp;gt;mathematisches Denken&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs 2007/Democracy | Der Fehler im System]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Fehler finden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Quersumme | Spaß mit Quersummen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5 - 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Benutzung des Modulo-Operators&amp;lt;br&amp;gt;Auslagern von Funktionalität in Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Appleman | Appleman und Fraktale]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schleifen, Umgang mit Fließkommazahlen&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/DiffusionLimitedAggregation | Diffusion Limited Aggregation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | 2-dimensionale Arrays, Methoden, Schleifen&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Entwurf von Programmen&amp;lt;br&amp;gt;Parameterübergabe beim Programmaufruf&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Hangman | Hangman]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Entwurf von Programmen&amp;lt;br&amp;gt;Arbeiten mit Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/SelectionSort | Selection Sort]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Verstehen von komplexeren Algorithmen&amp;lt;br&amp;gt;Schleifen und Arrays&amp;lt;br&amp;gt;(Hilfs-)Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Cäsar-Chiffre | Chiffrierung/Dechiffrierung (Cäsar)]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |9&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | eigenständiges Problemlösen. &amp;lt;br&amp;gt; Alle Konzepte des Kurses&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Abzaehlspiel | Abzählspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Analyse von Aufgabenstellungen&amp;lt;br&amp;gt;Entwurf eines komplexen Programms von Grund auf&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2006/Rennschnecke | Schneckenrennen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Objektorientierte Programmierung&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Studentendatenbank_LE5 | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Vertiefung in objektorientiertes Programmieren&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Multiarray| Mehrdimensionale Arrays]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |10&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Methoden, Schleifen, Arrays&amp;lt;br&amp;gt;Objektorientierung&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Canvas | Virtuelles Canvas mit 3D-Objekten]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6. VL&lt;br /&gt;
 | Arbeiten mit Methoden&amp;lt;br&amp;gt;mathematisches Denken&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Doom | ASCII DOOM ]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6. VL&lt;br /&gt;
 | Vertiefung in objektorientierte Programmierung&amp;lt;br&amp;gt;Benutzung der Java-API&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Textwordcount | Texte lesen und analysieren]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6. VL&lt;br /&gt;
 | eigenständiges Problemlösen&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Aufgaben als PDF ==&lt;br /&gt;
Alle Aufgaben als PDFs in einem Paket mit den Vorgaben gibt es hier:&lt;br /&gt;
&lt;br /&gt;
[http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2009/aufgaben2009.tar.gz http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2009/aufgaben2009.tar.gz] (Stand: 24.03.2009 8:45)&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer weden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
- Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Embedded-Bash_2008&amp;diff=11064</id>
		<title>Embedded-Bash 2008</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Embedded-Bash_2008&amp;diff=11064"/>
		<updated>2008-11-14T12:35:50Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: /* Termin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Freitagsrunde veranstaltet dieses Jahr zum ersten Mal einen &amp;quot;Embedded-Bash&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Was ist ein &#039;&#039;&#039;Embedded Gerät&#039;&#039;&#039; ueberhaupt? ==&lt;br /&gt;
&lt;br /&gt;
Oft wird die Software eingebettete Systeme vom Hersteller nur an eine spezielle Aufgabe angepasst, wobei die Hardware meistens zu viel mehr in der Lage ist. Was ihr alles mehr mit eurem Router, Spielekonsole und mp3-Player machen könnt, und wie das geht erfahrt ihr auf dem Embedded-Bash der Freitagsrunde.&lt;br /&gt;
&lt;br /&gt;
== Und was passiert auf einem Embedded-&#039;&#039;&#039;Bash&#039;&#039;&#039;? ==&lt;br /&gt;
&lt;br /&gt;
Ziel ist es, Einsteigern sowie fortgeschrittenen Nutzern die verschiedenen Embedded-Geräte und deren Funktionsweise(Hard- wie auch Software-seitig) nahe zu legen. Es soll ein Überblick entstehen, wo solche Geräte eingesetzt werden und welche Vor- bzw. Nachteile sie mit sich bringen.&lt;br /&gt;
&lt;br /&gt;
== Termin ==&lt;br /&gt;
&lt;br /&gt;
Geplant sind dafür bisher zwei Termine, mit jeweils drei bis vier Vorstellungen:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Dienstag, 18. November&#039;&#039;&#039;, ab 16 Uhr&lt;br /&gt;
#* WRT&lt;br /&gt;
#** [[Embedded-Bash_2008/Asus_WRT | Asus]] (Robert B.)&lt;br /&gt;
#** [[Embedded-Bash_2008/Avila | Gateworks Avila]] (Thorsten F.)&lt;br /&gt;
#* [[Embedded-Bash_2008/Alix | Alix]] (Torsten S.)&lt;br /&gt;
#* [[Embedded-Bash_2008/Fritzbox | FritzBox]] (Thaddaeus K.)&lt;br /&gt;
#* [[Embedded-Bash_2008/Openmoko | Openmoko]] (Werner H.)&lt;br /&gt;
#* Maemo auf den Nokia Internet Tablets (Jonas H.)&lt;br /&gt;
# &#039;&#039;&#039;Dienstag, 25. November&#039;&#039;&#039;, ab 16 Uhr&lt;br /&gt;
#* [[Embedded-Bash_2008/M740AV | Siemens M740AV]] (DVB-T auf Linux-Basis) (Florian S.)&lt;br /&gt;
#* [[Embedded-Bash_2008/T-Online_Set-Top-Box | T-Online Set-Top-Box]] ([[Benutzer:bastla|bastla]])&lt;br /&gt;
#* [[Embedded-Bash_2008/Wii_mit_Linux | Wii mit Linux]] (Mario B.)&lt;br /&gt;
#* Rockbox (Jonas H.)&lt;br /&gt;
#* [[Embedded-Bash_2008/SunSpots | SunSpots]] (Daniel F.)&lt;br /&gt;
&lt;br /&gt;
Voträge finden immer in folgenden Räumlichkeiten statt:&lt;br /&gt;
&lt;br /&gt;
Raum 5516 &amp;lt;br /&amp;gt;&lt;br /&gt;
Franklinstr. 28/29 &amp;lt;br /&amp;gt;&lt;br /&gt;
10587 Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://maps.google.de/maps?f=q&amp;amp;hl=de&amp;amp;geocode=&amp;amp;q=Fr%C3%A4nklinstr+28,+berlin&amp;amp;sll=51.151786,10.415039&amp;amp;sspn=19.508908,44.824219&amp;amp;ie=UTF8&amp;amp;z=16&amp;amp;iwloc=addr googlemaps]&lt;br /&gt;
&lt;br /&gt;
== Geräte ==&lt;br /&gt;
&lt;br /&gt;
Wir suchen noch Vorträge z.B. für diese Geräte:&lt;br /&gt;
&lt;br /&gt;
# UI-Boxen und Misc&lt;br /&gt;
#* GP2X&lt;br /&gt;
&lt;br /&gt;
Wer darüber vortragen möchte oder Jemanden kennt - bitte melden!&lt;br /&gt;
&lt;br /&gt;
== Für Vortragende ==&lt;br /&gt;
* Wir haben einen Beamer. Wenn ihr nur euren Vortrag als pdf mitbringen wollt, setzt euch bitte mit uns in Verbindung.&lt;br /&gt;
* Zeit: 10 bis 30 Minuten&lt;br /&gt;
&lt;br /&gt;
Stil:&lt;br /&gt;
* &#039;&#039;&#039;Deutlich sprechen&#039;&#039;&#039; - nicht alle Zuhörer sind Deutsch-Muttersprachler.&lt;br /&gt;
* &#039;&#039;&#039;Mut zur Lücke&#039;&#039;&#039; - denn man kann nie alles erzählen.&lt;br /&gt;
&lt;br /&gt;
Inhalt:&lt;br /&gt;
* Bitte eigene Geräte mitbringen!&lt;br /&gt;
* Projekt: Wer, seit wann, wie viele Leute. (bitte kurz)&lt;br /&gt;
* Praxis!  Viel live zeigen.&lt;br /&gt;
* Systemspezifikationen: MHz, RAM, ROM?  Watt (Strommessgerät wird vor Ort sein)&lt;br /&gt;
* Einsatzgebiet: Wo wird das Gerät eingesetzt?&lt;br /&gt;
* Features: &#039;&#039;herausstechende&#039;&#039; Eigenschaften. Was ist anders als bei anderen?&lt;br /&gt;
* AIKU: Administration, Installation, Konfiguration, Updates.&lt;br /&gt;
&lt;br /&gt;
== Kontakt ==&lt;br /&gt;
&lt;br /&gt;
Für Fragen und Ideen wendet euch bitte per Mail an&lt;br /&gt;
embedded(at)freitagsrunde(dot)org.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Veranstaltungen der Freitagsrunde]]&lt;br /&gt;
[[Kategorie:Freitagsrunde]]&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Doom&amp;diff=9617</id>
		<title>Javakurs/Übungsaufgaben/Doom</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Doom&amp;diff=9617"/>
		<updated>2008-04-11T12:42:46Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: /* Kommentare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ASCII-DOOM&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
In Ascii-Doom geht es darum, ein kleines Spiel zu implementieren, mit ASCII Grafiken. Es wird&lt;br /&gt;
möglich sein, mit einer Spielfigur auf dem Spielfeld zu laufen, später könnt ihr auch&lt;br /&gt;
Items, Waffen und [http://imblog.aufeminin.com/blog/D20060112/71199_224296211_liv_tyler_H210646_L.jpg Liv Tyler] einbauen! Wir werden Klasse für Klasse das Spiel implementieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== class GameMain Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* Die Klasse GameMain ist die Klasse, die die main Methode enthalten wird und somit ausführbar ist.&lt;br /&gt;
	&lt;br /&gt;
* Sie wird die Schnittstelle zur Außenwelt sein und die Ausgabe auf die Konsole tätigen.&lt;br /&gt;
&lt;br /&gt;
* Erstellt zunächst nur diese Klasse. Sobald ihr Klassen aus den späteren Aufgaben implementiert habt, könnt ihr in der main-Methode ihre Funktionalität testen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== class Position Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* Position repräsentiert eine Position auf einem 2D-Spielfeld.&lt;br /&gt;
&lt;br /&gt;
* Enthält private Attribute x und y, gekapselt mit gettern/settern.&lt;br /&gt;
	&lt;br /&gt;
* Implementiert eine equals-Methode, die 2 Positions vergleicht.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TESTET euer equals!&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameTile Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* GameTile repräsentiert ein Tile (ein Feld) im späteren Spiel.&lt;br /&gt;
	&lt;br /&gt;
* Enthält eine private Variable, die für den Typ des Feldes steht (am besten ein int).&lt;br /&gt;
** 1 entspricht wand&lt;br /&gt;
** 2 entspricht leer &lt;br /&gt;
			&lt;br /&gt;
* Also auch hier braucht ihr Getter und Setter.&lt;br /&gt;
&lt;br /&gt;
* Enthält außerdem eine private Variable vom Typ Position, welche die Position des GameTiles auf dem Feld speichert.&lt;br /&gt;
	&lt;br /&gt;
* Implementiert eine toString-Methode, die jedem GameTile einen String mit Länge 1 zuordnet.&lt;br /&gt;
** wand = &amp;quot;x&amp;quot;&lt;br /&gt;
** leer = &amp;quot; &amp;quot;&lt;br /&gt;
		&lt;br /&gt;
* &#039;&#039;&#039;TESTET euer toString.&#039;&#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameField Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GameField ist eine zentrale Klasse in diesem Spiel, sie repräsentiert das Spielfeld als Ganzes und besteht aus GameTiles.&lt;br /&gt;
	&lt;br /&gt;
* Enthält eine private Variable für das Level (2D-Array aus GameTiles). &lt;br /&gt;
	&lt;br /&gt;
* Über den Konstruktor wird ein String dieser Form übergeben(ebenso seine Breite und Höhe): 		&lt;br /&gt;
        String s = &amp;quot;########&amp;quot; +&lt;br /&gt;
 		  &amp;quot;#      #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;#      #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;###    #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;#      #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;########&amp;quot;;&lt;br /&gt;
** Es soll mit einer Schleife der String Zeichen für Zeichen ausgelesen werden und aus jedem Zeichen ein neues GameTile (fest oder leer) erzeugt werden. Diese GameTiles werden dann in dem Array gespeichert!&lt;br /&gt;
** Wie man Strings Zeichen für Zeichen ausliest, findet ihr in der API (java.lang.String).&lt;br /&gt;
** Implementiert ein toString, dieses soll folgenden String liefern: 	&lt;br /&gt;
 		  12345678&lt;br /&gt;
 		1 ######## &lt;br /&gt;
 		2 #      #&lt;br /&gt;
 		3 #      #&lt;br /&gt;
 		4 ###    #&lt;br /&gt;
 		5 #      #&lt;br /&gt;
  		6 ########&lt;br /&gt;
** Tipp: &amp;quot;\n&amp;quot; steht in einem String für Zeilenumbruch.&lt;br /&gt;
** Es soll also aus dem GameField-Array wieder ein String generiert werden.&lt;br /&gt;
** Die toString-Methode von GameField soll die toString Methode von GameTile verwenden, um diese Ausgabe zu erzeugen.&lt;br /&gt;
		&lt;br /&gt;
* &#039;&#039;&#039;TESTET euer Programm mit verschiedenen Levels&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== class World Teil 1 ==&lt;br /&gt;
	&lt;br /&gt;
* World ist die Klasse, die alles verbinden wird, Spieler, Items, Spielfeld etc.&lt;br /&gt;
	&lt;br /&gt;
* Zunächst einmal gibt es nur das GameField, was wir einbinden können (später der Spieler).&lt;br /&gt;
&lt;br /&gt;
* So muss es auch ein Variable vom Typ GameField geben.&lt;br /&gt;
	&lt;br /&gt;
* Die Main Klasse erzeugt ab jetzt nur noch eine Instanz von World nicht mehr von GameField. Denn World selbst soll sich das GameField erzeugen (im Konstruktor).&lt;br /&gt;
&lt;br /&gt;
* Bei Java funktioniert es bei grafischen Anwendungen etwa so: Man hat ein Objekt, das eine Leinwand repräsentiert (Canvas), man darf auf diesem Objekt Sachen malen. In einem Spiel wird das Objekt in jedem Frame leer gemacht, danach werden alle beteiligten grafischen Objekte (Spieler, Spielfeld, Gegner) nacheinander auf diese Leinwand gemalt. Letzendlich wird die Leinwand auf dem Bildschirm ausgegeben. Das hat den Vorteil, dass jede Klasse die darauf Zugriff bekommt, irgendetwas malen kann ohne zu wissen, was bereits darauf ist oder noch darauf kommt. (Jedes Objekt kümmert sich selbst um seine grafische Entsprechung.)&lt;br /&gt;
Das werden wir hier auch machen, allerdings mit Strings, da uns die Grundlagen für Grafisches noch fehlen.&lt;br /&gt;
	&lt;br /&gt;
* Definiert eine solche Canvas Variable, die für die grafische Repräsentierung des Spielfelds stehen wird.&lt;br /&gt;
**  Das soll ein 2D-Array aus Strings der Länge 1 sein. Ein String pro Feld, dieses enthält dann &amp;quot;#&amp;quot; oder &amp;quot; &amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== class GameField Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
* Wir brauchen nun eine draw-Methode, die eine solche Leinwand (String[][]) aus World übergeben bekommt und sich selbst darauf malt. Diese Methode funktioniert nun ähnlich wie unsere toString-Methode, sie gibt nur nichts zurück, sondern modifiziert direkt unser Leinwand-Array und malt dort Zeichen für Zeichen die Felder rein. (Arrays sind keine primitiven Datentypen, daher wird hier nicht mit einer Kopie gearbeitet)&lt;br /&gt;
  &lt;br /&gt;
 public void draw( String[][] canvas )&lt;br /&gt;
  &lt;br /&gt;
* Was passiert eigentlich, wenn das GameField größer ist als unser String[][]? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== class World Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Nun kommt unsere wichtigste Methode &amp;lt;code&amp;gt;public void draw()&amp;lt;/code&amp;gt;. Draw soll alle Inhalte (bisher nur GameField)  auf unser Canvas-Objekt malen, indem es die draw-Methode von GameField aufruft und das Canvas-Array übergibt. Der Code beschränkt sich hier also auf eine Zeile. &lt;br /&gt;
** Später fügen wir hier mehr ein. &lt;br /&gt;
	 		  	  	&lt;br /&gt;
* Implementiert auch eine toString-Methode, diese sollte das aktuelle Canvas-Array in der richtigen Form für die Konsolenausgabe liefern.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; TESTET nun eure Grafik Ausgabe und euer toString().&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== class GameMain Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
* Die Klasse GameMain enthält als einzige eine Instanz der Klasse World und kann somit das Spielfeld zeichnen. 	&lt;br /&gt;
  &lt;br /&gt;
* Sofern ihr beim Testen versucht habt, das Spielfeld mehrmals auf die Konsole auszugeben, seht ihr, dass das alte Spielfeld  noch immer sichtbar ist über dem neuen. Das sieht irgendwie blöd aus.&lt;br /&gt;
	  &lt;br /&gt;
* Zählt nach, wieviele Zeilen euere Konsole hat. &lt;br /&gt;
	&lt;br /&gt;
* Bevor man das Level ausgibt, kann man soviele leere Zeilen ausgeben lassen, dass das alte Level nicht mehr sichtbar ist. &amp;lt;code&amp;gt;System.out.println(&amp;quot;&amp;quot;);&amp;lt;/code&amp;gt;   gibt eine leere Zeile aus. &lt;br /&gt;
	  &lt;br /&gt;
* &#039;&#039;&#039;TESTEN ob das klappt und gut aussieht&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class Player Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* Der Spieler wird die Möglichkeit haben, auf dem Spielfeld rumzulaufen und je nachdem, wie weit ihr kommt, noch viel mehr.&lt;br /&gt;
	  		  &lt;br /&gt;
* Der Spieler besitzt eine Position (Variable vom Typ Position), wie immer private mit Getter/Setter&lt;br /&gt;
	&lt;br /&gt;
* Der Spieler wird durch ein &amp;quot;*&amp;quot;  auf dem Spielfeld repräsentiert. Implementiert eine draw-Methode, die genau so wie die draw-Methode aus GameField den Spieler auf unsere Leinwand malt, an die Position die in der position-Variable gepseichert ist.&lt;br /&gt;
	  &lt;br /&gt;
* Player soll auch vier Methoden haben &lt;br /&gt;
** public void moveLeft() &lt;br /&gt;
** public void moveRight()&lt;br /&gt;
** public void moveUp()&lt;br /&gt;
** public void moveDown()&lt;br /&gt;
* Welche einfach nur die X- oder Y-Position um 1 erhöhen oder dekrementieren.&lt;br /&gt;
&lt;br /&gt;
	  &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class World Teil 3 ==&lt;br /&gt;
&lt;br /&gt;
* Im Konstruktor soll nun auch eine Spielerinstanz erzeugt werden und zunächst an einer bel. Position gesetzt werden.&lt;br /&gt;
	  &lt;br /&gt;
* Erweitert die draw-Methode so, dass nun auch der Spieler angezeigt wird. &lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;TESTET ob das funktioniert. Was passiert eigentlich, wenn man den Spieler an der Position  -1 | -1 setzt ? &#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class World Teil 4 ==&lt;br /&gt;
&lt;br /&gt;
* Implementiert eine Methode &amp;lt;code&amp;gt;public boolean onKeyPressed( String key ){ ... }&amp;lt;/code&amp;gt;. Sie wird dann aufgerufen werden, wenn eine Taste gedrückt wurde und soll &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurückgeben, wenn der Spieler sich bewegt hat, ansonsten &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. 	  &lt;br /&gt;
	  &lt;br /&gt;
* Zunächst müssen wir in onKeyPressed prüfen, ob key einer der Strings &amp;quot;a&amp;quot; (links) , &amp;quot;s&amp;quot;(unten) , &amp;quot;d&amp;quot;(rechts) , &amp;quot;w&amp;quot;(oben) ist (equals benutzen!). Falls ja, wurde schonmal sicherlich eine gültige Taste gedrückt. Falls nein, können wir false zurückliefern.&lt;br /&gt;
	&lt;br /&gt;
* Wir müssen als nächstes prüfen, ob der Spieler durch die Bewegung nicht in eine Mauer reinläuft, dazu müssen wir die Spielerposition vergleichen und schauen, in welchem Tile er stehen würde, wenn wir rechts/links/hoch/runter liefen. Sofern dieses Tile leer ist, dürfen wir in diese Richtung laufen.&lt;br /&gt;
	  &lt;br /&gt;
* Nun wo wir das alles geprüft haben, bewegen wir den Spieler mit einer der vier Bewegungsfunktionen und geben true zurück.&lt;br /&gt;
		  &lt;br /&gt;
* &#039;&#039;&#039;TESTET unbedingt manuell diese Methode, sie muss korrekt funktionieren! &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameMain Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
* Nun kommt alles zusammen.&lt;br /&gt;
	&lt;br /&gt;
* Fuer die Eingabe von der Konsole benutzt wieder die Terminal Klasse.&lt;br /&gt;
&lt;br /&gt;
* Es muss geprueft werden ob es sich um ein gueltiges Zeichen handelt und ob es eines der Zeichen a,s,w,d ist.&lt;br /&gt;
&lt;br /&gt;
* Das eingegebene Zeichen soll dann an die World Klasse uebergeben werden und diese soll den Spieler bewegen, falls dies moeglich ist!&lt;br /&gt;
&lt;br /&gt;
		     	 &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
* Nun kann der Spieler im Level rumlaufen und es gibt eine Art Interaktion. Das ist das Basisgerüst für ein Spiel, ihr könnt nun weitere Sachen einfügen wie z.B. Items, die man einsammeln kann. Wie könnte man das machen? Was hat Liv Tyler in diesem Spiel für eine Aufgabe?&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
AB:&lt;br /&gt;
ich mahce gerade diese Aufgabe als Übung und kann nur sagen, dass sie wirklich vorbildlich ist, wie auch der rest der Aufgaben...die Tutoren und Professoren für MPGI2 sollten sich mal eine scheibe abschneiden :P&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte man noch angeben, wie groß die Dimension des Spielfeld-Arrays sein soll. Zum Beispiel:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;i&amp;gt; private GameTile[][] level = new GameTile[10][10];&amp;lt;/i&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
- Michael&lt;br /&gt;
&lt;br /&gt;
Hallo, ich hab ein paar Fragen zu den Erklärungen:&lt;br /&gt;
&lt;br /&gt;
[[World Teil 1]]&lt;br /&gt;
&#039;&#039;&amp;quot;Die Main Klasse erzeugt ab jetzt nur noch eine Instanz von World nicht mehr von GameField. Denn World selbst soll sich das GameField erzeugen (im Konstruktor).&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erstelle ich jetzt in meinem World-Konstruktor ein neues GameField? Wenn ja, wie kann ich das denn weiter Benutzen? &lt;br /&gt;
Also, um eine Draw-Methode aufrufen.&lt;br /&gt;
&lt;br /&gt;
[[World Teil 2]]&lt;br /&gt;
&#039;&#039;&amp;quot;Draw soll alle Inhalte (bisher nur GameField) auf unser Canvas-Objekt malen, indem es die draw-Methode von GameField aufruft und das Canvas-Array übergibt. Der Code beschränkt sich hier also auf eine Zeile.&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wie kann ich hier die Draw-Methode von GAmeField aufrufen. Dazu bräuchte ich doch erste mal ein GameField.&lt;br /&gt;
z.B.: [[XYGameField.draw(MyCanvasArray)]] ??&lt;br /&gt;
&lt;br /&gt;
würde mich über Antworten freuen. nico&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ich arbeite auch an der Aufgabe und denke mir dazu folgendes:&lt;br /&gt;
&lt;br /&gt;
1) ja du erstellst im Konstructor von World ein Gamefield. Um das weiter zu benutzen muss deine Klasse auch eine Variable vom Typ gamefield haben. &lt;br /&gt;
zB. &amp;quot;GameField newField;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) mit 1. dann recht leicht &amp;quot;newField.draw(canvas);&amp;quot;&lt;br /&gt;
&lt;br /&gt;
So habe ich die Aufgabe zumindest verstanden. Hoffe (und denke) das ist so richtig.&lt;br /&gt;
&lt;br /&gt;
Eric&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/C%C3%A4sar-Chiffre&amp;diff=7323</id>
		<title>Javakurs/Übungsaufgaben/Cäsar-Chiffre</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/C%C3%A4sar-Chiffre&amp;diff=7323"/>
		<updated>2008-04-10T11:46:59Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: geheimtext hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Folgenden soll ein Programm weitgehend selbstständig entwickelt werden. Lies dir das nötige Wissen zur [[wikipedia:Verschiebechiffre|Cäsar-Chiffre]] in der Wikipedia an und überlege dir selbst eine Struktur für dein Programm.&lt;br /&gt;
&lt;br /&gt;
Mache dir auch Gedanken darüber, wie du die einzelnen Teile deines Programms frühzeitig, am besten gleich beim Entwickeln, auch testen kannst.&lt;br /&gt;
&lt;br /&gt;
== Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
=== Verschlüsseln ===&lt;br /&gt;
&lt;br /&gt;
Erstelle ein Programm, das eine Variable mit Text enthält. Dein Programm soll diesen Text mit einem Passwort durch eine Cäsar-Chiffre verschlüsseln, und dann auf der Konsole ausgeben.&lt;br /&gt;
&lt;br /&gt;
Das geht auch komfortabler, ist aber dann mit ein wenig mehr Aufwand verbunden (Tipps siehe unten):&lt;br /&gt;
* Der Text soll aus einer Datei eingelesen werden.&lt;br /&gt;
* Der chiffrierte Text soll in einer neuen Datei gespeichert werden.&lt;br /&gt;
&lt;br /&gt;
=== Entschlüsseln ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Programm so, dass es einen mit verschlüsselten Text bei gegebendem Passwort entschlüsseln kann. Speichere den entschlüsselten Text in einer seperaten Datei.&lt;br /&gt;
&lt;br /&gt;
=== Schlüssel knacken ===&lt;br /&gt;
Erweitere dein Programm so, dass es in der Lage ist, einen beliebigen mit einer Cäsar-Chiffre verschlüsselten Text zu entschlüsseln. Hierfür soll [[wikipedia:Häufigkeitsanalyse|Häufigkeitsanalyse]] benutzt werden, das heißt das Passwort ist nicht bekannt. Gib auch das gefundene Passwort an.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Unsere Tutoren können dir bei allen auftretenden Javaproblemen helfen, wir können allerdings nicht garantieren, dass sie sich in ihrer Freizeit auch mit Kryptographie beschäftigen.&lt;br /&gt;
&lt;br /&gt;
=== Weiterführendes ===&lt;br /&gt;
&lt;br /&gt;
Wenn du willst, kannst du deinen Chiffrieralgorythmus auch verändern oder einen anderen implementieren, mache das im Link zu deinen damit verschlüsselten Texten aber auch kenntlich. Denke daran, dass du selbst in der Lage sein solltest, deine Texte bei gegebendem Passwort zu entschlüsseln ;)&lt;br /&gt;
&lt;br /&gt;
=== Tipps ===&lt;br /&gt;
&lt;br /&gt;
Das Einlesen von Dateien gestaltet sich in Java etwas komplizierter. Wir haben euch aus diesem Grunde hier, ähnlich wie bei der Terminaleingabe, eine Bibliotheksklasse gebaut, die euch ein wenig Arbeit abnimmt.&lt;br /&gt;
&lt;br /&gt;
[http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/EasyFileAccess.java http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/EasyFileAccess.java]&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe der Funktion &amp;lt;code&amp;gt;EasyFileAccess.getFileContent(&amp;quot;Dateipfad&amp;quot;)&amp;lt;/code&amp;gt; könnt ihr so den Inhalt einer kompletten Datei zeilenweise in ein String-Array lesen.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe der Funktion &amp;lt;code&amp;gt;EasyFileAccess.writeArrayToFile(&amp;quot;Dateipfad&amp;quot;, daten)&amp;lt;/code&amp;gt; könnt ihr den Inhalt eines String-Arrays in eine Datei schreiben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Javakurs Gemeinschafts-Hacking  ==&lt;br /&gt;
Trage einen von dir verschlüsselten Text mit mindestens 50 Zeichen hier im Wiki ein, und nenne dazu deinen Namen (Link: &amp;quot;bearbeiten&amp;quot;). Entschlüssele die Texte anderer Teilnehmer, die hier verlinkt sind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Robert B. (rbu) ====&lt;br /&gt;
&amp;quot;EBG Guvegrra&amp;quot; vfg rvar qre rvasnpufgra Irefpuvrorpuvssera (Pnrfnepuvssera). Uvre jveq nyf Cnffjbeg qvr Mnuy Qervmrua trjnruyg, qnqhepu vfg qre Cebtenzzpbqr mhz Ragfpuyhrffrya tyrvpu qrz mhz Irefpuyhrffrya.&lt;br /&gt;
&lt;br /&gt;
==== Jacob S. ====&lt;br /&gt;
&amp;quot;Qyhh xo xcwb ohx xyh Zychx eyhhmn, vluowbmn xo xyh Uomauha pih bohxyln Mwbfuwbnyh hcwbn to zoylwbnyh. Qyhh xo xcwb myfvmn eyhhmn, xiwb hcwbn xyh Zychx, qclmn xo zoyl dyxyh Mcya, xyh xo yllchamn, ychy Hcyxylfuay ylfycxyh. Qyhh xo qyxyl xyh Zychx hiwb xcwb myfvmn eyhhmn, qclmn xo ch dyxyl Mwbfuwbn ohnylfcyayh.&amp;quot; - Mohtc (Xcy Eohmn xym Elcyaym)&lt;br /&gt;
&lt;br /&gt;
=== Eric N. ===&lt;br /&gt;
&amp;quot;ylclunl pz h kpzo ilza zlyclk jvsk.&amp;quot; -mhtvbz rspunvu wyvclyi&lt;br /&gt;
&lt;br /&gt;
=== Thomas.T ===&lt;br /&gt;
&amp;quot;Zkork jkot Coyykt. Jgy oyz kot Ckm, Atyzkxhroinqkoz fa kxrgtmkt.&amp;quot;-- Jgrgo Rgsg&lt;br /&gt;
&lt;br /&gt;
=== Alex B. ===&lt;br /&gt;
Tgpg, kotk Näalomqkozygtgreyk sayy sgt tgzüxroin hko yu kotks vxosozobkt Grmuxoznsay cok xuz toinz hktazfkt. Kotk yosvrk HxazkLuxik-Skznujk qgtt tgzüxroin gain ckxcktjkz ckxjkt, atyinöt ghkx kotlginkx. Atj but kotks &amp;quot;Vgyycuxz&amp;quot; cüxj oin nokx gain toinz yvxkinkt&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/C%C3%A4sar-Chiffre&amp;diff=7321</id>
		<title>Javakurs/Übungsaufgaben/Cäsar-Chiffre</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/C%C3%A4sar-Chiffre&amp;diff=7321"/>
		<updated>2008-04-10T10:04:35Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: /* Javakurs Gemeinschafts-Hacking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Folgenden soll ein Programm weitgehend selbstständig entwickelt werden. Lies dir das nötige Wissen zur [[wikipedia:Verschiebechiffre|Cäsar-Chiffre]] in der Wikipedia an und überlege dir selbst eine Struktur für dein Programm.&lt;br /&gt;
&lt;br /&gt;
Mache dir auch Gedanken darüber, wie du die einzelnen Teile deines Programms frühzeitig, am besten gleich beim Entwickeln, auch testen kannst.&lt;br /&gt;
&lt;br /&gt;
== Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
=== Verschlüsseln ===&lt;br /&gt;
&lt;br /&gt;
Erstelle ein Programm, das eine Variable mit Text enthält. Dein Programm soll diesen Text mit einem Passwort durch eine Cäsar-Chiffre verschlüsseln, und dann auf der Konsole ausgeben.&lt;br /&gt;
&lt;br /&gt;
Das geht auch komfortabler, ist aber dann mit ein wenig mehr Aufwand verbunden (Tipps siehe unten):&lt;br /&gt;
* Der Text soll aus einer Datei eingelesen werden.&lt;br /&gt;
* Der chiffrierte Text soll in einer neuen Datei gespeichert werden.&lt;br /&gt;
&lt;br /&gt;
=== Entschlüsseln ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Programm so, dass es einen mit verschlüsselten Text bei gegebendem Passwort entschlüsseln kann. Speichere den entschlüsselten Text in einer seperaten Datei.&lt;br /&gt;
&lt;br /&gt;
=== Schlüssel knacken ===&lt;br /&gt;
Erweitere dein Programm so, dass es in der Lage ist, einen beliebigen mit einer Cäsar-Chiffre verschlüsselten Text zu entschlüsseln. Hierfür soll [[wikipedia:Häufigkeitsanalyse|Häufigkeitsanalyse]] benutzt werden, das heißt das Passwort ist nicht bekannt. Gib auch das gefundene Passwort an.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Unsere Tutoren können dir bei allen auftretenden Javaproblemen helfen, wir können allerdings nicht garantieren, dass sie sich in ihrer Freizeit auch mit Kryptographie beschäftigen.&lt;br /&gt;
&lt;br /&gt;
=== Weiterführendes ===&lt;br /&gt;
&lt;br /&gt;
Wenn du willst, kannst du deinen Chiffrieralgorythmus auch verändern oder einen anderen implementieren, mache das im Link zu deinen damit verschlüsselten Texten aber auch kenntlich. Denke daran, dass du selbst in der Lage sein solltest, deine Texte bei gegebendem Passwort zu entschlüsseln ;)&lt;br /&gt;
&lt;br /&gt;
=== Tipps ===&lt;br /&gt;
&lt;br /&gt;
Das Einlesen von Dateien gestaltet sich in Java etwas komplizierter. Wir haben euch aus diesem Grunde hier, ähnlich wie bei der Terminaleingabe, eine Bibliotheksklasse gebaut, die euch ein wenig Arbeit abnimmt.&lt;br /&gt;
&lt;br /&gt;
[http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/EasyFileAccess.java http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/EasyFileAccess.java]&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe der Funktion &amp;lt;code&amp;gt;EasyFileAccess.getFileContent(&amp;quot;Dateipfad&amp;quot;)&amp;lt;/code&amp;gt; könnt ihr so den Inhalt einer kompletten Datei zeilenweise in ein String-Array lesen.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe der Funktion &amp;lt;code&amp;gt;EasyFileAccess.writeArrayToFile(&amp;quot;Dateipfad&amp;quot;, daten)&amp;lt;/code&amp;gt; könnt ihr den Inhalt eines String-Arrays in eine Datei schreiben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Javakurs Gemeinschafts-Hacking  ==&lt;br /&gt;
Trage einen von dir verschlüsselten Text mit mindestens 50 Zeichen hier im Wiki ein, und nenne dazu deinen Namen (Link: &amp;quot;bearbeiten&amp;quot;). Entschlüssele die Texte anderer Teilnehmer, die hier verlinkt sind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Robert B. (rbu) ====&lt;br /&gt;
&amp;quot;EBG Guvegrra&amp;quot; vfg rvar qre rvasnpufgra Irefpuvrorpuvssera (Pnrfnepuvssera). Uvre jveq nyf Cnffjbeg qvr Mnuy Qervmrua trjnruyg, qnqhepu vfg qre Cebtenzzpbqr mhz Ragfpuyhrffrya tyrvpu qrz mhz Irefpuyhrffrya.&lt;br /&gt;
&lt;br /&gt;
==== Jacob S. ====&lt;br /&gt;
&amp;quot;Qyhh xo xcwb ohx xyh Zychx eyhhmn, vluowbmn xo xyh Uomauha pih bohxyln Mwbfuwbnyh hcwbn to zoylwbnyh. Qyhh xo xcwb myfvmn eyhhmn, xiwb hcwbn xyh Zychx, qclmn xo zoyl dyxyh Mcya, xyh xo yllchamn, ychy Hcyxylfuay ylfycxyh. Qyhh xo qyxyl xyh Zychx hiwb xcwb myfvmn eyhhmn, qclmn xo ch dyxyl Mwbfuwbn ohnylfcyayh.&amp;quot; - Mohtc (Xcy Eohmn xym Elcyaym)&lt;br /&gt;
&lt;br /&gt;
=== Eric N. ===&lt;br /&gt;
&amp;quot;ylclunl pz h kpzo ilza zlyclk jvsk.&amp;quot; -mhtvbz rspunvu wyvclyi&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Canvas&amp;diff=9658</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=9658"/>
		<updated>2008-04-10T08:44:23Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: typo: Punktes -&amp;gt; Raum&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In dieser Aufgabe sollt Ihr eine Repräsentation einer Maloberfläche implementieren, die verschiedene geometrische Figuren wie Kugeln, Punkte, Geraden oder Würfel enthalten kann. Dabei werden Klassen für diese Figuren angelegt und eine Datenstruktur die diese Figuren aufnehmen kann.&lt;br /&gt;
&lt;br /&gt;
Wende dich bei auftauchenden Problemen bitte frühzeitig an einen Tutor, Fragen kostet nix.&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 Repräsentation eines Punktes im dreidimensionalen Raum 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 Konstruktor, der Initialisierungswerte für x, y und z bekommt&lt;br /&gt;
# eine Methode 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 Methode calcDistance, die den Abstand des Punktes zu einem zweiten berechnet&lt;br /&gt;
#* Tipp: Entscheidet, ob die Distanz exakt (float) und grob (int) berechnet werden soll. 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 Methode 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 Point3D 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 Konstruktor 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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2008/Tutorenportal&amp;diff=10850</id>
		<title>Javakurs2008/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2008/Tutorenportal&amp;diff=10850"/>
		<updated>2008-04-09T12:27:55Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: /* Raumauslastung + Tutorenverteilung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[Javakurs2008]]&lt;br /&gt;
* [[Javakurs2008/Orga]]&lt;br /&gt;
* [[Javakurs2008/Gliederung_Javakurs_2008]]&lt;br /&gt;
* [[Javakurs2008/%C3%9Cbungspool]]&lt;br /&gt;
&lt;br /&gt;
== Raumauslastung + Tutorenverteilung ==&lt;br /&gt;
Die Auslastung der Räume mit Tutanden wird dynamisch von den jeweiligen Tutoren eingetragen, um ein &amp;quot;load balancing&amp;quot; von Tutanden zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Eine Hilfe zum Eintragen der Raumauslastung steht im Quelltext der Tabelle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rote Zeilen bedeuten dass hier die eine Umverteilung statt finden sollte ....&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Montag, Dienstag, Mittwoch:&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 ! Raum&lt;br /&gt;
 ! Tutoren&lt;br /&gt;
 ! Tut#&lt;br /&gt;
 ! Plätze&lt;br /&gt;
 ! Motto&lt;br /&gt;
 ! Tutanden anwesend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | MA241&lt;br /&gt;
 | Sebastian D, Alex, Milan&lt;br /&gt;
 | 3&lt;br /&gt;
 | ~40&lt;br /&gt;
 | &#039;&#039;&#039;UNIX POOL&#039;&#039;&#039;&lt;br /&gt;
 | Mo (16/11), Di (10/8), Mi (16/)                    &amp;lt;!-- Hier Tutanden für FR2516 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR2516&lt;br /&gt;
 | Reiner, Björn B.&lt;br /&gt;
 | 2&lt;br /&gt;
 | ~25&lt;br /&gt;
 | &#039;&#039;&#039;Notebookraum A&#039;&#039;&#039;&lt;br /&gt;
 | Mo (21/13), Di (17/13), Mi(18/-)                    &amp;lt;!-- Hier Tutanden für FR2516 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR2517&lt;br /&gt;
 | Björn L., Michael&lt;br /&gt;
 | 2&lt;br /&gt;
 | 12&lt;br /&gt;
 | 34d45f313e4edafb599a62ff4d30ca88&lt;br /&gt;
 | Mo (11/9), Di (6/4), Mi(5/-)                    &amp;lt;!-- Hier Tutanden für FR2517 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5083&lt;br /&gt;
 | Florian&lt;br /&gt;
 | 1&lt;br /&gt;
 | 6&lt;br /&gt;
 | yvahk ebk!&lt;br /&gt;
 | Mo (6/1), Di (4/1)                    &amp;lt;!-- Hier Tutanden für FR2516 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5087&lt;br /&gt;
 | Martin Z., Gert&lt;br /&gt;
 | 2&lt;br /&gt;
 | ~15&lt;br /&gt;
 | Notebookraum B &#039;&#039;&#039;- closed&#039;&#039;&#039;&lt;br /&gt;
 | Mo (15/3), Di (-/-)                    &amp;lt;!-- Hier Tutanden für 5087 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5535&lt;br /&gt;
 | Felix, Dan&lt;br /&gt;
 | 2&lt;br /&gt;
 | 14&lt;br /&gt;
 | Sprache: Englisch, Deutsch; &#039;&#039;&#039;Zentrale für eventuelle Probleme und Kommunikation&#039;&#039;&#039;&lt;br /&gt;
 | Mo (11/9), Di (11/11)                     &amp;lt;!-- Hier Tutanden für FR5535 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5538&lt;br /&gt;
 | Daniel, Katrin&lt;br /&gt;
 | 2&lt;br /&gt;
 | 12&lt;br /&gt;
 | Eisentölpel &lt;br /&gt;
 | Mo (12/5), Di (8/4)                         &amp;lt;!-- Hier Tutanden für FR5538 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5539&lt;br /&gt;
 | Kai, Nadim&lt;br /&gt;
 | 2&lt;br /&gt;
 | 12&lt;br /&gt;
 | (C)Ulli&lt;br /&gt;
 | Mo (8/8), Di (10/10-6), Mi(8/)                        &amp;lt;!-- Hier Tutanden für FR5539 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR6514&lt;br /&gt;
 | Mario, Rbubert&lt;br /&gt;
 | 2&lt;br /&gt;
 | 13&lt;br /&gt;
 | ... INSERT WITTY COMMENT HERE ...&lt;br /&gt;
 | Mo (7/4), Di(5/4), Mi(3/-)                       &amp;lt;!-- Hier Tutanden für FR5514 eintragen--&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tabellen für jeden Tag duplizieren.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Orga-Raum:&#039;&#039;&#039; FR5535&lt;br /&gt;
&lt;br /&gt;
== Abwesenheiten ==&lt;br /&gt;
* Zeiträume in denen Tutoren aus diversen Gründen vorraussichtlich nicht anwesend sein können werden hier aufgelistet (Es geht um mehrstündige Abwesenheit, nicht um früher gehen oder Mittagspäuschen ;) )&lt;br /&gt;
&lt;br /&gt;
Mo. 10-12 Uhr (Nadim FR5539)&lt;br /&gt;
&lt;br /&gt;
== Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
Zur Kommunikation während der Tutorien stehen uns mehrere Medien zur Verfügung (siehe unten). Diese wird nötig sein, um z.B. auf (gefixte) Bugs in Aufgabenstellungen aufmerksam zu machen. (!)&lt;br /&gt;
Solche &amp;quot;Broadcast&amp;quot;-Nachrichten sollten über die Mailingliste ( siehe unten) gehen. Andere Kommunikation, wie z.B. wenn man Mal auf eine Frage keine Antwort weiss und einen anderen Tutor fragen will, könnte übers IRC gehen.&lt;br /&gt;
Auch der Weg zu Fuß in einen anderen Raum um dort zu fragen, sollte natürlich nicht ausgeschlossen werden ;-)&lt;br /&gt;
&lt;br /&gt;
=== Mailingliste ===&lt;br /&gt;
* javakurs-vl at lists.freitagsrunde.org&lt;br /&gt;
* javakurs-tut at lists.freitagsrunde.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== IRC ===&lt;br /&gt;
* Server: irc.freenode.net  [http://freenode.net/irc_servers.shtml mehr Server...]&lt;br /&gt;
* Channel: #freitagsrunde&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
* Nachbesprechung täglich 16.15 im Freitagsrundenraum ([[FR 5046]]).&lt;br /&gt;
* [http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/orga/Bsp_Stunden.JPG Beispiel-Abrechnung] für Kursveranstalter/Tutoren&lt;br /&gt;
&lt;br /&gt;
== Statistik ==&lt;br /&gt;
Zuhörer Tag 1, VL1: ca. 95-100&lt;br /&gt;
&lt;br /&gt;
Zuhörer Tag 2, VL3: ca 93 (-1 nach 0.75h)&lt;br /&gt;
&lt;br /&gt;
Zuhörer Tag 3, VL4: ca 50&lt;br /&gt;
&lt;br /&gt;
== Review von Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
# [[Javakurs2007/Von der Console zum HelloWorld | Vom Arbeiten mit der Konsole bis &amp;quot;Hallo Welt&amp;quot;]] (Felix)&lt;br /&gt;
# [[Javakurs2007/Variablen_und_Zuweisungen | Variablen und Zuweisungen]] (Felix)&lt;br /&gt;
# [[Javakurs2007/Cowsay | Cowsay oder &amp;quot;Wie macht die Kuh?&amp;quot;]] (Gert)&lt;br /&gt;
# [[Javakurs2007/Kassenbon | Erstellen eines Kassenbons]] (Daniel K)&lt;br /&gt;
# [[Javakurs2007/Javamenue | Ein eigenes Menü]] (Daniel K)&lt;br /&gt;
# [[Javakurs2007/Glücksspiel | Glücksspiel]] (Daniel K)&lt;br /&gt;
# [[Javakurs2007/Arrays | Quickies Arrays]] (Daniel K)&lt;br /&gt;
# [[Javakurs2007/Verschachtelte_Schleifen | Verschachtelte Schleifen]] (Gert)&lt;br /&gt;
# [[Javakurs2007/Primzahlenaufgabe | Primzahlen]] (Björn L.)&lt;br /&gt;
# [[Javakurs2007/Wetterstation | Wetterstation]] (Daniel K)&lt;br /&gt;
# [[Javakurs2007/Geometrie | Geometrie]] (Michael)&lt;br /&gt;
# [[Javakurs2007/Zweierpotenzen | Zweierpotenzen]] (Michael)&lt;br /&gt;
# [[Javakurs2007/Schleifen_und_Modulo | Schleifen und Modulo]] (Björn L.)&lt;br /&gt;
# [[Javakurs2007/Methoden | Quickies zu Methoden]] (Björn B.)&lt;br /&gt;
# [[Javakurs2007/MathematischeMethoden | Eigene Methoden]] (Björn B.)&lt;br /&gt;
# [[Javakurs2007/Schaltjahr | Schaltjahr]] Nadim&lt;br /&gt;
# [[Javakurs2007/Crack_the_Password | Crack the Password]] (Daniel K)&lt;br /&gt;
# [[Javakurs2007/Rekursion_vs._Iteration | Rekursion vs. Iteration]] (Martin Z.)&lt;br /&gt;
# [[Javakurs2007/Lineare_Funktionen | Lineare Funktionen]] (Gert)&lt;br /&gt;
# [[Javakurs2007/Fibonacci | Fibonaccizahlen]] Alex&lt;br /&gt;
# [[Javakurs2007/Brainfuck | Brainfuck vs Turingmaschine]] (Daniel K)&lt;br /&gt;
# [[Javakurs2007/Gau%C3%9F-Algorithmus | Gauß-Algorithmus]] Alex&lt;br /&gt;
# [[Javakurs2007/Zahlenumrechner | Zahlenumrechner]] (Michael)&lt;br /&gt;
# [[Javakurs 2007/Democracy | Der Fehler im System]] (Björn L.)&lt;br /&gt;
# [[Javakurs2007/Quersumme | Spaß mit Quersummen]] Nadim&lt;br /&gt;
# [[Javakurs2007/Appleman | Appleman und Fraktale]] Kai&lt;br /&gt;
# [[Javakurs2007/DiffusionLimitedAggregation | Diffusion Limited Aggregation]] Kai&lt;br /&gt;
# [[Javakurs2007/Palindrome | Palindrome]] Nadim&lt;br /&gt;
# [[Javakurs2007/Hangman | Hangman]] Alex&lt;br /&gt;
# [[Javakurs2007/SelectionSort | Selection Sort]] (Martin Z.)&lt;br /&gt;
# [[Javakurs2007/Cäsar-Chiffre | Chiffrierung/Dechiffrierung (Cäsar)]] (Cäsar, ähh.. Rbu)&lt;br /&gt;
# [[Javakurs2007/Abzaehlspiel | Abzählspiel]] (Björn B.)&lt;br /&gt;
# [[Javakurs2006/Rennschnecke | Schneckenrennen]] (Daniel K)&lt;br /&gt;
# [[Javakurs2007/Studentendatenbank_LE5 | Studentendatenbank]] (Dan)&lt;br /&gt;
# [[Javakurs2007/Multiarray| Mehrdimensionale Arrays]] (Dan)&lt;br /&gt;
# [[Javakurs2007/Canvas | Virtuelles Canvas mit 3D-Objekten]] Kai&lt;br /&gt;
# [[Javakurs2007/Doom | ASCII DOOM ]] (Dan)&lt;br /&gt;
# [[Javakurs2007/Textwordcount | Texte lesen und analysieren]] (Daniel K)&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Zahlenumrechner&amp;diff=9711</id>
		<title>Javakurs/Übungsaufgaben/Zahlenumrechner</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Zahlenumrechner&amp;diff=9711"/>
		<updated>2008-04-09T09:53:31Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: CamelCase ist Pflicht&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In dieser Aufgabe soll ein Programm erstellt werden, das Dezimalzahlen in andere&lt;br /&gt;
Darstellungen (Binär, Hexadezimal) umrechnet.&lt;br /&gt;
&lt;br /&gt;
# Schreibe eine Funktion &#039;dezimalNachBinaer(int dezimal)&#039;, die eine  Dezimalzahl als Eingabe bekommt und eine Binärzahl als String zurückgibt. Teste deine Funktion.&lt;br /&gt;
# Schreibe eine Funktion &#039;dezimalNachHexadezimal(int dezimal)&#039;, die eine Dezimalzahl als Eingabe bekommt und eine Hexadezimalzahl als String zurückgibt.&lt;br /&gt;
# Erweitere das entstandene Programm um ein Menü, so dass die Zahlen und die gewünschte Umrechnung vom Benutzer eingegeben werden können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
Du kannst die Klasse Terminal von http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/Terminal.java in das Verzeichnis kopieren, in welchem du dein Programm schreibst und die Methode &amp;lt;code&amp;gt;Terminal.readString()&amp;lt;/code&amp;gt; benutzen, um eine Tastatureingabe von der Kommandozeile zu lesen. Wenn dich interessiert, warum das so funktioniert, so erfährst du es [[Javakurs2007/Terminal | hier]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Hangman&amp;diff=9140</id>
		<title>Javakurs/Übungsaufgaben/Hangman</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Hangman&amp;diff=9140"/>
		<updated>2008-04-09T08:24:00Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: /* Hangman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hangman ==&lt;br /&gt;
Schreibe das in der Vorlesung besprochene Spiel Hangman für die Konsole.&amp;lt;br&amp;gt;&lt;br /&gt;
Es soll von einem Spieler beliebig oft spielbar sein. &lt;br /&gt;
In jedem Spielschritt soll die verbleibene Menge an Rateversuchen, sowie die bereits erratenen Buchstaben des Lösungswortes in der Form &amp;quot;HAN__AN&amp;quot; angezeigt werden. Die verbleibenden Rateversuche können einfach in Form einer Zahl angegeben werden.&lt;br /&gt;
&lt;br /&gt;
# Mache dir Notizen zum Spielablauf einer Hangman-Spielrunde.&lt;br /&gt;
# Skizziere den Programmablauf.&lt;br /&gt;
# Notiere den mittlerweile besser durchdachten Programmablauf möglichst übersichtlich und mit möglichst vielen Schritten.&lt;br /&gt;
# Mache dir Gedanken darüber, welche Schritte sehr komplex sind und entwerfe auch für sie einen Programmablauf.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Kopiere und entpacke die Vorgabedateien unter http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/Hangman.tar  in ein Verzeichnis deiner Wahl.&lt;br /&gt;
#* Die Hinweise in der Datei enthalten einen Fehler. Um einen bestimmten Buchstaben aus einem String zu extrahieren, muss man die Methode  &#039;&#039;&#039;char  charAt(int index)&#039;&#039;&#039; statt &#039;&#039;&#039;char charAtPosition(int index)&#039;&#039;&#039; verwenden.&lt;br /&gt;
# Benutze zum Schreiben deines Programmes die Vorgabedatei &amp;quot;Hangman.java&amp;quot; im Verzeichnis &amp;quot;Hangman&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung&#039;&#039;&#039;: Das Einlesen von Zeichen über die Konsole gestaltet sich in Java üblicherweise etwas umständlich. Aus diesem Grund enthalten die Vorgaben zu dieser Übung eine Bibliotheksklasse &amp;quot;Terminal&amp;quot;, welche dir einige leicht zu benutzende Funktionen für die Arbeit mit der Konsole zur Verfügung stellt. Solange sich die Datei &amp;quot;Terminal.java&amp;quot; im selben Verzeichnis wie deine Datei &amp;quot;Hangman.java&amp;quot; befindet, hast du Zugriff auf alle Funtionen der Bibliotheksklasse, indem du sie in der Form &amp;quot;Terminal.gewünschteFunktion()&amp;quot; aufrufst.&lt;br /&gt;
&lt;br /&gt;
* public static String readString () // liest ein Wort von der Konsole&lt;br /&gt;
* public static char readChar () // liest ein enzelnes Zeichen von der Konsole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fortgeschritte ===&lt;br /&gt;
&#039;&#039;&#039;Achtung, schwer!&#039;&#039;&#039;&lt;br /&gt;
* Gib die verbleibenden Rateversuche in Form eines ASCII-Hangmans aus.&lt;br /&gt;
&#039;&#039;&#039;Tipp:&#039;&#039;&#039; Ein Array zum Speichern der Graphik kann hier außerordentlich hilfreich sein.&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lol Rechtschreibfehler bei &amp;quot;Achtung, schwehr!&amp;quot;, aber echt coole Aufgabe ;P&lt;br /&gt;
&lt;br /&gt;
Die Dateien in UTF-8 zu kodieren wäre nett. Ich hab nämlich einige Fehlermeldungen bekommen.&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Nette Aufgabe. Mit ASCII-Bildchen siehst ja ganz nett aus,&lt;br /&gt;
     _____&lt;br /&gt;
     |/  |&lt;br /&gt;
     |   O&lt;br /&gt;
     |  `|´&lt;br /&gt;
     |   ^&lt;br /&gt;
 ____|_____&lt;br /&gt;
aber man kann die Optik noch steigern wenn man einfach die &lt;br /&gt;
Pad.java aus der Dla Aufgabe verwendet. *g*&lt;br /&gt;
(und  ... JA Ich hatte lange weile, deswegen hab ichs &lt;br /&gt;
freitag abend sogar noch gemacht.).&lt;br /&gt;
wenn jemand das auswählen eines neuen wortes zum raten geschickt gelöst hat kann er/sie mir nen tipp geben. meins funzt super scheint mir aber von quellcode ne mieserable lösung zu sein.&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Brainfuck&amp;diff=9203</id>
		<title>Javakurs/Übungsaufgaben/Brainfuck</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Brainfuck&amp;diff=9203"/>
		<updated>2008-04-08T13:15:56Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Einführung===&lt;br /&gt;
&lt;br /&gt;
Java ist eine komplexe und mächtige Programmiersprache mit der man viele informatische Probleme lösen kann. Doch wie weit kann man den Befehlssatz einer Sprache reduzieren ohne das diese die Eigenschaft verliert, beliebige mathematische Probleme zu lösen? Diese spezielle Eigenschaft wird Turingkomplettheit genannt. Alle Programmiersprachen sind für gewöhnlich turingkomplett, was bedeutet, dass sie jedes berechenbare Problem lösen können. Zu diesen Problemen zählen zum Beispiel sämtliche mathematische Probleme, aber auch Probleme die eher struktureller Natur sind, also auch das Suchen von Einträgen in einer Kontaktliste (nein, der Weltfrieden ist leider nicht berechenbar).&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:Brainfuck|Brainfuck]] ist eine Programmiersprache, die ebenfalls turingkomplett ist, allerdings nur aus &#039;&#039;&#039;acht&#039;&#039;&#039; Befehlen besteht. In dieser Aufgabe könnt ihr selbst einen auf einer Turingmaschine basierten Interpreter für eine eigene kleine Sprache schreiben, die man in einen weiteren Schritt Brainfuck-kompatibel machen kann und damit auch turingkomplett.&lt;br /&gt;
&lt;br /&gt;
===Aufgabenstellung===&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe bauen wir uns eine simple [[wikipedia:Turingmaschine|Turingmaschine]], welche vorgegebenen Programmcode einer eigenen Sprache lesen und auswerten soll. Die Turingmaschine besitzt dabei nur ein Arbeitsband (workingTape) der Länge 10. Es existiert ein Lese/Schreibe-Kopf (head), der über das workingTape gleiten kann, dort Werte ändern und Werte ausgeben soll. Bewegt sich der Kopf über ein Ende des Arbeitsbandes hinaus, so taucht er auf der anderen Seite wieder auf (wenn also z.B der head von Feld 10 auf das 11. Feld bewegt wird, dann soll er wieder auf das 1. zeigen).&lt;br /&gt;
&lt;br /&gt;
Die Maschine selbst wird durch einen einfachen Programmcode gesteuert, der aus 5 Befehlen besteht:&lt;br /&gt;
* &#039;&#039;&#039;&amp;gt;&#039;&#039;&#039; Dieser Befehl bewegt den head ein Feld nach rechts&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;&#039;&#039;&#039; Dieser Befehl bewegt den head ein Feld nach links&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; Dieser Befehl erhöht den Wert des aktuellen Feldes um 1&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; Dieser Befehl verringert den Wert aktuelles Feldes um 1&lt;br /&gt;
* &#039;&#039;&#039;#&#039;&#039;&#039; Dieser Befehl gibt den aktuellen Wert &lt;br /&gt;
auf der Konsole aus&lt;br /&gt;
&lt;br /&gt;
Der Programmcode der die Turingmaschine steuert, soll in einem Array namens &#039;&#039;sourceCode&#039;&#039; stehen, der Code soll Schritt für Schritt durchgegangen und ausgeführt werden. Auf dem Arbeitsband werden Werte vom Typ &#039;&#039;&#039;char&#039;&#039;&#039; gespeichert, die anfangs alle den Wert &#039;a&#039; haben. Der head zeigt am Anfang auf das erste Feld auf dem workingTape.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis 1:&#039;&#039;&#039; char-Werte werden intern als Zahlenwerte gespeichert, deshalb könnt ihr ohne Probleme sowas wie &#039;&#039;&#039;char example = &#039;a&#039;+1;&#039;&#039;&#039; schreiben. Wenn ihr wissen wollt, welche Zeichen durch welche Zahlen repräsentiert werden, dann schaut in die [[wikipedia:ASCII-Tabelle|ASCII-Tabelle]].&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet ihr auch in der Lage sein, mit eurer eigenen Turingmaschine ein &amp;quot;Hello World&amp;quot;-Programm zu schreiben. Wenn ihr eure Turingmaschine eigentständig erweitern wollt, dann schaut euch die Sprache [[wikipedia:Brainfuck|Brainfuck]] an. Brainfuck ist eine Programmiersprache, welche ähnlich arbeitet wie unsere Turingmaschine in dieser Aufgabe.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis 2:&#039;&#039;&#039; Zum Testen verwendet einfach diese Initialisierung der Variable Source-Code. Wenn ihr alles richtig gemacht habt, dann sollten die Buchstaben a, b  und c ausgegeben werden. Die Schreibweise mit den geschweiften Klammern und den Kommawerten legt automatisch ein Array an und füllt es mit den beschriebenen Werten (Deklaration &amp;amp; Initialisierung in einem Schritt):&lt;br /&gt;
 char[] sourceCode = {&#039;#&#039;, &#039;+&#039;, &#039;#&#039;, &#039;+&#039;, &#039;#&#039;};&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== FehlerKategorie ====&lt;br /&gt;
Um den Char um einen Wert zu erhöhen müsst ihr eure Variable zurück casten.&lt;br /&gt;
 char Example = (char)(&#039;a&#039;-1);&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Das stimmt nicht man kann auch das schreiben:&lt;br /&gt;
 char Example = &#039;a&#039; - 1;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Sorry wenn ich das so schreibe, aber das ist die erste Aufgabenstellung wo sich mir der Hintegrund, bzw. der Sinn nicht wirklich erschliesst, wäre jemand der das verstanden hat so freundlich das ganze ein wenig mehr zu erläutern? Das wäre ultranett :&amp;gt;.&lt;br /&gt;
-mw-&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Fehler in NetBeans:&lt;br /&gt;
 workingTape[head]=workingTape[head]+1;&lt;br /&gt;
funktioniert nicht! man muss explizit casten:&lt;br /&gt;
 workingTape[head]=(char)(workingTape[head]+1);&lt;br /&gt;
Mit javac dagegen funktionierts.&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Kassenbon&amp;diff=9473</id>
		<title>Javakurs/Übungsaufgaben/Kassenbon</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Kassenbon&amp;diff=9473"/>
		<updated>2008-04-07T09:41:31Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.36: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Kassenbon ==&lt;br /&gt;
Es soll ein Programm geschrieben werden, dass einen Kassenbon auf der Konsole anzeigt (mit &#039;&#039;System.out.println&#039;&#039;).&lt;br /&gt;
Am Anfang des Programmes werden in Form von Variablen folgende Werte festgelegt:&lt;br /&gt;
&lt;br /&gt;
* Anzahl von mindestens vier verschiedenen Waren, die gekauft werden sollen.&lt;br /&gt;
* Einzelpreise der Waren. (Ja, jede Warensorte hat einen anderen Preis)&lt;br /&gt;
* Inhalt der Brieftasche.&lt;br /&gt;
&lt;br /&gt;
Das Programm soll den Gesamtpreis der eingangs festgelegten Waren ermitteln. Übersteigt der&lt;br /&gt;
Gesamtpreis den Inhalt der Brieftasche, wird der Benutzer auf den fehlenden Betrag hingewiesen.&lt;br /&gt;
Reicht der Inhalt der Brieftasche für den Einkauf aus, wird ein Kassenbon ausgegeben, der&lt;br /&gt;
die gekauften Waren mit Anzahl und Preis sowie am Ende den Gesamtpreis auflistet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Erstellt zuerst die Ausgabe des Kassenbons und füllt sie anschließend mit Berechnungen und der Fallunterscheidung.&lt;br /&gt;
&lt;br /&gt;
== Kassenbon + automatischer Einkauf ==&lt;br /&gt;
Erstellt eine Kopie eures soeben geschriebenden Programmes.&lt;br /&gt;
Verändert das Programm so, dass nun der Kassenbon solange mit Waren gefüllt wird, bis der&lt;br /&gt;
Inhalt der Brieftasche für keine weiteren Einkäufe ausreicht. Betrachtet der Einfachheit halber&lt;br /&gt;
mehrere Produkte eines Typs als einen Einkauf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Viele, viele Fallunterscheidungen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schaun ob irgend jemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Unknown User ====&lt;br /&gt;
hallo alle freitagsrunde Team, &lt;br /&gt;
&lt;br /&gt;
diese lehrveranstaltung finde ich persönlich super megageil, aber ich wünsche,dass die Musterlösungen von solchen schweren Aufgaben im Netz gestellt werden. &lt;br /&gt;
&lt;br /&gt;
ich wünsche Euch viel Erfolg und weiterso...:-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
&lt;br /&gt;
Der Eine oder Andere hat darauf bestanden auf seinem Kassenbon keine Hundertstelcent ausgeben zu wollen. Diese entstehen mitunter dadurch, dass Doublewerte mit einer gewissen Toleranz gespeichert werden.&lt;br /&gt;
Hier ein Vorschlag für einen Workaround:&lt;br /&gt;
&lt;br /&gt;
 double kommazahl = 123.290402;&lt;br /&gt;
 	&lt;br /&gt;
 int ganzzahl = (int)kommazahl; // Nachkommastelle abschneiden&lt;br /&gt;
 int kommastelle = (int)(kommazahl * 100)%10 ; // zwei Nachkommastellen extrahieren&lt;br /&gt;
  &lt;br /&gt;
 System.out.println(&amp;quot;Preis=&amp;quot; + ganzzahl + &amp;quot;.&amp;quot; + kommastelle ); // Zahl in der Ausgabe zusammensetzen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Ich ====&lt;br /&gt;
Wie ist das gemeint, mit Kassenbon automatisch füllen?&lt;br /&gt;
Man kann doch nicht &amp;quot;zufällig&amp;quot; einkaufen...&lt;br /&gt;
: Die Idee der Aufgabe war es, so lange dasselbe Produkt zu kaufen, wie du kannst. Aber (da am Anfang des Kurses) nicht mit einer Schleife, sondern mit mehreren if&#039;s. -- [[Benutzer:Buchholz|Robert Buchholz]] 02:13, 4. Jun. 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>130.149.17.36</name></author>
	</entry>
</feed>