<?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.41</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.41"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/130.149.17.41"/>
	<updated>2026-10-29T04:18:24Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/DTMF-Encoder&amp;diff=14905</id>
		<title>C-Kurs/DTMF-Encoder</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=C-Kurs/DTMF-Encoder&amp;diff=14905"/>
		<updated>2010-09-16T14:03:25Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: /* Sinuswellen generieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In dieser Aufgabe soll ein Generator für DTMF-Töne erstellt werden. DTMF steht für &amp;lt;i&amp;gt;Dual-tone multi-frequency&amp;lt;/i&amp;gt; und ist auch als [http://de.wikipedia.org/wiki/Mehrfrequenzwahlverfahren Mehrfrequenzwahlverfahren] bekannt.&lt;br /&gt;
&lt;br /&gt;
Wenn du diese Aufgabe in den Rechnerräumen bearbeitest, benutze bei dem Abspielen der Töne bitte Kopfhörer, um andere nicht zu stören.&lt;br /&gt;
&lt;br /&gt;
=== Was ist DTMF? ===&lt;br /&gt;
Kurz gesagt: ein DTMF-Ton besteht aus zwei überlagerten Sinuswellen. Für jede Taste auf dem Telefon ist eine bestimmte Frequenzkombination dieser beiden Wellen festgelegt. Genaueres sowie die Frequenzen für die Tasten finden sich [http://de.wikipedia.org/wiki/Mehrfrequenzwahlverfahren hier].&lt;br /&gt;
&lt;br /&gt;
=== Wie werden Töne im Rechner dargestellt? ===&lt;br /&gt;
Töne lassen sich als [http://de.wikipedia.org/wiki/Puls-Code-Modulation PCM]-Daten speichnern. Unser Programm soll solche PCM-Daten generieren. Ausreichend sind hier 8 Bit pro Sample, sodass sich die Tondaten in einem Array aus &amp;lt;tt&amp;gt;unsigned char&amp;lt;/tt&amp;gt; ablegen lassen. Die Samples sind dann vorzeichenlos, was bedeutet, dass bei 127 der Mittelwert ist. Als Samplerate reichen für uns auch recht niedrige 8 kHz, das heißt für jede Sekunde Ton werden 8000 Samples benötigt.&lt;br /&gt;
&lt;br /&gt;
== Aufgabenstellung ==&lt;br /&gt;
Jetzt soll Schritt für Schritt der Tongenerator implementiert werden.&lt;br /&gt;
&lt;br /&gt;
=== Sinuswellen generieren ===&lt;br /&gt;
Schreibe eine Funktion, die Sinuswellen als Mono-8Bit-8kHz-PCM-Daten erzeugt. Der Funktion soll die gewünschte Länge des Tons, die Frequenz des Tons, und die Amplitude, sowie einen Pointer auf ein &amp;lt;i&amp;gt;int&amp;lt;/i&amp;gt;, in dem die Anzahl der generierten Samples abgelegt werden kann. Die Funktion soll dann ausreichend Speicher für die Daten allokieren und jedes Sample mit den passenden Sinuswerten befüllen und sie am Ende zurückgeben. Der Prototyp der Funktion sollte also etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;unsigned char* generateSine(int ms, int freq, float amplitude, int *numSamples)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rufe nun in der main-Funktion die Generierungsfunktion auf und speichere die Daten mit &amp;lt;tt&amp;gt;fwrite&amp;lt;/tt&amp;gt; in eine Datei. Die Datei kann jetzt auf einem Linux-System auf einfache Weise abgespielt mit dem Kommando &amp;lt;tt&amp;gt;cat &amp;lt;i&amp;gt;audiofile&amp;lt;/i&amp;gt; &amp;gt; /dev/dsp&amp;lt;/tt&amp;gt; werden. Sie kann aber auch z.B. mit &amp;lt;i&amp;gt;mplayer&amp;lt;/i&amp;gt; abgespielt werden:&lt;br /&gt;
&amp;lt;tt&amp;gt;mplayer -rawaudio samplesize=1:channels=1:rate=8000 -demuxer &amp;lt;i&amp;gt;audiofile&amp;lt;/i&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Hinweis zum Debuggen ====&lt;br /&gt;
Um sich die Audiodaten anzusehen, kann das Programm [http://audacity.sourceforge.net/?lang=de Audacity] verwendet werden. Öffnen lassen sie sich dort über &amp;lt;i&amp;gt;Datei&amp;lt;/i&amp;gt; -&amp;gt; &amp;lt;i&amp;gt;Importieren&amp;lt;/i&amp;gt; -&amp;gt; &amp;lt;i&amp;gt;Rohdaten&amp;lt;/i&amp;gt;, dann die Datei auswählen, dann bei &amp;lt;i&amp;gt;Codec&amp;lt;/i&amp;gt; Unsigned 8 bit PCM, bei &amp;lt;i&amp;gt;Kanäle&amp;lt;/i&amp;gt; 1, bei &amp;lt;i&amp;gt;Samplefrequenz&amp;lt;/i&amp;gt; 8000 Hz auswählen. Nun kann man in die Samples reinzoomen (Button mit Lupe und Plus) und sehen, ob der Sinuswellen ordentlich sind. Mit &amp;lt;i&amp;gt;Analyse&amp;lt;/i&amp;gt; -&amp;gt; &amp;lt;i&amp;gt;Frequenzanalyse&amp;lt;/i&amp;gt; kann überprüft werden, ob die Sinuswelle die richtige Frequenz hat.&lt;br /&gt;
&lt;br /&gt;
=== Sinuswellen überlagern ===&lt;br /&gt;
Schreibe jetzt eine Funktion, die zwei Sinuswellen gleicher Länge überlagern kann. Die von ihr erstellte Samples sollen durch Addition der beiden Samples der Sinusdaten gebildet werden. Doch Vorsicht: da die Daten vorzeichenlos sind, müssen sie temporär vorzeichenbehaftet werden, so dass der Mittelwert 0 wird, dann können sie addiert werden und dann wieder vorzeichenlos abgespeichert werden (mit dem Mittelwert 127). Der Prototyp der Funktion sollte etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;unsigned char* mixPcm(unsigned char *a, unsigned char *b, int numSamples)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test nun die Funktion wieder, indem du zwei Sinuswellen unterschiedlicher Frequenz erzeugst und sie mit der neuen Funktion überlagerst. Als Amplitude sollte jeweils etwas weniger als die Hälfte gewählt werden, um bei der Addition [http://de.wikipedia.org/wiki/Clipping_%28Signalverarbeitung%29 Clipping] zu vermeiden. Untersuche das Ergebnis wieder, wie in der ersten Teilaufgabe.&lt;br /&gt;
&lt;br /&gt;
=== DTMF-Töne ===&lt;br /&gt;
Schreibe eine Funktion, die für eine Ziffer zwischen 0 und 9 den passenden DTMF-Ton mithilfe der beiden vorigen Funktionen generieren kann. Ihr Prototyp kann etwa so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;unsigned char* generateDtmfTone(int number, int ms, int *numSamples)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Teste wieder. Zum Vergleich der Töne kannst du jetzt ein Telefon benutzen.&lt;br /&gt;
&lt;br /&gt;
=== Nummernsequenzen generieren ===&lt;br /&gt;
Benutze jetzt die Generierungsfunktion, um eine Folge von Ziffern in eine Datei zu schreiben. Die Töne sollten durch Stille getrennt sein. Du brauchst also noch eine Funktion, die Samples generiert, die alle den Wert 127 haben. Die Nummer soll als Kommandozeilenparameter oder Benutzereingabe eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
Wenn du jetzt ein analoges Telefon zur Hand hast, kannst du die Töne ins Mikrofon des Hörers anspeilen und damit Nummern wählen.&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;
[[Kategorie:CKurs]]&lt;br /&gt;
[[Kategorie:CKurs_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rennschnecke&amp;diff=13693</id>
		<title>Javakurs/Übungsaufgaben/Rennschnecke</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rennschnecke&amp;diff=13693"/>
		<updated>2010-03-24T15:51:37Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: /* Rennschnecke */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Rennschnecke ==&lt;br /&gt;
#Erstelle eine Klasse &amp;quot;Rennschnecke&amp;quot;&lt;br /&gt;
#:&lt;br /&gt;
#Rennschnecken sollen folgende Eigenschaften(Objektvariablen) besitzen:&lt;br /&gt;
#* einen Namen&lt;br /&gt;
#* eine Rasse&lt;br /&gt;
#* eine Maximalgeschwindigkeit&lt;br /&gt;
#* die Schnecke soll wissen welchen Weg sie bereits zurück gelegt hat&lt;br /&gt;
#:&lt;br /&gt;
# Erstelle für die Klasse Rennschnecke einen [[Javakurs2006/Java_Kurzreferenz#Konstruktor|Konstruktor]], der den Instanzvariablen beim Erstellen einer neuen Instanz (Objekt zu dieser Klasse) Werte zuweist.&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Rennschnecke&amp;quot; eine Methode &amp;quot;krieche()&amp;quot; an, welche die Schnecke abhängig von ihrer Maximalgeschwindigkeit eine zufällige Strecke weiter bewegt. Soll heißen: Sie kriecht eine zufällige Strecke größer null und kleiner ihrer Maximalgeschwindigkeit. Nimm als Zeiteinheit 1 an.&lt;br /&gt;
#* Tipp: Schaut euch die Methode Math.random() aus der Java API an.&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Rennschnecke&amp;quot; eine Methode &amp;quot;public String toString()&amp;quot; an, welche die Daten der Schnecke mit return als String zurückgibt.&lt;br /&gt;
#:&lt;br /&gt;
# Teste deine Klasse, indem du probehalber ein Rennschneckenobjekt erzeugst und seine Daten auf der Konsole ausgibst. &lt;br /&gt;
#*Tipp:Verwende zum Ausgeben der Daten die toString() Methode der Rennschnecke.&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
&lt;br /&gt;
== Rennen ==&lt;br /&gt;
&lt;br /&gt;
#Erstelle eine Klasse &amp;quot;Rennen&amp;quot;&lt;br /&gt;
#:&lt;br /&gt;
#Ein Rennen hat folgende Eigenschaften:&lt;br /&gt;
#*einen Namen&lt;br /&gt;
#*die Anzahl der teilnehmenden Schnecken&lt;br /&gt;
#*die teilnemenden Schnecken selbst (z.B. in einer [[Javakurs2007/ArrayList|ArrayList]])&lt;br /&gt;
#*die Länge der zu kriechenden Strecke&lt;br /&gt;
#:&lt;br /&gt;
#Überlege dir, welche dieser Werte bereits im Konstruktor gesetzt werden sollten.&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Rennen&amp;quot; eine Methode &amp;quot;void addRennschnecke(Rennschnecke neueSchnecke)&amp;quot; an, welche dem Rennen eine Schnecke hinzufügt.&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Rennen&amp;quot; eine Methode &amp;quot;void removeRennschnecke(String name)&amp;quot; an, welche eine Schnecke aus dem Rennen entfernt.&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Rennen&amp;quot; eine Methode &amp;quot;public String toString()&amp;quot; an, welche die Daten des Rennens mit return als String zurückgibt. &lt;br /&gt;
#*Tipp: Um die Daten der beteiligten Schnecken zurückzugeben, könnt ihr deren toString() Funktion benutzen.&lt;br /&gt;
#:&lt;br /&gt;
#Teste deine Klasse vom Hauptprogramm aus!&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Rennen&amp;quot; eine Methode &amp;quot;Rennschnecke ermittleGewinner()&amp;quot; an, welche &#039;&#039;&#039;null&#039;&#039;&#039; zurückliefert, wenn noch keine der teilnemenden Schnecken das Ziel erreicht hat und anderenfalls die Gewinnerschnecke zurückgibt.&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Rennen&amp;quot; eine Methode &amp;quot;void lasseSchneckenKriechen()&amp;quot; an, welche alle teilnemenden Schnecken einmal kriechen lässt.&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Rennen&amp;quot; eine Methode &amp;quot;void durchfuehren()&amp;quot; an, welche so lange lasseSchneckenKriechen() aufruft, bis eine der Schnecken das Ziel erreicht hat.&lt;br /&gt;
#* Tipp: Ob eine Schnecke im Ziel angekommen ist, kannst du mit deiner Methode ermittleGewinner() herrausfinden.&lt;br /&gt;
&lt;br /&gt;
== Wettbüro ==&lt;br /&gt;
&lt;br /&gt;
#Erstelle eine Klasse Wettbuero.&lt;br /&gt;
#:&lt;br /&gt;
#:Ein Wettbuero hat die folgenden Eigenschaften:&lt;br /&gt;
#* Es weiß, für welches Rennen es seine Wetten entgegennimmt.&lt;br /&gt;
#* Es verfügt über eine Liste (z.B. eine ArrayList) von angenommenen Wetten.&lt;br /&gt;
#* Es hat einen festen Faktor, mit welchem Wetteinsätze bei einem Gewinn multipliziert werden.&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Wettbuero&amp;quot; eine Methode &amp;quot;wetteAnnehmen(String schneckenName, int wettEinsatz, String spieler)&amp;quot; an, welche eine Wette entgegennimmt. Die Wette ist bezogen auf eine Schnecke für das Rennen, das von dem Büro bearbeitet wird.&lt;br /&gt;
#* Um die einzelnen Wetten speichern zu können, sollten ihre Daten in eigenen Objekten der Klasse &amp;quot;Wette&amp;quot; gespeichert werden. Erstellt euch diese Klasse selbst. &lt;br /&gt;
#* Tipp: Denkt an toString().&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Wettbuero&amp;quot; eine Methode &amp;quot;rennenDurchfuehren()&amp;quot; an, welche das betreute Rennen durchfuert.&lt;br /&gt;
#:&lt;br /&gt;
#Lege in der Klasse &amp;quot;Wettbuero&amp;quot; eine Methode &amp;quot;toString()&amp;quot; an, welche die Daten des Wettbueros, die Daten des Rennens sowie sämtliche abgeschlossende Wetten als String zurückgibt.&lt;br /&gt;
#:&lt;br /&gt;
# Teste dein Programm!&lt;br /&gt;
#:&lt;br /&gt;
# Tausche die Klasse Rennen mit einem Kommilitonen, der ebenfalls bereits fertig ist.&lt;br /&gt;
#* Sollten eure Programme immer noch laufen?&lt;br /&gt;
#* Treten Fehler auf? Wenn ja: ändert eure Programme so ab, dass ihr problemlos Klassen austauschen könnt.&lt;br /&gt;
&lt;br /&gt;
== Zusatz ==&lt;br /&gt;
&lt;br /&gt;
Es gibt noch ein paar Dinge, die in unserem Wettbüro nicht so laufen wie sie sollten. &lt;br /&gt;
Macht sie besser.&lt;br /&gt;
&lt;br /&gt;
* Dieselbe Schnecke kann in ein Rennen zweimal eingetragen werden.&lt;br /&gt;
* Es können negative Wetten abgeschlossen werden.&lt;br /&gt;
* Gehen zwei Schnecken gleichzeitig durchs Ziel, wird die Schnecke ausgegeben, auf die die Suche nach dem Gewinner zuerst stößt. Das ist ganz schön ungerecht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Zusatz Vererbung ==&lt;br /&gt;
&lt;br /&gt;
* Wo Geld im Spiel ist wird auch betrogen. Aus diesem Grund wollen wir jezt auch gedopte Rennschnecken an unseren Rennen teilnehmen lassen. &lt;br /&gt;
** Erstelle eine Klasse &amp;quot;Dopingschnecke&amp;quot;, welche alle Attribute und Methoden der gemeinen &amp;quot;Rennschnecke&amp;quot; erbt.&lt;br /&gt;
** Überschreibe den geerbten Constructor, so das &amp;quot;Dopingschnecken&amp;quot; eine wesentlich höhere Maximalgeschwindigkeit erhalten als normale &amp;quot;Rennschnecken&amp;quot;.&lt;br /&gt;
** Überschreibe die geerbte Methode &amp;quot;String toString()&amp;quot; so dass Dopingschnecken anders ausgegeben werden als Rennschnecken (z.B. durch einen zusatz wie &amp;quot;rote Augen&amp;quot; oder ähnliches)&lt;br /&gt;
** Mische in einem Rennen Dopingschnecken unter deine Rennschnecken. Du musst dafür keinerlei Funktionalitäten änder. Dein Programm muss nicht wissen ob es sich um eine Dopingschnecke handelt, denn sie ist ja auch eine Rennschnecke.&lt;br /&gt;
--&amp;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;br /&gt;
&lt;br /&gt;
==== Felix S. ====&lt;br /&gt;
&amp;quot;abhängig von ihrer Maximalgeschwindigkeit&amp;quot; verwirrte mehrmals Teilnehmer. Mathematischen Bezug/Verfahren hinschreiben bzw. erst mal auf das Kriechen konzentrieren.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java_Aufgaben]]&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Maschinenprogramm&amp;diff=11020</id>
		<title>Maschinenprogramm</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Maschinenprogramm&amp;diff=11020"/>
		<updated>2008-07-28T11:55:54Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: Die Seite wurde neu angelegt: Ein Maschinenprogramm ist eine Programm in binärer schreibweise und direkt durch die Hardware interpretierbar.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein Maschinenprogramm ist eine Programm in binärer schreibweise und direkt durch die Hardware interpretierbar.&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=TechGI_2_f%C3%BCr_TI_(Bachelor)&amp;diff=10982</id>
		<title>TechGI 2 für TI (Bachelor)</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=TechGI_2_f%C3%BCr_TI_(Bachelor)&amp;diff=10982"/>
		<updated>2008-05-27T09:51:06Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: GHDL und VHDL Simili geadded&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TechGI 2 - Praktikum==&lt;br /&gt;
&#039;&#039;&#039;Technische Grundlagen der Informatik 2 - Praktikum&#039;&#039;&#039; ist ein begleitendes Modul zum [[TechGI_2_(Bachelor)]] für Technische Informatiker (im Bechalor System).&lt;br /&gt;
===Organisatorisches===&lt;br /&gt;
Die Lehrveranstaltung wird vom [http://manga.rt.cs.tu-berlin.de/ Fachgebiet Rechnertechnologie] angeboten. Es besteht ausschließlich aus Übungen im kleingruppen in dem VHDL vorgestellt wird und Schaltungen entworfen werden. Dabei ist das Schwehrpunkt die Sprache [[WikiPedia:VHDL|VHDL]], beim Schaltungen wird auf dem wissen aus [[TechGI_1_(Bachelor)]] basiert.&lt;br /&gt;
In diesem Veranstaltung ist ein unbenoteter Schein zu erwerben anhand der in Kleingruppen erbrahten Leistungen mit mündlichen Rucksprache beim Übungsleiter. Zu den Leistungen gehört das Entwurf von Schaltungen im VHDL sowie das erarbeiten von verschiedenen Theorieaufgaben.&lt;br /&gt;
===Entwurf elektronischer Schaltungen===&lt;br /&gt;
Zeil des Veranstaltungs ist es ein Überblick beim Studiereneden zu schaffen über dem Entwurf von Hardware mit Unterschtützung von Profesionellen Simulationssoftware. Dazu gehört auch das Simulieren und Testen von dem entworfenen Bausteinen.&lt;br /&gt;
===VHDL===&lt;br /&gt;
Zum entwurd von Hardware wird die gängige Hardwarebeschreibungssprache [[WikiPedia:VHDL|VHDL]] genutzt. Es ist ein internationaler Standart und somit ist die Sprache auch sehr gut an mehreren Stellen dokumentiert. Zum Lehrveranstaltung wird ein begleitendes Buch im elektronischer Form zur verfügung gestellt. Es gibt noch weitere empfehlenswerte Positionen im Universitätsbibliothek.&lt;br /&gt;
==Arbeitsumgebung==&lt;br /&gt;
===ModelSim===&lt;br /&gt;
Als Arbeitsumgebung wird [http://www.model.com/ ModelSim] genutzt. Es ist eine Professionelle Arbeitsumgebung mit hohen Leistusngsfächigkeit. Es gibt versionen für meiste gängige Betriebssysteme.&lt;br /&gt;
Es ist im ZRZ-Netz auf Sun-Rechner verfügbar. Dazu bietet das Unternehmen noch Studentenversionen mit Lizensen für 180 Tage (die man aber ohne weiteres verlängern kann falls nötig). Leider ist diese Version nur für Windowsumgebung verfügbar. Man muss dabei beachten beim Downloaden nicht die Evaluationsversion zu unterladen und dazu unabhängig die Studentenlizenz, sondern das ganze Program sich gleich über den [http://www.model.com/resources/student_edition/download.asp Studentenprogram] zu besorgen.&lt;br /&gt;
Wie man mit dem Program arbeitet wird im Übung vorgestellt.&lt;br /&gt;
===Laufanweisungen für Linux===&lt;br /&gt;
Es gibt mehrere Möglichkeiten die Studentenversion vom ModelSim unter Linux zu laufen.&lt;br /&gt;
====Wine====&lt;br /&gt;
TODO: Es ist mir gelungen ModelSim unter Wine zum laufen zu kriegen. Irgendwie nutzte ich diese Option aber nicht mehr. Also was musste schiefgelaufen haben, bzw. ich habe einfach damals noch die falsche Version untergeladet und daswegen aufgegeben. Also mutig probieren und hier anweisungen einfügen.&lt;br /&gt;
====Virtual Machine====&lt;br /&gt;
Eine Möglichkeit ist es, eine Windows Virtual-Machine zu einrichten und dadraf ModelSim zu laufen. Es geht auf modernen Rechnern recht schnell. Windows kann man sich frei über [[MSDNAA]] besorgen, also es sollte auch nicht das Problem sein. Freies Desktopvirtualisationsoftware gibt es für Linux auch genüg, z.B. KVM (bzw. QEMU), VMWare Server und VirtualBox.&lt;br /&gt;
====X-Weiterleitung vom CS-Netz====&lt;br /&gt;
Man kann auch versuchen sich zum CS-Netz mit SSH zu verbinden und die X-Session weiterzuleiten. Die genauen Anweisugen stehen in dem Artikel über [[SSH]] zur verfügung. Es wird aber eine (sehr) schnelle und stabile Internetverbindung benötigt. Die Nachteile sind natürlich vor allem dass man dem zugriff auf Dateien nicht offline hat.&lt;br /&gt;
====Alternative: GHDL/GTKWave====&lt;br /&gt;
Eine Alternative für ModelSim ist der freie gcc-basierende VHDL-Simulator [http://ghdl.free.fr/ GHDL].&lt;br /&gt;
Er ist in den Paketquellen aller größeren Distributionen (Ubuntu, Gentoo :) ) und unterstützt VHDL87 und VHDL93 nahezu perfekt. Dazu erzeugt er Binaries der VHDL-Quellcodes, mit denen Waveform-Files (.vcd) erstellt werden können, die ihrerseits z.B. in [http://home.nc.rr.com/gtkwave/ GTKWave] begutachtet werden können. Editiert können die VHDL Files z.B. mit Kate (über settings ist ein VHDL-Syntax Highlighting aktivierbar).&lt;br /&gt;
Beispiele wie GHDL/GTKWave verwendet werden findet man z.B. [http://fpgalibre.sourceforge.net/ingles.html#tp18 hier], auf Anfrage kann ich auch ein kleines Tutorial zusammenbauen.&lt;br /&gt;
Das Vorführen mit GTKWave/GHDL wurde (zumindest bei mir) problemlos akzeptiert.&lt;br /&gt;
====Alternative 2: VHDL Simili====&lt;br /&gt;
[http://www.symphonyeda.com/products.htm VHDL-Simili] ist ein kommerzieller VHDL-Simulator inkl. Waveform-Interface, der ModelSim _sehr_ ähnlich sieht. Die GUI basiert auch auf dem hässlichen TKL/TK, hat einen eigenen Quelltext-Editor mit Syntax Highlighting. Er ist in einer Speziellen Free-Version für Windows und Linux ohne Anmeldung kostenlos herunterladbar. Allerdings ist die Free-Version von der Leistung und Funktionsumfang eingeschränkt (Sollte für TechGI 2 Praktikum aber ausreichen) und die mitgelieferte Lizenz nur bis Oktober 2008 gültig (Stand Mai 08). Jedoch ist es gut Möglich, dass eine kostenlose Lizenzverlängerung der Free-Version bis dahin zur Verfügung gestellt wird.&lt;br /&gt;
[[Kategorie: Lehrveranstaltungen]]&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/C%C3%A4sar-Chiffre&amp;diff=7322</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=7322"/>
		<updated>2008-04-10T10:41:54Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: &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;
== 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.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/MathematischeMethoden&amp;diff=9771</id>
		<title>Javakurs/Übungsaufgaben/MathematischeMethoden</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/MathematischeMethoden&amp;diff=9771"/>
		<updated>2008-04-09T15:51:35Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: /* Kommentare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Folgenden wollen wir einige (mathematische)-Methoden programmieren.&lt;br /&gt;
&lt;br /&gt;
* Lege eine neue Klasse &amp;quot;MatheAufgabe&amp;quot; an.&lt;br /&gt;
* Füge eine &amp;lt;code&amp;gt;public static void main(String[] arguments)&amp;lt;/code&amp;gt; Methode hinzu.&lt;br /&gt;
* Deklariere innerhalb der &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;-Methode eine &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt;-Variable.&lt;br /&gt;
* Belege diese Variable dem Wert &amp;lt;code&amp;gt;5.0/3.0&amp;lt;/code&amp;gt; und gib den Inhalt der Variable auf dem Bildschirm aus.&lt;br /&gt;
* Schreibe nun eine Methode &amp;lt;code&amp;gt;public static double add(double x, double y)&amp;lt;/code&amp;gt;, die die Summe der beiden übergebenen Zahlen &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; zurückgibt.&lt;br /&gt;
** Teste deine Methode mit verschiedenen Eingaben wie z.B.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println( &amp;quot; 1.0 + 2.0 = &amp;quot; + add ( 1.0 , 2.0 ) );&lt;br /&gt;
double x = 5.0;&lt;br /&gt;
System.out.println( &amp;quot; &amp;quot; + x + &amp;quot; + 2.0 = &amp;quot; + add ( x , 2.0 ) );&lt;br /&gt;
System.out.println( &amp;quot; 2.0 + &amp;quot; + x + &amp;quot; = &amp;quot; + add ( 2.0 , x ) );&lt;br /&gt;
x = add ( x , 2.0 );&lt;br /&gt;
System.out.println( x );&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Schreibe nun eine Methode &amp;lt;code&amp;gt;sub&amp;lt;/code&amp;gt;, welche die Differenz zweier übergebener Werte zurückgibt.&lt;br /&gt;
** Teste deine Methode wie eben!&lt;br /&gt;
** Überprüfe, ob x == ( x - y ) + y gilt! (natürlich mit deinen &amp;lt;code&amp;gt;sub&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;add&amp;lt;/code&amp;gt;-Modthoden)&lt;br /&gt;
* Schreibe nun eine &amp;lt;code&amp;gt;mul&amp;lt;/code&amp;gt;-Methode für &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Benutze dazu nicht den operator *, sondern die Addition (+).&lt;br /&gt;
** Teste deine Methode wie eben!&lt;br /&gt;
* Schreibe nun eine &amp;lt;code&amp;gt;public static double pow ( double basis, int exponent )&amp;lt;/code&amp;gt;, die &amp;lt;code&amp;gt;basis&amp;lt;/code&amp;gt; hoch &amp;lt;code&amp;gt;exponent&amp;lt;/code&amp;gt; zurückgibt. &amp;lt;code&amp;gt;pow( 2,3 )&amp;lt;/code&amp;gt; wurde z.B. 2^3=8 zurückgeben.&lt;br /&gt;
** Benutze auch hier weder *, noch Math.pow(). Nutze stattdessen deine gerade geschriebene mul-Methode.&lt;br /&gt;
** Teste deine Methode wie gehabt!&lt;br /&gt;
**: Was liefert deine Methode wenn der Exponent 0 ist?&lt;br /&gt;
**: Was liefert deine Methode wenn der Exponent negativ ist?&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;br /&gt;
&lt;br /&gt;
&amp;quot;Füge eine public static void main(Strings[] arguments) Methode hinzu.&amp;quot; &amp;lt;-- Das muss&lt;br /&gt;
&amp;quot;Füge eine public static void main(String[] arguments) Methode hinzu.&amp;quot; heißen!&lt;br /&gt;
&lt;br /&gt;
: Änder es ruhig. Nun hab ich&#039;s aber schon gemacht. -- [[Benutzer:Buchholz|Robert Buchholz]]&lt;br /&gt;
&lt;br /&gt;
   Meine geschriebene mul-Methode kann ich nicht zum Schreiben dieser pow-Methode --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:	public static double pow ( double basis, int exponent) {&lt;br /&gt;
::		double powProduct = 1.0;&lt;br /&gt;
::		for (int i=0; i&amp;lt;exponent; i=i+1) {&lt;br /&gt;
:::			powProduct = mul(powProduct,basis);&lt;br /&gt;
::		}&lt;br /&gt;
::		return powProduct;&lt;br /&gt;
:	}&lt;br /&gt;
&lt;br /&gt;
   benutzt werden, da die mul-Methode als Eingabeparameter int erwartet.&lt;br /&gt;
   Wie soll diese Aufgabe gelöst werden?&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/MathematischeMethoden&amp;diff=9770</id>
		<title>Javakurs/Übungsaufgaben/MathematischeMethoden</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/MathematischeMethoden&amp;diff=9770"/>
		<updated>2008-04-09T15:49:02Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: /* Kommentare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Folgenden wollen wir einige (mathematische)-Methoden programmieren.&lt;br /&gt;
&lt;br /&gt;
* Lege eine neue Klasse &amp;quot;MatheAufgabe&amp;quot; an.&lt;br /&gt;
* Füge eine &amp;lt;code&amp;gt;public static void main(String[] arguments)&amp;lt;/code&amp;gt; Methode hinzu.&lt;br /&gt;
* Deklariere innerhalb der &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;-Methode eine &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt;-Variable.&lt;br /&gt;
* Belege diese Variable dem Wert &amp;lt;code&amp;gt;5.0/3.0&amp;lt;/code&amp;gt; und gib den Inhalt der Variable auf dem Bildschirm aus.&lt;br /&gt;
* Schreibe nun eine Methode &amp;lt;code&amp;gt;public static double add(double x, double y)&amp;lt;/code&amp;gt;, die die Summe der beiden übergebenen Zahlen &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; zurückgibt.&lt;br /&gt;
** Teste deine Methode mit verschiedenen Eingaben wie z.B.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println( &amp;quot; 1.0 + 2.0 = &amp;quot; + add ( 1.0 , 2.0 ) );&lt;br /&gt;
double x = 5.0;&lt;br /&gt;
System.out.println( &amp;quot; &amp;quot; + x + &amp;quot; + 2.0 = &amp;quot; + add ( x , 2.0 ) );&lt;br /&gt;
System.out.println( &amp;quot; 2.0 + &amp;quot; + x + &amp;quot; = &amp;quot; + add ( 2.0 , x ) );&lt;br /&gt;
x = add ( x , 2.0 );&lt;br /&gt;
System.out.println( x );&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Schreibe nun eine Methode &amp;lt;code&amp;gt;sub&amp;lt;/code&amp;gt;, welche die Differenz zweier übergebener Werte zurückgibt.&lt;br /&gt;
** Teste deine Methode wie eben!&lt;br /&gt;
** Überprüfe, ob x == ( x - y ) + y gilt! (natürlich mit deinen &amp;lt;code&amp;gt;sub&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;add&amp;lt;/code&amp;gt;-Modthoden)&lt;br /&gt;
* Schreibe nun eine &amp;lt;code&amp;gt;mul&amp;lt;/code&amp;gt;-Methode für &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Benutze dazu nicht den operator *, sondern die Addition (+).&lt;br /&gt;
** Teste deine Methode wie eben!&lt;br /&gt;
* Schreibe nun eine &amp;lt;code&amp;gt;public static double pow ( double basis, int exponent )&amp;lt;/code&amp;gt;, die &amp;lt;code&amp;gt;basis&amp;lt;/code&amp;gt; hoch &amp;lt;code&amp;gt;exponent&amp;lt;/code&amp;gt; zurückgibt. &amp;lt;code&amp;gt;pow( 2,3 )&amp;lt;/code&amp;gt; wurde z.B. 2^3=8 zurückgeben.&lt;br /&gt;
** Benutze auch hier weder *, noch Math.pow(). Nutze stattdessen deine gerade geschriebene mul-Methode.&lt;br /&gt;
** Teste deine Methode wie gehabt!&lt;br /&gt;
**: Was liefert deine Methode wenn der Exponent 0 ist?&lt;br /&gt;
**: Was liefert deine Methode wenn der Exponent negativ ist?&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;br /&gt;
&lt;br /&gt;
&amp;quot;Füge eine public static void main(Strings[] arguments) Methode hinzu.&amp;quot; &amp;lt;-- Das muss&lt;br /&gt;
&amp;quot;Füge eine public static void main(String[] arguments) Methode hinzu.&amp;quot; heißen!&lt;br /&gt;
&lt;br /&gt;
: Änder es ruhig. Nun hab ich&#039;s aber schon gemacht. -- [[Benutzer:Buchholz|Robert Buchholz]]&lt;br /&gt;
&lt;br /&gt;
   Meine geschriebene mul-Methode kann ich nicht zum Schreiben dieser pow-Methode --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:	public static double pow ( double basis, int exponent) {&lt;br /&gt;
::		double powProduct = 1.0;&lt;br /&gt;
::		for (int i=0; i&amp;lt;exponent; i=i+1) {&lt;br /&gt;
:::			powProduct = mul(powProduct,basis);&lt;br /&gt;
::		}&lt;br /&gt;
::		return powProduct;&lt;br /&gt;
:	}&lt;br /&gt;
&lt;br /&gt;
   benutzt werrden, da die mul-Methode als Eingabeparameter int erwartet.&lt;br /&gt;
   Wie soll diese Aufgabe gelöst werden?&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2008/Tutorenportal&amp;diff=10837</id>
		<title>Javakurs2008/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2008/Tutorenportal&amp;diff=10837"/>
		<updated>2008-04-08T12:35:08Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: /* 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)                    &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/--)                    &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/-)                    &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)                    &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)                    &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)                     &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)                         &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)                         &amp;lt;!-- Hier Tutanden für FR5539 eintragen--&amp;gt;10&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/-)                        &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;
== 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.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Methoden&amp;diff=9789</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=9789"/>
		<updated>2008-04-08T09:28:50Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: /* Fehler? */&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;
	static void ausgabe ( int i, String string ) {&lt;br /&gt;
		System.out.println( i + &amp;quot;: &amp;quot; + string );&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&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;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Methoden&amp;diff=9788</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=9788"/>
		<updated>2008-04-08T09:27:43Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: /* Robert */&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;
	static void ausgabe ( int i, String string ) {&lt;br /&gt;
		System.out.println( i + &amp;quot;: &amp;quot; + string );&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&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;
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&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2008/Tutorenportal&amp;diff=10832</id>
		<title>Javakurs2008/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2008/Tutorenportal&amp;diff=10832"/>
		<updated>2008-04-08T08:55:05Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: /* 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)                    &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)                    &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)                    &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)                    &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;
 | &#039;&#039;&#039;Notebookraum B&#039;&#039;&#039;&lt;br /&gt;
 | Mo (15/3)                    &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)                     &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)                         &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/-)                         &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;
 | Emerge The Gimp. But the Gimp&#039;s Masked! Well, ACCEPT_KEYWORD....&lt;br /&gt;
 | Mo (7/4)                         &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;
== 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.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2008/Tutorenportal&amp;diff=10829</id>
		<title>Javakurs2008/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2008/Tutorenportal&amp;diff=10829"/>
		<updated>2008-04-07T14:02:02Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: /* 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;
 | 10                    &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;
 | 21                    &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;
 |&lt;br /&gt;
 | 11(Vormittag), 9(Nachmittag)                    &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;
 |                     &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;
 | &#039;&#039;&#039;Notebookraum B&#039;&#039;&#039;&lt;br /&gt;
 | 14(Vormittag), 3(Nachmittag)                    &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;
 |                          &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;
 |                          &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;
 | 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;
 | Emerge The Gimp. But the Gimp&#039;s Masked! Well, ACCEPT_KEYWORD....&lt;br /&gt;
 | Vormittag: 7, Nachmittag: 4                         &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;
== 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.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Wetterstation&amp;diff=9823</id>
		<title>Javakurs/Übungsaufgaben/Wetterstation</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Wetterstation&amp;diff=9823"/>
		<updated>2007-04-13T10:11:00Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Aufgabe ===&lt;br /&gt;
&lt;br /&gt;
Eine Wetterstation hat für 14 Tage folgende Temperaturwerte aufgenommen.&lt;br /&gt;
	 	 &lt;br /&gt;
 Tag:        01 02 03 04 05 06 07 08 09 10 11 12 13 14&lt;br /&gt;
 Temperatur: 12 14  9 12 15 16 15 15 11  8 13 13 15 12&lt;br /&gt;
	 &lt;br /&gt;
# Speichere die folgende Tabelle mit einem geeigneten Datentyp.&lt;br /&gt;
# Schreibe ein Programm, welches die Durchschnittstemperatur für die zwei Wochen bestimmt.&lt;br /&gt;
# Schreibe ein Programm, welches die maximale und minimale Temperatur ausgibt.&lt;br /&gt;
# Schreibe ein Programm, welches die beiden aufeinanderfolgenden Tage angeben kann, an denen es den größten Temperaturumschwung gab.&lt;br /&gt;
# Schreibe ein Programm, welches die Tabelle schön tabellarisch auf der Konsole ausgibt.&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;
==== Felix S. ====&lt;br /&gt;
Verwirrend fuer viele war, dass die Zahlen von 01-08 angegeben sind, weil man damit im Oktalsystem Probleme bekommt. Zudem waere es vielleicht einfacher, wenn der Tag wie ein Array bei 0 beginnt.&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.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/MathematischeMethoden&amp;diff=9765</id>
		<title>Javakurs/Übungsaufgaben/MathematischeMethoden</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/MathematischeMethoden&amp;diff=9765"/>
		<updated>2007-04-11T09:28:09Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Folgenden wollen wir einige (mathematische)-Methoden programmieren.&lt;br /&gt;
&lt;br /&gt;
* Lege eine neue Klasse &amp;quot;MatheAufgabe&amp;quot; an.&lt;br /&gt;
* Füge eine &amp;lt;code&amp;gt;public static void main(String[] arguments)&amp;lt;/code&amp;gt; Methode hinzu.&lt;br /&gt;
* Deklariere innerhalb der &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;-Methode eine &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt;-Variable.&lt;br /&gt;
* Belege diese Variable dem Wert &amp;lt;code&amp;gt;5.0/3.0&amp;lt;/code&amp;gt; und gib den Inhalt der Variable auf dem Bildschirm aus.&lt;br /&gt;
* Schreibe nun eine Methode &amp;lt;code&amp;gt;public static double add(double x, double y)&amp;lt;/code&amp;gt;, die die Summe der beiden übergebenen Zahlen &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; zurückgibt.&lt;br /&gt;
** Teste deine Methode mit verschiedenen Eingaben wie z.B.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(&amp;quot; 1.0 + 2.0 = &amp;quot; + add ( 1.0 , 2.0 ) );&lt;br /&gt;
double x = 5.0;&lt;br /&gt;
System.out.println( &amp;quot; &amp;quot; + x + &amp;quot; + 2.0 = &amp;quot; + add ( x , 2.0) );&lt;br /&gt;
System.out.println( &amp;quot; 2.0 + &amp;quot; + x + &amp;quot; = &amp;quot; + add ( 2.0 , x) );&lt;br /&gt;
x = add ( x , 2.0);&lt;br /&gt;
System.out.println( x);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Schreibe nun eine Methode &amp;lt;code&amp;gt;sub&amp;lt;/code&amp;gt;, welche die Differenz zweier übergebener Werte zurückgibt.&lt;br /&gt;
** Teste deine Methode wie eben!&lt;br /&gt;
** Überprüfe, ob x == (x - y ) + y gilt! (natürlich mit deinen &amp;lt;code&amp;gt;sub&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;add&amp;lt;/code&amp;gt;-Modthoden)&lt;br /&gt;
* Schreibe nun eine &amp;lt;code&amp;gt;mul&amp;lt;/code&amp;gt;-Methode.&lt;br /&gt;
** Benutze dazu nicht den operator *. Rufe statt dessen deine add-Methode auf.&lt;br /&gt;
** Teste deine Methode wie eben!&lt;br /&gt;
* Schreibe nun eine &amp;lt;code&amp;gt;public static double pow ( double basis, int exponent)&amp;lt;/code&amp;gt;, die &amp;lt;code&amp;gt;basis&amp;lt;/code&amp;gt; hoch &amp;lt;code&amp;gt;exponent&amp;lt;/code&amp;gt; zurückgibt. &amp;lt;code&amp;gt;pow(2,3)&amp;lt;/code&amp;gt; wurde z.B. 2^3=8 zurückgeben.&lt;br /&gt;
** Benutze auch hier weder *, noch Math.pow(). Nutze statt dessen deine gerade geschriebene mul-Methode.&lt;br /&gt;
** Teste deine Methode wie gehabt!&lt;br /&gt;
**: Was liefert deine Methode wenn der Exponent 0 ist?&lt;br /&gt;
**: Was liefert deine Methode wenn der Exponent negativ ist?&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;br /&gt;
&lt;br /&gt;
&amp;quot;Füge eine public static void main(Strings[] arguments) Methode hinzu.&amp;quot; &amp;lt;-- Das muss&lt;br /&gt;
&amp;quot;Füge eine public static void main(String[] arguments) Methode hinzu.&amp;quot; heißen!&lt;br /&gt;
&lt;br /&gt;
: Änder es ruhig. Nun hab ich&#039;s aber schon gemacht. -- [[Benutzer:Buchholz|Robert Buchholz]]&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/MathematischeMethoden&amp;diff=9763</id>
		<title>Javakurs/Übungsaufgaben/MathematischeMethoden</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/MathematischeMethoden&amp;diff=9763"/>
		<updated>2007-04-11T08:52:19Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: /* Kommentare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Folgenden wollen wir einige (mathematische)-Methoden programmieren.&lt;br /&gt;
&lt;br /&gt;
* Lege eine neue Klasse &amp;quot;MatheAufgabe&amp;quot; an.&lt;br /&gt;
* Füge eine &amp;lt;code&amp;gt;public static void main(Strings[] arguments)&amp;lt;/code&amp;gt; Methode hinzu.&lt;br /&gt;
* Deklariere innerhalb der &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;-Methode eine &amp;lt;code&amp;gt;double&amp;lt;/code&amp;gt;-Variable.&lt;br /&gt;
* Belege diese Variable dem Wert &amp;lt;code&amp;gt;5/3&amp;lt;/code&amp;gt; und gib den Inhalt der Variable auf dem Bildschirm aus.&lt;br /&gt;
* Schreibe nun eine Methode &amp;lt;code&amp;gt;public static double add(double x, double y)&amp;lt;/code&amp;gt;, die die Summe der beiden übergebenen Zahlen &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; zurückgibt.&lt;br /&gt;
** Teste deine Methode mit verschiedenen Eingaben wie z.B.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(&amp;quot; 1.0 + 2.0 = &amp;quot; + add ( 1.0 , 2.0 ) );&lt;br /&gt;
double x = 5.0;&lt;br /&gt;
System.out.println( &amp;quot; &amp;quot; + x + &amp;quot; + 2.0 = &amp;quot; + add ( x , 2.0) );&lt;br /&gt;
System.out.println( &amp;quot; 2.0 + &amp;quot; + x + &amp;quot; = &amp;quot; + add ( 2.0 , x) );&lt;br /&gt;
x = add ( x , 2.0);&lt;br /&gt;
System.out.println( x);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Schreibe nun eine Methode &amp;lt;code&amp;gt;sub&amp;lt;/code&amp;gt;, welche die Differenz zweier übergebener Werte zurückgibt.&lt;br /&gt;
** Teste deine Methode wie eben!&lt;br /&gt;
** Überprüfe, ob x == (x - y ) + y gilt! (natürlich mit deinen &amp;lt;code&amp;gt;sub&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;add&amp;lt;/code&amp;gt;-Modthoden)&lt;br /&gt;
* Schreibe nun eine &amp;lt;code&amp;gt;mul&amp;lt;/code&amp;gt;-Methode.&lt;br /&gt;
** Benutze dazu nicht den operator *. Rufe statt dessen deine add-Methode auf.&lt;br /&gt;
** Teste deine Methode wie eben!&lt;br /&gt;
* Schreibe nun eine &amp;lt;code&amp;gt;public static double pow ( double basis, int exponent)&amp;lt;/code&amp;gt;, die &amp;lt;code&amp;gt;basis&amp;lt;/code&amp;gt; hoch &amp;lt;code&amp;gt;exponent&amp;lt;/code&amp;gt; zurückgibt. &amp;lt;code&amp;gt;pow(2,3)&amp;lt;/code&amp;gt; wurde z.B. 2^3=8 zurückgeben.&lt;br /&gt;
** Benutze auch hier weder *, noch Math.pow(). Nutze statt dessen deine gerade geschriebene mul-Methode.&lt;br /&gt;
** Teste deine Methode wie gehabt!&lt;br /&gt;
**: Was liefert deine Methode wenn der Exponent 0 ist?&lt;br /&gt;
**: Was liefert deine Methode wenn der Exponent negativ ist?&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;
&amp;quot;Füge eine public static void main(Strings[] arguments) Methode hinzu.&amp;quot; &amp;lt;-- Das muss&lt;br /&gt;
&amp;quot;Füge eine public static void main(String[] arguments) Methode hinzu.&amp;quot; heißen!&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Basisveranstaltung&amp;diff=9290</id>
		<title>Basisveranstaltung</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Basisveranstaltung&amp;diff=9290"/>
		<updated>2007-04-03T10:48:02Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: neu und verbessert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Was sind Basisveranstaltungen?==&lt;br /&gt;
&lt;br /&gt;
Basisveranstaltung sind Vorlesungen im Hauptstudium des Studiengangs Informatik (Dipl.). Diese sollen die Grundlagen innerhalb eines Fachgebietes vermitteln und dem Studenten einen Überblick über den Inhalt des Fachgebiets geben.&lt;br /&gt;
Im [[Hauptstudium]] sind mindestens 4, maximal 6 Basisveranstaltungen zu belegen. Davon muessen wenigstens 3 aus dem [[Katalog A]] sein.&lt;br /&gt;
&lt;br /&gt;
==Liste von Basisveranstaltungen==&lt;br /&gt;
&lt;br /&gt;
(Erhebt keinen Anspruch auf Korrektheit und Vollständigkeit. Die Stichwortsuche des [[Vorlesungsverzeichnis]] hilft hier weiter)&lt;br /&gt;
&lt;br /&gt;
====Katalog A====&lt;br /&gt;
&lt;br /&gt;
* [[Grundlagen der Informationsmodellierung]] (SS)&lt;br /&gt;
* [[Semantik und Kalkül]] (SS)&lt;br /&gt;
* [[Entwurfsautomatisierung digitaler Systeme]] (SS)&lt;br /&gt;
* [[Algebraische Prozesskalküle]] (SS)&lt;br /&gt;
* [[Verteilte Systeme]] (SS)&lt;br /&gt;
* [[Softwaretechnik]] (WS/SS)&lt;br /&gt;
&lt;br /&gt;
* [[Telekommunikationsnetze]]&lt;br /&gt;
* [[Programmiersprachen und -systeme]] (WS/SS)&lt;br /&gt;
* [[Betriebssysteme]] (WS)&lt;br /&gt;
* [[Kommunikationsnetze]] (WS)&lt;br /&gt;
* [[Rechnersysteme]] (WS)&lt;br /&gt;
* [[Information Rules]] (WS)&lt;br /&gt;
* [[Angewandte Informatik und Arbeit]] (SS)&lt;br /&gt;
&lt;br /&gt;
====Katalog B====&lt;br /&gt;
&lt;br /&gt;
* [[Maschinelles Lernen]] (SS)&lt;br /&gt;
* [[Grundlagen der Systemanalyse]] (SS)&lt;br /&gt;
* [[Computer Graphics / Computer Vision]] (SS)&lt;br /&gt;
* [[Grundlagen der Künstlichen Intelligenz]] (WS)&lt;br /&gt;
* [[Eingebettete Echtzeitsysteme]] (WS)&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* [http://iv.tu-berlin.de/teaching/StudBeratung/informatik/BasisSS07_Katalog.pdf Basisveranstaltungen im SS07 (Studienberatung)]&lt;br /&gt;
* [http://iv.tu-berlin.de/teaching/StudBeratung/informatik/informatikbasis.html Liste aller Basisveranstaltungen (Studienberatung)]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Fakultäts-ABC]]&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Opal_f%C3%BCr_Linux/Unix&amp;diff=2232</id>
		<title>Opal für Linux/Unix</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Opal_f%C3%BCr_Linux/Unix&amp;diff=2232"/>
		<updated>2007-01-16T14:34:09Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier gibt es fertige Pakete für die gängigsten Linux-Distributionen und andere Unix-Derivate. Wenn ihr Linux verwenden wollt und falls ihr Linux noch nicht auf eurem Rechner installiert habt, könnt ihr einfach [[Opalix]] verwenden, es liefert euch eine komplette Linuxumgebung, ohne es dauerhaft installieren zu müssen. &lt;br /&gt;
&lt;br /&gt;
Falls ihr eine Distribution einsetzt, die hier nicht aufgeführt ist, und gerne ein Paket kompilieren würdet, euch aber nicht so ganz sicher seid, wie das geht, dann wendet euch an [mailto:opalix@freitagsrunde.org opalix@freitagsrunde.org]. Wir helfen euch gerne!&lt;br /&gt;
&lt;br /&gt;
Allerdings muss man leider auch anmerken, dass der Opal-Buildprozess sehr schlecht organisiert ist. So wird z.B. nicht zwischen Kompilation- und Installationsphase unterschieden und die generierten Scripte unterstützen DESTDIR nicht, was aber eigentlich eine zwingende Voraussetzung für ein vernünftiges Packaging in den Distributionen ist. Diese Probleme machen es nicht einfach, Pakete zu erstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hinweis zum Selber-Kompilieren =&lt;br /&gt;
&lt;br /&gt;
Mit aktuellen gcc/glibc-Versionen (&amp;gt;=4.0) kompiliert OPAL &amp;lt;= 2.3j nicht mehr, da eine obsolete Funktion entfernt wurde. Ab Version 2.3k funktioniert es wieder.&lt;br /&gt;
&lt;br /&gt;
Dirk Reckmann und Stephan Frank (ÜBB Gruppe), haben uns einen [http://opalix.freitagsrunde.org/rpm/patches/CLK_TCK.patch Patch] für die älteren Quellen zum Übersetzen des OCS mit gcc 4.1 zur Verfügung gestellt.&lt;br /&gt;
Diesen könnt ihr einfach einspielen durch:&lt;br /&gt;
 cd &amp;lt;OPAL_UNPACK_DIRECTORY&amp;gt;/ocs&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;wget http://opalix.freitagsrunde.org/rpm/patches/CLK_TCK.patch&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 patch -p0 &amp;lt; CLK_TCK.patch&lt;br /&gt;
&lt;br /&gt;
= SuSE =&lt;br /&gt;
Das Paket installiert OPAL nach &amp;lt;code&amp;gt;/opt/ocs&amp;lt;/code&amp;gt;. Damit ihr &amp;lt;code&amp;gt;oasys&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;ocs&amp;lt;/code&amp;gt; benutzen könnt, müsst ihr die folgende Zeile in die Datei &amp;lt;code&amp;gt;$HOME/.bashrc&amp;lt;/code&amp;gt; eintragen:&lt;br /&gt;
&lt;br /&gt;
    export PATH=/opt/ocs/bin:$PATH &lt;br /&gt;
&lt;br /&gt;
==Aktuelle Versionen==&lt;br /&gt;
Unsere Pakete für aktuelle Versionen von SuSE (siehe auch [[Opal_f%C3%BCr_Linux#C_Compiler_fehlt | Bekannte Probleme/Lösungen]] weiter unten).&lt;br /&gt;
&lt;br /&gt;
* SuSE 10.1: [http://opalix.freitagsrunde.org/rpm/opal-2.3j-1.i386.suse10.1.rpm opal-2.3j-1.i386.suse10.1.rpm] ([http://opalix.freitagsrunde.org/rpm/MD5SUMS Prüfsumme])&lt;br /&gt;
* SuSE 10.0: [http://opalix.freitagsrunde.org/rpm/opal-2.3j-1.i386.suse10.0.rpm opal-2.3j-1.i386.suse10.0.rpm] ([http://opalix.freitagsrunde.org/rpm/MD5SUMS Prüfsumme])&lt;br /&gt;
&lt;br /&gt;
== Alte Versionen ==&lt;br /&gt;
Zusätzlich zu den Paketen für aktuelle SuSE Versionen gibt es auch noch Pakete für ältere Versionen auf dem Server.&lt;br /&gt;
&lt;br /&gt;
* SuSE 9.2: [http://opalix.freitagsrunde.org/rpm/opal-2.3j-1.i586.suse9.2.rpm opal-2.3j-1.i586.suse9.2.rpm] ([http://opalix.freitagsrunde.org/rpm/MD5SUMS Prüfsumme])&lt;br /&gt;
* SuSE 9.1: [http://opalix.freitagsrunde.org/rpm/opal-2.3j-1.i386.rpm opal-2.3j-1.i386.rpm] ([http://opalix.freitagsrunde.org/rpm/MD5SUMS Prüfsumme])&lt;br /&gt;
* SuSE 9.0: [http://opalix.freitagsrunde.org/rpm/alte_versionen/opal-2.3h-2.i686.suse9.0.rpm opal-2.3h-2.i686.suse9.0.rpm] ([http://opalix.freitagsrunde.org/rpm/alte_versionen/MD5SUMS Prüfsumme]) &lt;br /&gt;
&lt;br /&gt;
= Fedora =&lt;br /&gt;
Das Paket installiert OPAL nach &amp;lt;code&amp;gt;/opt/ocs&amp;lt;/code&amp;gt;, damit ihr an der Shell die Kommandos benutzen könnt, müsst ihr die folgende Zeile in eure &amp;lt;code&amp;gt;.bashrc&amp;lt;/code&amp;gt; eintragen:&lt;br /&gt;
&lt;br /&gt;
    export PATH=/opt/ocs/bin:$PATH &lt;br /&gt;
&lt;br /&gt;
Laut Berichten gibt es Probleme zwischen SELinux und dem Opalinterpreter oasys. Vermutlich hilft hier ein Deaktivieren von SELinux für Opal bzw. das Erstellen von korrekten Regeln.&lt;br /&gt;
* &#039;&#039;&#039;Fedora Core 6&#039;&#039;&#039;: &amp;lt;br&amp;gt; [http://opalix.freitagsrunde.org/rpm/opal-2.3j-1.fc6.i386.rpm opal-2.3j-1.fc6.i386.rpm] ([http://opalix.freitagsrunde.org/rpm/MD5SUMS Prüfsumme]) Vielen Dank an Dennis Schickhaus.&lt;br /&gt;
* &#039;&#039;&#039;Fedora Core 5&#039;&#039;&#039;: &amp;lt;br&amp;gt; [http://opalix.freitagsrunde.org/rpm/opal-2.3k-1.fc5.i386.rpm opal-2.3k-1.fc5.i386.rpm] ([http://opalix.freitagsrunde.org/rpm/MD5SUMS Prüfsumme]) Vielen Dank an Christoph Höger. &amp;lt;br&amp;gt; [http://opalix.freitagsrunde.org/rpm/opal-2.3j-1.fc5.i386.rpm opal-2.3j-1.fc5.i386.rpm] ([http://opalix.freitagsrunde.org/rpm/MD5SUMS Prüfsumme]) Vielen Dank an Dennis Schickhaus.&lt;br /&gt;
* &#039;&#039;&#039;Fedora Core 3&#039;&#039;&#039;: &amp;lt;br&amp;gt; [http://opalix.freitagsrunde.org/rpm/opal-2.3j-1.FC-3.i386.rpm opal-2.3j-1.FC-3.i386.rpm] ([http://opalix.freitagsrunde.org/rpm/MD5SUMS Prüfsumme]) Vielen Dank an Christoph Höger.&lt;br /&gt;
&lt;br /&gt;
= Andere RPM-basierte Distributionen =&lt;br /&gt;
&lt;br /&gt;
* Quellpaket: [http://opalix.freitagsrunde.org/rpm/opal-2.3j-1.src.rpm opal-2.3j-1.src.rpm] ([http://opalix.freitagsrunde.org/rpm/MD5SUMS Prüfsumme])&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr Opal auf einer anderen RPM-basierten Distribution neukompilieren wollt, könnt Ihr das SRPM-Paket benutzen. Einfach an der Shell&lt;br /&gt;
&lt;br /&gt;
    rpmbuild --rebuild --target i386 opal-2.3j-1.src.rpm &lt;br /&gt;
&lt;br /&gt;
ausführen. Ihr benötigt dabei die Pakete &amp;lt;code&amp;gt;tcl-devel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tk-devel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;xfree86-devel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;flex&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;readline-devel&amp;lt;/code&amp;gt;. Wenn ihr neue Pakete baut, wäre es nett, wenn ihr sie hier anderen zur Verfügung stellt. Sagt einfach unter [mailto:opalix@freitagsrunde.org opalix@freitagsrunde.org] Bescheid, wo sie zu finden sind.&lt;br /&gt;
&lt;br /&gt;
Alternativ könnt ihr auch das Paket komplett neu aus den Sourcen erstellen. Dazu benötigt ihr das so genannte spec-file. Falls ihr Fragen habt, wie ihr damit ein Paket kompiliert, wendet euch einfach an [mailto:opalix@freitagsrunde.org opalix@freitagsrunde.org]&lt;br /&gt;
&lt;br /&gt;
* spec file: [http://opalix.freitagsrunde.org/rpm/opal-2.3j-1.spec opal-2.3j-1.spec]&lt;br /&gt;
&lt;br /&gt;
= Debian =&lt;br /&gt;
Das Paket für Debian enthält die aktuelle Version 2.3j.&lt;br /&gt;
Es gibt ein &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; Repository, das man mit folgenden Zeilen in der Datei /etc/apt/sources.list einstellen kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://opalix.freitagsrunde.org/debian-rep ./&lt;br /&gt;
deb-src http://opalix.freitagsrunde.org/debian-rep ./&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Package heißt ocs und lässt sich mit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install ocs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
installieren.&lt;br /&gt;
Vielen Dank an Marco Ziech für seine Zeit und Mühe, das Paket und Repository zu erstellen!&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
Prinzipiell könnt ihr das [http://opalix.freitagsrunde.org/debian-rep/ocs_2.3j-1_i386.deb Paket für Debian] unter Ubuntu einsetzen. In Einzelfällen kann es zu Problemen kommen, die ein [[Opal unter Ubuntu kompilieren|Kompilieren aus den Quellen]] erforderlich machen. Generell ist das Verwenden des Pakets vorzuziehen, da das Selbst-Kompilieren nicht immer einfach ist. In jedem Fall ist es erforderlich, das Paket &amp;quot;build-essential&amp;quot; installiert zu haben.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;6.10 (Edgy Eft)&#039;&#039;&#039;: Das Paket für Debian, bezogen über das Repository, funktioniert gut. Selbstkompilieren wurde nicht getestet.&lt;br /&gt;
* &#039;&#039;&#039;6.06 (Dapper Drake)&#039;&#039;&#039;: Das Paket für Debian funktioniert definitv unter Dapper Drake. Es ist dem Selbstkompilieren vorzuziehen, da es mehrere Berichte über Compiler-Inkompatibilitäten unter Dapper Drake gibt.&lt;br /&gt;
* &#039;&#039;&#039;5.10 (Breezy Badger)&#039;&#039;&#039;: Da es anscheinend Probleme mit den Paketen von Debian unter Ubuntu 5.10 gibt, ist  hier anscheinend eine Installationen aus den Quellen nötig. Nähere Informationen findet ihr auf der Seite [[Opal unter Ubuntu kompilieren]].&lt;br /&gt;
&lt;br /&gt;
== Paket Installation ==&lt;br /&gt;
Es gibt zwei Möglichkeiten, dass Paket für Debian zu Installieren.&lt;br /&gt;
&lt;br /&gt;
Entweder man lädt das Paket manuell herunter und installiert es mit dpkg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://opalix.freitagsrunde.org/debian-rep/ocs_2.3j-1_i386.deb&lt;br /&gt;
dpkg -i ocs_2.3j-1_i386.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man wie bei Debian das Repository &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://opalix.freitagsrunde.org/debian-rep ./&lt;br /&gt;
deb-src http://opalix.freitagsrunde.org/debian-rep ./&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hinzufügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Per GUI&#039;&#039;&#039;:&lt;br /&gt;
* Startleiste -&amp;gt; System -&amp;gt; Systemverwaltung -&amp;gt; Synaptic-Paketverwaltung starte&lt;br /&gt;
* In der Synaptic-Paketverwaltung im Menu Einstellungen -&amp;gt; Paketquellen&lt;br /&gt;
* Im Paketquellen-Fenster auf hinzufügen und benutzerdefiniert anklicken&lt;br /&gt;
* Repository-Zeilen nacheinadner eintragen und FERTIG&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zu Fuß&#039;&#039;&#039;:&lt;br /&gt;
* Datei /etc/apt/source.list im Editor öffnen&lt;br /&gt;
* Repository-Zeilen (siehe oben) in die Datei eintragen und FERTIG&lt;br /&gt;
&lt;br /&gt;
Nach diesem Prozedere muß Opal noch installiert werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@ubuntulinux &amp;gt; sudo apt-get install ocs &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vielleicht muß vorher noch ein apt-get update gemacht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user@ubuntulinux &amp;gt; sudo apt-get update &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FERTIG.&lt;br /&gt;
&lt;br /&gt;
Sollte es Probleme geben, stellt bitte sicher, dass die zur Funktion notwendigen Pakete installiert sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install gcc make libc6-dev tk8.3-dev libreadline4-dev gcc flex&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
Ebuilds von Opal und der Opal-Dokumentation finden sich unter [http://user.cs.tu-berlin.de/~jensb/opal-ebuilds.tar.bz2].&lt;br /&gt;
&lt;br /&gt;
(Alternativ gibt es im Gentoo-Bugzilla ein [https://bugs.gentoo.org/show_bug.cgi?id=46379 anderes Ebuild] für den Opal-Compiler. [http://gentoo-wiki.com/HOWTO_Installing_3rd_Party_Ebuilds Dieser Link] zeigt euch, wie man es installiert.)&lt;br /&gt;
&lt;br /&gt;
Hinweis: Keines der Gentoo Ebuilds funktioniert im Moment, da das Opal-Makesystem die Sandbox verletzt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise zur Installation des Opal-Ebuilds&#039;&#039;&#039;&lt;br /&gt;
Hierbei muss das Gentoo-System angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Innerhalb von &amp;lt;code&amp;gt;/etc/make.conf&amp;lt;/code&amp;gt; ist der Eintrag der &amp;lt;code&amp;gt;PORTDIR_OVERLAY&amp;lt;/code&amp;gt;-Variable nötig. Dafür ist ein eigenes Verzeichnis zu erstellen (im Allgemeinen und im Weiteren &amp;lt;code&amp;gt;/usr/local/portage&amp;lt;/code&amp;gt;) und der Variable zuzuordnen:&lt;br /&gt;
 mkdir -m 755 /usr/local/portage&lt;br /&gt;
 echo &#039;PORTDIR_OVERLAY=&amp;quot;/usr/local/portage&amp;quot;&#039; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
&lt;br /&gt;
Unterhalb des Verzeichnisses &amp;lt;code&amp;gt;/usr/local/portage&amp;lt;/code&amp;gt; das Verzeichnis &amp;lt;code&amp;gt;dev-lang&amp;lt;/code&amp;gt; und darin die Verzeichnisse &amp;lt;code&amp;gt;opal&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;opaldoc&amp;lt;/code&amp;gt; anlegen und dann in diese beiden Verzeichnisse die nötigen Ebuilds kopieren:&lt;br /&gt;
 mkdir -m 755 /usr/local/portage/dev-lang{,/opal,/opaldoc}&lt;br /&gt;
 cp opal-2.3i.ebuild /usr/local/portage/dev-lang/opal/&lt;br /&gt;
 cp opaldoc-2.3i.ebuild /usr/local/portage/dev-lang/opaldoc/&lt;br /&gt;
&lt;br /&gt;
Da beide Ebuilds maskiert sind, sind an dieser Stelle eventuell noch weitere Schritte nötig; die Installation maskierter Ebuilds ist hier sehr gut erklärt: [http://de.gentoo-wiki.com/Masked Maskierte Ebuilds].&lt;br /&gt;
&lt;br /&gt;
Jetzt einfach:&lt;br /&gt;
 emerge opal opaldoc&lt;br /&gt;
&lt;br /&gt;
Um die neue Version von Opal (2.3&#039;&#039;j&#039;&#039;), die auch mit den neuen binutils klarkommt, zu emergen, sind folgende Schritte nötig:&lt;br /&gt;
 cd /usr/local/portage/dev-lang/opal/&lt;br /&gt;
 cp opal-2.3i.ebuild opal-2.3j.ebuild&lt;br /&gt;
 ebuild opal-2.3j.ebuild digest&lt;br /&gt;
 emerge opal&lt;br /&gt;
&lt;br /&gt;
= FreeBSD =&lt;br /&gt;
Für all die, die OCS und Opal unter FreeBSD kompilieren wollen, gibt&lt;br /&gt;
es eine kurze Anleitung unter: [http://user.cs.tu-berlin.de/~pdmef/opal/freebsd.html]; fertige Packages für 5.3-RELEASE werden bei größerer Nachfrage erstellt.&lt;br /&gt;
&lt;br /&gt;
= Bekannte Probleme/Lösungen =&lt;br /&gt;
&lt;br /&gt;
== C Compiler fehlt ==&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;: Ihr erhaltet eine Fehlermeldung, die ungefähr so aussieht:&lt;br /&gt;
&lt;br /&gt;
 checking Binom.sign&lt;br /&gt;
 checking Binom.impl&lt;br /&gt;
 compiling Binom.impl&lt;br /&gt;
 /opt/ocs/lib/oasys/ccompiler: line 17: /usr/local/bin/gcc: No such file or directory&lt;br /&gt;
 /opt/ocs/lib/oasys/ccompiler: line 17: exec: /usr/local/bin/gcc: cannot execute: No such file or directory&lt;br /&gt;
 ERROR [C compiler]: /opt/ocs/lib/oasys/ccompiler exited abnormally&lt;br /&gt;
 aborted&lt;br /&gt;
&lt;br /&gt;
Auf einigen neueren Systemen (Ubuntu 5.10, SuSE 10.0) kommt es zu noch nicht genau geklärten Problemen von OCS mit der [[WikiPedia:GNU_Compiler_Collection|Gnu Compiler Collection (gcc)]]. OCS benötigt den C Compiler (ggf. zusätzlich installiern) und kann ihn dennoch nicht finden, so dass es zu diesem Fehler kommt. Wir haben noch nicht herausgefunden, woher der Fehler genau rührt, da er nicht auf allen Systemen reproduzierbar ist, aber es gibt einen Workaround.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lösung/Workaround&#039;&#039;&#039;: Das Paket gcc installieren. Eventuell muss noch ein Symlink gesetzt werden, damit Opal den Compiler auch findet.&lt;br /&gt;
  ln -s `which gcc` /usr/local/bin/gcc # als root&lt;br /&gt;
&lt;br /&gt;
== Libraries fehlen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 $ oasys&lt;br /&gt;
 oasys version 1.1e (ocs version 2.3j), (c) 1989-2001 The OPAL Group, TU Berlin&lt;br /&gt;
 &amp;gt; a WhatsThat.sign&lt;br /&gt;
 loading WhatsThat.sign&lt;br /&gt;
 loading WhatsThat.impl&lt;br /&gt;
 &amp;gt;f WhatsThat.impl&lt;br /&gt;
 WhatsThat.impl&amp;gt;e WhatsThat(2)&lt;br /&gt;
 starting evaluator process&lt;br /&gt;
 /usr/bin/ld: crti.o: No such file: No such file or directory&lt;br /&gt;
 collect2: ld returned 1 exit status&lt;br /&gt;
 evaluator: cannot create transient shared object `/tmp/file7HXogh.so&#039; for `./OCS/WhatsThat.o&#039;&lt;br /&gt;
 connection lost&lt;br /&gt;
&lt;br /&gt;
Lösung: Paket &#039;&#039;&#039;build-essential&#039;&#039;&#039; installieren, z.B. mittels&lt;br /&gt;
 apt-get install build-essential&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Opal]]&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Umfrage&amp;diff=7848</id>
		<title>Javakurs2006/Umfrage</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Umfrage&amp;diff=7848"/>
		<updated>2006-07-17T13:15:09Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: Checkin der Fragen von Martin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Fragen für die Javakurs-Teilnehmer ==&lt;br /&gt;
&lt;br /&gt;
* Konntet Ihr anderen Teilnehmern von Info 2 mit eurem Wissen helfen?&lt;br /&gt;
* Konntet Ihr der Veranstaltung besser folgen als Mitstudenten, die  nicht am Kurs teilgenommen haben?&lt;br /&gt;
* Hat euch der Kurs beim Verstehen und Lösen der Hausaufgaben geholfen?&lt;br /&gt;
* Was ist eure allgemeine Meinung zu dem Kurs?&lt;br /&gt;
** Würdet ihr ihn noch einmal besuchen?&lt;br /&gt;
** Würdet ihr ihn weiterempfehlen?&lt;br /&gt;
&lt;br /&gt;
Welche Art, den Javakurs zu organisieren, hätte dir mehr gebracht:&lt;br /&gt;
* Jeden Tag zwei Vorträge und dazugehörige Aufgaben.&lt;br /&gt;
* Vorträge und Aufgaben sind voneinander entkoppelt, d.h. man hat so lange für die Aufgaben Zeit, wie man braucht.&lt;br /&gt;
&lt;br /&gt;
* Wie war die Stoff-Menge in der Vorlesung?&lt;br /&gt;
** Zu wenig?&lt;br /&gt;
** Genau richtig?&lt;br /&gt;
** Zu viel?&lt;br /&gt;
&lt;br /&gt;
* Wie war die Stoff-Menge in der Übung?&lt;br /&gt;
** Sollten wir eher mehr Stoff bringen? (Geplant war noch mehr)&lt;br /&gt;
*** Sollte mehr Stoff vorgetragen werden als geübt wird?&lt;br /&gt;
** War die Stoff-Menge ausreichend?&lt;br /&gt;
** Eher zu viel und wir hätten die Grundlagen noch genauer üben sollen?&lt;br /&gt;
&lt;br /&gt;
* Welchen Stoff habt ihr für Info 2 vermisst?&lt;br /&gt;
&lt;br /&gt;
* An was könnt ihr euch von den Vorträgen noch erinnern?&lt;br /&gt;
&lt;br /&gt;
* Hättet ihr Lust beim nächsten mal als Tutor mitzumachen?&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Tag_2/Vorlesung_2&amp;diff=7121</id>
		<title>Javakurs2006/Tag 2/Vorlesung 2</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Tag_2/Vorlesung_2&amp;diff=7121"/>
		<updated>2006-04-05T12:30:48Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: felix: Syntax korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Kleine Wiederholung==&lt;br /&gt;
&lt;br /&gt;
Klassen beinhalten zusammengehörige Daten und Methoden. Mit new erzeugt man Instanzen dieser Klassen. Jede Instanz kann eigene Werte der zugehörigen Daten enthalten. Ein Teil der im Quellcode dieses Textes enthaltenen Kommentare erklären Syntax und hätten in einem &amp;quot;echten&amp;quot; Programm nichts zu suchen.&lt;br /&gt;
&lt;br /&gt;
 //file: Apfel.java&lt;br /&gt;
 class Apfel {&lt;br /&gt;
     String farbe;&lt;br /&gt;
     int gewicht; //in Gramm&lt;br /&gt;
     &lt;br /&gt;
     Apfel (String farb, int gew) { //Konstuktor&lt;br /&gt;
         farbe = farb; //eigentlich this.farbe =farb, ist aber unnötig&lt;br /&gt;
         gewicht = gew;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     void essen() { //eine Methode&lt;br /&gt;
         gewicht = 0;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //file: Beispiel.java&lt;br /&gt;
 public Beispiel {&lt;br /&gt;
     public static void main( String args[] ) {&lt;br /&gt;
         Apfel boskop1 = new Apfel(&amp;quot;rot&amp;quot;, 175);&lt;br /&gt;
         Apfel boskop2 = new Apfel(&amp;quot;grün&amp;quot;, 180);&lt;br /&gt;
         &lt;br /&gt;
         System.out.println(&amp;quot;boskop1 (&amp;quot; +&lt;br /&gt;
             boskop1.farbe + &amp;quot;): &amp;quot; + boskop1.gewicht + &amp;quot; gramm&amp;quot;);&lt;br /&gt;
         System.out.println(&amp;quot;boskop2 (&amp;quot; +&lt;br /&gt;
             boskop2.farbe + &amp;quot;): &amp;quot; + boskop2.gewicht + &amp;quot;gramm&amp;quot;);        &lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Vererbung==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In objektorientierten Programmiersprachen gibt es ein Konzept, dass sich Vererbung nennt. Eine Klasse erbt dann das Verhalten (also die Methoden) und auch die Daten von einer anderen Klasse. In Java benutzt man zum Vererben das Schlüsselwort extends.&lt;br /&gt;
&lt;br /&gt;
 //File: Obst.java&lt;br /&gt;
 class Obst {&lt;br /&gt;
 	String farbe;&lt;br /&gt;
 	int gewicht; //in Gramm&lt;br /&gt;
  	&lt;br /&gt;
 	void essen() {&lt;br /&gt;
 		gewicht = 0;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //File: Apfel.java&lt;br /&gt;
 class Apfel extends Obst {&lt;br /&gt;
 	String geerntetIn;&lt;br /&gt;
 	 &lt;br /&gt;
 	void schaelen() {&lt;br /&gt;
 		gewicht = gewicht - 10;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Klasse Apfel im Beispiel hat alle Methoden und Daten von der Klasse Obst geerbt. Das heißt Instanzen dieser Klasse besitzen eine Farbe, ein Gewicht und man kann sie essen.&lt;br /&gt;
&lt;br /&gt;
Wer mehr über Objektorientierung und Vererbung erfahren möchte, kann entweder eins der unzähligen verfügbaren Bücher zu dem Thema zur Hand nehmen. Alternativ könnte man auch diesen link (http://java.sun.com/docs/books/tutorial/java/concepts/index.html) verfolgen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Die Klasse Object==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Java gibt es eine Klasse Object, von der jede andere Klasse abgeleitet ist. Wenn man kein extends hinschreibt, wird vom Compiler sozusagen das &amp;quot;extends Object&amp;quot; ergänzt. Dies geschieht intern, also ohne Veränderung in eurem Quellcode.&lt;br /&gt;
&lt;br /&gt;
Einige Methoden von Object sind für uns sehr nützlich, weshalb sie hier kurz vorgestellt werden sollen. Doch eins noch zum Wort Objekt: Die Bezeichnung Objekt wird oftmals sowohl für Klassen als auch für Instanzen von Klassen benutzt, deshalb immer schauen welche Bedeutung wohl gerade gemeint ist.&lt;br /&gt;
&lt;br /&gt;
Im folgenden wird hier Obje&amp;lt;b&amp;gt;k&amp;lt;/b&amp;gt;t in der Bedeutung von Instanz benutzt und Obje&amp;lt;b&amp;gt;c&amp;lt;/b&amp;gt;t, wenn die besondere Klasse Object gemeint ist.&lt;br /&gt;
&lt;br /&gt;
===Die Methode toString()===&lt;br /&gt;
&lt;br /&gt;
Nun aber zu den genannten nützlichen Mehtoden: Die Methode toString() liefert einen String, der die Instanz beschreibt. Doch woher soll die Methode (die ja in Object angelegt wurde) wissen, wie man unsere spezielle Instanz treffend in einem String beschreibt?&lt;br /&gt;
&lt;br /&gt;
Dazu kann man die Methode überschreiben. Man macht das, indem man sie einfach in der eigenen Klasse noch einmal definiert.&lt;br /&gt;
&lt;br /&gt;
 //File: Apfel.java&lt;br /&gt;
 class Apfel extends Obst {&lt;br /&gt;
 	String geerntetIn;&lt;br /&gt;
 	&lt;br /&gt;
 	void schaelen() {&lt;br /&gt;
 		gewicht = gewicht - 10;&lt;br /&gt;
 	}&lt;br /&gt;
 	 &lt;br /&gt;
 	String toString() {&lt;br /&gt;
 		String description = &amp;quot;Ein Apfel, geerntet  in &amp;quot; + geerntetIn;&lt;br /&gt;
 		return description; &lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Ruft man nun auf einer Instanz von Apfel toString auf, so wird die in Apfel definierte Version benutzt. Die Methode toString() ist unter anderem deshalb so wichtig, weil sie von System.out.println() benutzt wird, um Instanzen beliebiger Nachfahren von Object auf der Konsole auszugeben. Die Methode printMe() aus der vorhergehenden Übung hatte die gleiche Funktion. Nur arbeitet  println() mit toString(), weshalb es sinnvoll wäre printMe() in toString() umzubenennen.&lt;br /&gt;
&lt;br /&gt;
===Die Methode equals(Object o)===&lt;br /&gt;
&lt;br /&gt;
Eine weitere wichtige Methode von Object ist equals(Object o). Hiermit kann, wie der Name schon sagt die Gleichheit zweier Objekte festgestellt werden. Nun wird sich vielleicht der ein oder andere fragen, warum man nicht den Vergleichsoperator == benutzt, sondern eine eigene Methode dafür schreibt. Warum das so ist, soll an einem Codebeispiel verdeutlicht werden.&lt;br /&gt;
&lt;br /&gt;
 public static void main(String []args) {&lt;br /&gt;
 	Apfel apfel1 = new Apfel();&lt;br /&gt;
 	apfel1.farbe = &amp;quot;grün&amp;quot;;&lt;br /&gt;
 	apfel1.geerntetIn = &amp;quot;Berlin&amp;quot;;&lt;br /&gt;
 	apfel1.gewicht = 215;&lt;br /&gt;
  	&lt;br /&gt;
 	Apfel apfel2 = new Apfel();&lt;br /&gt;
 	apfel2.farbe = &amp;quot;grün&amp;quot;;&lt;br /&gt;
 	apfel2.geerntetIn = &amp;quot;Brandenburg&amp;quot;;&lt;br /&gt;
 	apfel2.gewicht = 215;&lt;br /&gt;
  	&lt;br /&gt;
 	Apfel apfel3 = apfel2;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Der Operator == gibt genau dann true zurück, wenn die Werte der beiden verglichenen Dinge identisch sind. Bei eingebauten Datentypen (int, double) verhält er sich wie erwartet. Der Wert eines Objektes hingegen ist die Identität des Objektes, und nicht sein Inhalt. Deshalb würde apfel1 == apfel2 false zurückgeben, weil es sich um zwei verschiedene Objekte handelt. Wir hätten aber gern eine Methode, die uns sagt, dass diese Äpfel insofern gleich sind, dass sie die gleichen Eigenschaften besitzen. Dabei ist zu beachten, dass wir für die Gleichheit zweier Äpfel hier nur das Gewicht und die Farbe heranziehen.Genau dies sollte equals realisieren.&lt;br /&gt;
&lt;br /&gt;
 class Apfel extends Obst {&lt;br /&gt;
 	String geerntetIn;&lt;br /&gt;
 	&lt;br /&gt;
 	void schaelen() {&lt;br /&gt;
 		gewicht = gewicht - 10;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	String toString() {&lt;br /&gt;
 		String description = &amp;quot;Ein Apfel, geerntet  in &amp;quot; + geerntetIn;&lt;br /&gt;
 		return description;&lt;br /&gt;
 	}&lt;br /&gt;
 	 &lt;br /&gt;
 	boolean equals(Object o) {&lt;br /&gt;
 		Apfel andererApfel = (Apfel)o;&lt;br /&gt;
 		return farbe.equals(andererApfel.farbe) &amp;amp;&amp;amp;&lt;br /&gt;
 			gewicht == andererApfel.gewicht;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Im Beispiel für equals gibt es gleich zwei Dinge, die einer weiteren Erklärung bedürfen: In der ersten Zeile machen wir aus der Intanz von Object, mit dem wir vergleichen einen Apfel. Diesen Vorgang nennt man casten.  Das Programm wird an dieser Stelle mit einer entsprechenden Fehlermeldung beendet, wenn der Parameter o kein Apfel ist. Das ist zwar nicht schön, macht aber trotzdem Sinn, da eine Gleichheit zwischen Äpfeln und beliebigen Objekten nicht zwangsläufig definiert ist. Dies ist zugegebenermaßen noch nicht ganz zufriedenstellend, da das Programm einfach beendet würde, wenn Apfel mit Autos zu vergleichen, obwohl man sicher sagen könnte, dass die beiden unterschiedlich sind. Wer hierzu noch etwas mehr lesen möchte, kann sich hier (http://www.galileocomputing.de/openbook/javainsel3/javainsel_030003.htm#Rxxjavainsel_030003281GleichheitvonObjektenunddieMethodeequals) vertiefen.&lt;br /&gt;
&lt;br /&gt;
Die zweite Sache, die auffällt: das Gewicht wird mit == verglichen, warum nicht auch mit equals? Die Antwort darauf ist eigentlich recht einfach: gewicht ist vom Typ int, der ein primitiver Datentyp ist. Damit erbt er nicht von Object, und bietet demnach auch keine Methode equals an. Wie oben schon erwähnt liefert == bei primitiven Datentypen ja auch das gewünschte Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Eine Anmerkung hierzu ist noch wichtig: Die oben vorgestellte Implementierung von equals funktioniert für unsere Zwecke. Dennoch ist sie unsauber und erfüllt nicht die Anforderungen, die sun in seiner Klassenbibliothek an equals stellt. Dies genauer zu erläutern würde den Rahmen unseres Kurses sprengen, näheres dazu findet man unter anderem im Link zwei Absätze höher. Die genauen Anforderungen an die Implementierung der Methode equals sind zu finden in der Java API Referenz (http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html).&lt;br /&gt;
&lt;br /&gt;
==Comparable==&lt;br /&gt;
&lt;br /&gt;
Manchmal reicht es nicht aus, zu wissen zwei Objekte gleich sind. Oft wollen wir Objekte ordnen, wozu wir eine Funktion brauchen die uns mitteilt welches von zwei Objekten &amp;quot;größer&amp;quot; ist. Eine solche Funktion ist compareTo(Object o). Im Gegensatz zu equals und toString ist sie allerdings keine Methode von Object, da es Klassen gibt, deren Objekte man nicht ordnen kann. Ein Beispiel hierfür wären Farbtöne, für die es schwer fällt eine natürliche Ordnung zu finden. Nun könnten wir für unsere eigenen Klassen, wo das Ordnen Sinn macht einfach ein compareTo implementieren. Würden wir dies einfach so tun könnten wir allerdings nicht einen Algorithmus benutzen, den jemand anderes zum Ordnen seiner eigenen Klasse, die compareTo implementiert geschrieben hat:&lt;br /&gt;
&lt;br /&gt;
 //File: MyClass.java&lt;br /&gt;
 class MyClass {&lt;br /&gt;
 	...&lt;br /&gt;
 	compareTo(MyClass o) {&lt;br /&gt;
 		...&lt;br /&gt;
 	}&lt;br /&gt;
 	...&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //File: SomeonesClass.java&lt;br /&gt;
 class SomeonesClass {&lt;br /&gt;
 	...&lt;br /&gt;
 	compareTo(SomeonesClass o) {&lt;br /&gt;
 		...&lt;br /&gt;
 	}&lt;br /&gt;
 	...&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //File Utility.java&lt;br /&gt;
 class Utility {&lt;br /&gt;
 	static sort(SomeonesClass daten[]) {&lt;br /&gt;
 		//sortiere daten mittels compareTo&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier kann man kein array vom Typ MyClass[] als parameter von sort übergeben, da es sich um zwei verschiedene Typen handelt. Um dieses Manko zu umgehen gibt es in Java Interfaces. Sie stellen eine Vereinbarung darüber dar, welche Methoden eine Klasse anbietet. Im Gegensatz zur Vererbung gibt es aber hier beim Interface noch keine Vorgabe, wie diese Methoden funktionieren. Das Interface schreibt nur die Namen, Art der Parameter und des Rückgabewertes von Methoden vor. Comparable ist ein solches Interface, dass schon in der Java API vorgegeben ist. Es schreibt vor, dass Klassen die dieses Interface implementieren die Methode int compareTo(Object o) anbieten müssen.&lt;br /&gt;
&lt;br /&gt;
Modifizieren wir also unser Beispiel so, dass wir das Interface Comparable nutzen.&lt;br /&gt;
	&lt;br /&gt;
 //File: MyClass.java&lt;br /&gt;
 class MyClass implements Comparable{&lt;br /&gt;
 	...&lt;br /&gt;
 	compareTo(Object o) {&lt;br /&gt;
 		MyClass parameter = (MyClass)o;&lt;br /&gt;
 		...&lt;br /&gt;
 	}&lt;br /&gt;
 	...&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //File: SomeonesClass.java&lt;br /&gt;
 class SomeonesClass implements Comparable{&lt;br /&gt;
 	...&lt;br /&gt;
 	compareTo(Object o) {&lt;br /&gt;
 		SomeonesClass parameter = (SomeonesClass)o;&lt;br /&gt;
 		...&lt;br /&gt;
 	}&lt;br /&gt;
 	...&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //File Utility.java&lt;br /&gt;
 class Utility {&lt;br /&gt;
 	static sort(Comparable daten[]) {&lt;br /&gt;
 		//sortiere daten mittels compareTo&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Nun kann die Methode sort beliebige arrays übergeben bekommen, deren Inhalt das Interface Comparable implementiert. Darüber wird dieser Mehtode zugesichert, dass jedes Element dieses arrays über die Methode compareTo verfügt und somit sich mit anderen Elementen des arrays vergleichen lässt.&lt;br /&gt;
&lt;br /&gt;
Noch ein paar Worte zum compareTo selbst: Diese Methode liefert uns als Rückgabewert eine ganze Zahl. Ist diese Zahl kleiner als 0, so ist die Instanz, auf der sie aufgerufen wurde kleiner als der übergebene Parameter (this &amp;lt; o). Ist der Rückgabewert genau 0, so ist this gleich o. Letzlich ist this größer als o, wenn der Rückgabewert von compareTo größer als 0 ist. Auch an die Methode compareTo gibt es in der API Referenz definierte Andorderungen (http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Comparable.html) , die wir im Rahmen unserer Veranstaltung aber außen vor lassen wollen.&lt;br /&gt;
&lt;br /&gt;
==Java API - Javas Klassenbibliothek==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein großer Vorteil von Java gegenüber anderen Programmiersprachen besteht darin, dass es eine Vielzahl vereinheitlichter und schon mitgelieferter Klassen und Interfaces gibt. Die Sammlung dieser Klassen und Interfaces nennt man Java API. Es gibt auf der Website von Sun(java.sun.com) eine sehr umfassende Dokumentation dieser API(http://java.sun.com/j2se/1.4.2/docs/api/), die allerdings nicht immer einfach zu bedienen ist. Wenn man weiß, nach welcher Klasse man sucht findet man meist recht schnell die gewünschten Informationen. Hat man aber nur eine vage Idee, was die Klasse tun soll muss man meist noch andere Quellen nutzen, um an den Namen der gesuchten Klasse heranzukommen. Hierzu bieten sich natürlich Suchmaschinen wie google an.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden wollen wir einige besonders Häufig verwendete Module und Konzepte der Java API vorstellen. Wie man ein solches Modul in eigenen Programmen verwendet, werden wir im ersten vorgestellten Modul etwas näher beleuchten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Math===&lt;br /&gt;
&lt;br /&gt;
Das Modul Math bietet, wenig überraschend, alle möglichen Methoden und Konstanten die man für mathematische Berechnungen brauchen könnte. Einige Konstanten sind zum Beispiel &lt;br /&gt;
&lt;br /&gt;
 public static final double E;&lt;br /&gt;
 public static final double PI;&lt;br /&gt;
&lt;br /&gt;
Diese beiden Konstanten sind jeweils mit drei zusätzlichen Schlüsselwörtern gekennzeichnet, die hier zumindest grob erklärt werden sollen.&lt;br /&gt;
&lt;br /&gt;
public bedeutet, dass die entsprechende Variable oder Methode auch außerhalb der definierenden Klasse und außerhalb von Math benutzt werden kann.&lt;br /&gt;
&lt;br /&gt;
Von Daten, die satic definiert sind hat nicht jede Instanz eine eigene Ausprägung, sondern alle Instanzen der Klasse teilen sich diese Variable.&lt;br /&gt;
Mehtoden die static definiert sind, brauchen keine Instanz der Klasse um aufgerufen zu werden. Demnach kennen sie allerdings auch this nicht und können daher nicht auf Daten einer Instanz der Klasse arbeiten.&lt;br /&gt;
&lt;br /&gt;
Das Schlüsselwort final an einer Variable macht diese zur Konstante. Das heißt sie wird einmal bei der Deklaration festgelegt und kann dann nicht mehr verändert werden.&lt;br /&gt;
&lt;br /&gt;
Die einzelnen Methoden, die Math bietet sollen hier nicht im Detail besprochen werden, da sie recht einfach in der API-Dokumentation von Java zu finden sind. Dennoch soll anhand des Sinus ein Aufruf einer Methode aus Math hier gezeigt werden, um die nötige Syntax zu zeigen.&lt;br /&gt;
&lt;br /&gt;
 public static void main(String args[]) {&lt;br /&gt;
     System.out.print( Math.sin(Math.PI / 2) );&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Ausgabe: 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine sehr nützliche Methode aus Math soll hier noch kurz vorgestellt werden, da man sie nicht unbedingt hier vermuten würde: Die Methode random liefert ohne Parameter zu erwarten eine Zufallszahl zwischen 0 und 1. Mit Hilfe dieser Methode kann man gleichverteilte und beliebige Zufallszahlen in den Bereichen von float und int erzeugen.&lt;br /&gt;
&lt;br /&gt;
 public static void main(String args[]) {&lt;br /&gt;
     double random1 = Math.random(); //erzeugt eine Zahl im Bereich [0;1)&lt;br /&gt;
     double random2 = Math.random() * 30 + 5; //erzeugt eine Zahl im Bereich [5;34)&lt;br /&gt;
     int random3 = (int) (Math.random() * 13); //erzeugt eine natürliche Zahl im Bereich [0;12]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===Streams===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein weiteres nützliches Konzept, dass die Java API uns bietet sind Streams. Streams (zu deutsch: Datenströme) beschreiben Datenquellen oder Ziele, an die man Daten schicken kann. Dabei wird von der tatsächlichen Datenquelle oder vom tatsächlichen Ziel abstrahiert, um für alle &amp;quot;Sender&amp;quot; oder &amp;quot;Empfänger&amp;quot; von Daten die gleichen Mehtoden nutzen zu können. So können sich hinter einem Datenstrom beispielsweise eine Datei, die von der Tastatur kommenden Zeichen oder aber eine Netzwerkverbindung verbergen. Der Programmierer muss sich aber um diese Details, wenn er erstmal ein entsprechendes Datenstrom-Objekt erstellt hat keine Gedanken mehr machen, weil er ebend auf einem Datenstrom arbeitet und nicht auf einer bestimmten Datenquelle. Hier ein paar Beispiele, wie man verschiedene Datenströme erstellt. Dabei ist generell zwischen InputStream und OutputStream zu unterscheiden, wobei der erstere Daten von außen an unser Programm heranträgt und der zweite Daten von unserem Programm an einen Empfänger übermittelt&lt;br /&gt;
&lt;br /&gt;
 import java.io.*&lt;br /&gt;
 &lt;br /&gt;
 //prints the ascii code for a specified number of keys pressed on the keyboard to the console&lt;br /&gt;
 static void printAsciiCodes(int keysToPrint) {&lt;br /&gt;
     InputStream keyboard = System.in; //get standard input stream (the keyboard)&lt;br /&gt;
     for (int i = 0; i &amp;lt; keysToPrint; i++) {&lt;br /&gt;
         int asciiCode = keyboard.read(); //wait for a key to be pressed&lt;br /&gt;
         System.out.print(asciiCode + &amp;quot; &amp;quot;); //print it&#039;s ascii code&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //prints the content of a file given by Name to the console bytewise&lt;br /&gt;
 static void printFile(String fileName) {&lt;br /&gt;
     InputStream file = new FileInputStream(fileName); //open a stream representing the file&lt;br /&gt;
     int byteRead = file.read(); //read first byte from the file&lt;br /&gt;
     while (byteRead != -1) { //while there is something to read&lt;br /&gt;
         System.out.print(byteRead + &amp;quot; &amp;quot;); //print the byte we read at last&lt;br /&gt;
         byteRead = file.read(); //read a new byte&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Im Beispiel kann man schön sein, dass der Mechanismus zum lesen eines bytes bei beiden Datenströmen der gleiche ist. Lediglich in der Erstellung des Datenstromes gibt es je nach Quelle Unterschiede. Die Funktionsweise ist für Ausgabeströme recht ähnlich. Nähere Informationen dazu findet man in der API-Reference, wenn man nach den Klassen OutputStream und FileOutputStream sucht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===BufferedReader===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im letzten Abschnitt haben wir gesehen, wie leicht es ist mit Hilfe von Streams Bytes aus verschiedenen Quellen zu lesen. Oftmals wollen wir aber keine einzelnen Bytes lesen, sondern wissen dass unsere Datenquelle uns einen Text liefert. Da Text meist in Zeilen strukturiert ist, wäre es schön eine Funktion zu haben die Zeilenweise Strings aus unserem Stream liest. Auch hierfür bietet uns die Java Klassenbibiliothek bereits eine Lösung: den BufferedReader. Seine readLine Methode liest eine Zeile aus. Das Problem an dem BufferedReader ist, dass wir zu seiner Instantiierung einen Reader benötigen. Schauen wir in der API Dokumentation nach, welche Arten von Readern es gibt, so fällt der InputStreamReader auf. Schaut man sich diesen genauer an, so enthält er auch einen Konstruktor, der einen InputStream als Parameter akzeptiert.&lt;br /&gt;
&lt;br /&gt;
Nun bleibt es unsere Aufgabe zuerst einen Datenstrom aus unserer Datenquelle zu erzeugen, dann darauf einen Reader zu konstruieren um am Schluß darauf einen BufferedReader zu setzen. Dieses Vorgehen wirkt zwar etwas klobig, doch es gibt in der Klassenbibliothek bisher (bis Java 1.4.2) keine bessere Lösung dafür. Es folgt ein kleines Beispiel, dass den Inhalt einer Textdatei zeilenweise auf der Konsole ausgibt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 import java.io.*;&lt;br /&gt;
 &lt;br /&gt;
 static void printTextFile(String fileName) {&lt;br /&gt;
     InputStream fileStream = new FileInputStream(fileName);&lt;br /&gt;
     Reader reader = new InputStreamReader(fileStream); //wrap a Reader around the InputStream&lt;br /&gt;
     BufferedReader lineReader = new BufferedReader(reader); //wrap a BufferedReader around the Reader&lt;br /&gt;
     String line = lineReader.readLine();&lt;br /&gt;
     while (line != null) { //if readLine returns null, file end is reached&lt;br /&gt;
         System.out.println(line);&lt;br /&gt;
         line = lineReader.readLine();&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exceptions==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Versucht man die Programme aus den letzten beiden Abschnitten zu compilieren, so wird man feststellen dass sie nicht lauffähig sind. Mit der Tatsache, dass Streams so universell sind, handelt man sich natürlich auch alle möglichen Probleme der verschiedenen Medien, die ein Stream verstecken kann, ein. Um die Behandlung dessen zu vereinfachen und dem Programmierer die Chance zu geben an der richtigen Stelle auf Fehler zu reagieren gibt es Exceptions. An dieser Stelle soll es genügen zu erkennen, wann man von einer Methode erwarten muss, dass sie eine Exception auslöst und wie man damit umgeht.&lt;br /&gt;
&lt;br /&gt;
Methoden, die eine Exception auslösen können müssen dies ihrer Umgebung mitteilen. Dies geschieht, mit dem Schlüsselwort throws gefolgt von einer kommaseparierten Liste aller Exceptions, die sie auslösen können.&lt;br /&gt;
&lt;br /&gt;
 public class InputStream {&lt;br /&gt;
     ...&lt;br /&gt;
     public int read() throws IOException {&lt;br /&gt;
         ...&lt;br /&gt;
     }&lt;br /&gt;
     ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Bei den Klassen aus der Java Klassenbibliothek kann man der API-Reference entnehmen, welche Exceptions sie auslösen können. Jede mögliche Exception muss behandelt werden, dazu gibt es zwei Wege.Der erste funktioniert folgendermaßen: Man fasst den Teil einer Mehtode, der eine Exception auslösen kann in ein try-catch-Konstrukt ein. Wie dies aussieht soll gleich am Beispiel der Methode printTextFile gezeigt werden.&lt;br /&gt;
&lt;br /&gt;
 import java.io.*; &lt;br /&gt;
 &lt;br /&gt;
 static void printTextFile(String fileName) {&lt;br /&gt;
     InputStream fileStream = null;&lt;br /&gt;
     try {&lt;br /&gt;
         fileStream = new FileInputStream(fileName);&lt;br /&gt;
     } catch (FileNotFoundException e) {&lt;br /&gt;
         System.out.println(&amp;quot;The file &amp;quot; + fileName + &amp;quot; could not be found.&amp;quot;);&lt;br /&gt;
         return; //stop execution of method... cannot print from non existing file&lt;br /&gt;
     }&lt;br /&gt;
     Reader reader = new InputStreamReader(fileStream); //wrap a Reader around the InputStream&lt;br /&gt;
     BufferedReader lineReader = new BufferedReader(reader); //wrap a BufferedReader around the Reader&lt;br /&gt;
     try {&lt;br /&gt;
         String line = lineReader.readLine();&lt;br /&gt;
         while (line != null) { //if readLine returns null, file end is reached&lt;br /&gt;
             System.out.println(line);&lt;br /&gt;
             line = lineReader.readLine();&lt;br /&gt;
         }&lt;br /&gt;
     } catch (IOException e) {&lt;br /&gt;
         System.out.println(&amp;quot;An unknown IOException occured while reading the file.&amp;quot;);&lt;br /&gt;
     } catch (EOFException e) {&lt;br /&gt;
         System.out.println(&amp;quot;Unexpected end of File found.&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt würde der Javacompiler die Methode compilieren. Sollte eine Exception auftreten, so wird dies dem Benutzer auf der Konsole mitgeteilt und die Ausführung der Methode abgebrochen. Der try-catch-Mechanismus funktioniert folgendermaßen: Wenn in dem Block zwischen try und catch eine Exception auftritt, wird die Ausführung des Blocks abgebrochen und es geht im passenden catch-Block weiter. Dabei ist passend derjenige Block, dessen gefangene Klasse derjenige Vorfahre der tatsächlich ausgelösten Exceptionklasse ist, der in der Vererbungshierarchie am nächsten daran ist.&lt;br /&gt;
Man sollte die Blöcke zwischen try und catch so klein wie sinnvoll möglich halten. Insbesondere sollte man sich davor hüten, ganze Methoden in ein großes try-catch einzubauen, weil dann die Fehlerbehandlung ungenau und die Fehlersuche schwieriger wird. Eine gute Möglichkeit zum Fehler finden ist es, im catch Block die Methode printStackTrace der Exception aufzurufen. Andererseits sollte in einem fertigen Programm das try-catch Konzept nur dann genutzt werden, wenn man auch tatsächlich den Fehler behandeln kann.&lt;br /&gt;
&lt;br /&gt;
Aus dieser Anforderung ergibt sich Notwendigkeit, die zweite Möglichkeit Exceptions zu behandeln zu benutzen. Hier werden auftretende Exceptions nicht per try-catch gefangen, weil man ebend keine sinnvolle Fehlerbehandlung im catch-Block anbieten kann. Dem Nutzer unserer Funktion muss man dies mitteilen, indem man dies hinter der Parameterliste per throws ankündigt. Wird dann in unserer Methode eine entsprechende Exception ausgelöst und nicht behandelt, so wird sie einfach an die aufrufende Methode &amp;quot;weitergeworfen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Weiter Informationen für Interessierte gibt es hier (http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das wars zu diesem Thema. Falls jemand so weit durchgehalten hat, danken wir für die Aufmerksamkeit :)&lt;br /&gt;
Wir hoffen, dass ihr jetzt ein klein wenig mehr mit den Mechanismen die Java anbietet vertraut seid und regen Gebrauch von der großen Klassenbibliothek machen werdet.&lt;br /&gt;
&lt;br /&gt;
==TODOs==&lt;br /&gt;
&lt;br /&gt;
eventuell Konstruktor für Apfel und Obst überall einbauen und nutzen&lt;br /&gt;
&lt;br /&gt;
Link für Streams und &amp;quot;Aufsätze&amp;quot;&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7145</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7145"/>
		<updated>2006-04-05T07:35:05Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: else hinzugefuegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
== Variablendeklaration und Initialisierung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int aWholeNumber;&lt;br /&gt;
		double notAWholeNumber;&lt;br /&gt;
		String aString;&lt;br /&gt;
&lt;br /&gt;
		aWholeNumber = 0;&lt;br /&gt;
		notAWholeNumber = 0.0;&lt;br /&gt;
		aString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(aWholeNumber);&lt;br /&gt;
		System.out.println(notAWholeNumber);&lt;br /&gt;
		System.out.println(aString);&lt;br /&gt;
&lt;br /&gt;
		int anotherWholeNumber = 0;&lt;br /&gt;
		double anotherNotSoWholeNumber = 0;&lt;br /&gt;
		String anotherString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(anotherWholeNumber);&lt;br /&gt;
		System.out.println(anotherNotSoWholeNumber);&lt;br /&gt;
		System.out.println(anotherString);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; definiert?&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; initialisiert?&lt;br /&gt;
Beantworte diese Fragen auch für die Variablen: &#039;&#039;notAWholeNumber&#039;&#039;, &#039;&#039;aString&#039;&#039;, &#039;&#039;anotherWholeNumber&#039;&#039;, &#039;&#039;anotherNotSoWholeNumber&#039;&#039;, &#039;&#039;anotherString&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erkläre deine Meinung einem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		// deklariere eine Variable &amp;quot;birnen&amp;quot;  vom Typ int&lt;br /&gt;
		&lt;br /&gt;
		// weise ihr den Wert drei zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// addiere fünf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate. (Kopiere &lt;br /&gt;
* Was sind die Unterschiede?&lt;br /&gt;
* Warum?&lt;br /&gt;
Erkläre einem Tutor zu welchem Schluss du gekommen bist und frage ihn ob du Recht hast.&lt;br /&gt;
&lt;br /&gt;
== Variablen ändern ihre Werte ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int number = 1;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
		number = 1;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
		number = 2;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
		number = 3;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
		number = 1;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
		number = 17;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir  was dieser Code ausgeben würde.&lt;br /&gt;
Schreibe ihn in eine Datei, kompiliere ihn und führe ihn aus.&lt;br /&gt;
* Was gibt er tatsächlich aus?&lt;br /&gt;
* Gibt es unterschiede?&lt;br /&gt;
&lt;br /&gt;
== Formatierung ==&lt;br /&gt;
Wieso haben wir das Beispiel  nach den geschweiften Klammern eingerückt und die Variablen so gestellt wie wir es gestellt haben und nicht so:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class _{static long _&lt;br /&gt;
(long __,long  ___) {&lt;br /&gt;
return __==0 ?___+ 1:&lt;br /&gt;
___==0?_(__-1,1):_(__&lt;br /&gt;
-1,_(__, ___-1)) ;  }&lt;br /&gt;
static  {int _=2 ,___&lt;br /&gt;
= 2;System.out.print(&lt;br /&gt;
&amp;quot;a(&amp;quot;+_+’,’+___+ &amp;quot;)=&amp;quot;+&lt;br /&gt;
_ (_,  ___) ) ;System&lt;br /&gt;
.exit(1);}}//(C) Ulli&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Etwas weniger Extrem, wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {public static void main&lt;br /&gt;
	(String [] ignored) {&lt;br /&gt;
	System.out.println(0); int zero = 0;&lt;br /&gt;
			System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
			System.out.&lt;br /&gt;
		println(whatsThis);&lt;br /&gt;
	whatsThis = one;		System.out.println(whatsThis)&lt;br /&gt;
;}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class b {&lt;br /&gt;
	public static void main(String [] i) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int a = 0;&lt;br /&gt;
		System.out.println(a);&lt;br /&gt;
		int b = 1;&lt;br /&gt;
		int c = a;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
		c = b;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Variablen mit verschiedenen Typen zuweisen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= If =&lt;br /&gt;
== Einfache if-Bedingung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class If_Uebung1 {&lt;br /&gt;
    /* Eure Aufgabe:&lt;br /&gt;
     * Versucht nachzuvollziehen, was dieses Programm macht &lt;br /&gt;
     * und schaut Euch den Code an.&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        /* &lt;br /&gt;
         * wir erzeugen uns hier eine Zufallszahl im&lt;br /&gt;
         * Bereich 1-6. Warum funktioniert das so?&lt;br /&gt;
         * Math.random ist eine statische Funktion im &lt;br /&gt;
         * Math-Paket, dass und eine double-Zahl, die kleiner&lt;br /&gt;
         * als 1.0 aber groesser oder gleich 0 ist.&lt;br /&gt;
         * Mit 6 multipliziert und um eins erhöht erhalten wir&lt;br /&gt;
         * Zahlen von 1.0 bis 6.99999...&lt;br /&gt;
         * Durch das Umwandeln in int werden die Nachkommastellen abgeschnitten&lt;br /&gt;
         * und wir erhalten ein int von 1 bis 6.&lt;br /&gt;
         */&lt;br /&gt;
        int wuerfelzahl = (int) (1 + (6 * Math.random()));&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Zur Kontrolle geben wir das Ergebnis aus &lt;br /&gt;
         */&lt;br /&gt;
        System.out.println(&amp;quot;Der Würfel hat &amp;quot; + wuerfelzahl + &amp;quot; ergeben.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Ist das Ergebnis groesser als 3 ?&lt;br /&gt;
         */&lt;br /&gt;
        if (wuerfelzahl &amp;gt; 3) {&lt;br /&gt;
            // Wenn ja gib diesen Text aus:&lt;br /&gt;
            System.out.println(&amp;quot;mehr als 3!&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== if-else-Konstrukt ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class If_Uebung2 {&lt;br /&gt;
&lt;br /&gt;
    public static void main (String[] args){&lt;br /&gt;
&lt;br /&gt;
        int x=10;&lt;br /&gt;
        if (x&amp;gt;5) {&lt;br /&gt;
             System.out.println(&amp;quot;x ist groesser als 5&amp;quot;); &lt;br /&gt;
        } else {&lt;br /&gt;
             System.out.println(&amp;quot;x ist kleiner/gleich 5&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mehrere if-Bedingungen ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class If_Uebung3 {&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * Eure Aufgabe:&lt;br /&gt;
     * Schaut Euch das Programm an und überlegt, was fuer verschiedene&lt;br /&gt;
     * Werte passiert. &lt;br /&gt;
     * Welche If-Abfragen sind unnötig, weil man die Ausgaben in else-Zweige von &lt;br /&gt;
     * bereits vorhandenen schreiben könnte?&lt;br /&gt;
     */&lt;br /&gt;
    &lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        &lt;br /&gt;
        int wert;&lt;br /&gt;
        &lt;br /&gt;
        wert = 5;&lt;br /&gt;
        &lt;br /&gt;
        if (wert&amp;lt;5){&lt;br /&gt;
            System.out.println(&amp;quot;Der Wert ist echt kleiner 5.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (wert&amp;gt;5){&lt;br /&gt;
            System.out.println(&amp;quot;Der Wert ist echt groesser 5.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (wert==5){&lt;br /&gt;
            System.out.println(&amp;quot;Der Wert ist gleich 5&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (wert&amp;gt;=5){&lt;br /&gt;
            System.out.println(&amp;quot;Der Wert ist groesser oder gleich 5&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (wert&amp;lt;=5){&lt;br /&gt;
            System.out.println(&amp;quot;Der Wert ist kleiner oder gleich 5&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= For =&lt;br /&gt;
== for-Schleifen zum Zählen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class For_Uebung1 {&lt;br /&gt;
    /*&lt;br /&gt;
     * Eure Aufgabe:&lt;br /&gt;
     *  Schaut Euch dieses Programm an und überlegt, welche Zahlen&lt;br /&gt;
     *  es ausgeben wird. &lt;br /&gt;
     *  Anschliessend kompiliert das Programm, führt es aus und überprüft&lt;br /&gt;
     *  Eure Vermutungen.&lt;br /&gt;
     *  &lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        System.out.println(&amp;quot;erste for Schleife:&amp;quot;);&lt;br /&gt;
        for (int i = 1; i &amp;lt;= 10; i = i + 1) {&lt;br /&gt;
            System.out.print(&amp;quot; &amp;quot; + i);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(); // Zeilenumbruch&lt;br /&gt;
&lt;br /&gt;
        System.out.println(&amp;quot;zweite for Schleife:&amp;quot;);&lt;br /&gt;
        for (int i = 1; i &amp;lt;= 10; i = i + 2) {&lt;br /&gt;
            System.out.print(&amp;quot; &amp;quot; + i);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(); // Zeilenumbruch&lt;br /&gt;
&lt;br /&gt;
        System.out.println(&amp;quot;dritte for Schleife:&amp;quot;);&lt;br /&gt;
        for (int i = 1; i &amp;lt;= 10; i = i * 2) {&lt;br /&gt;
            System.out.print(&amp;quot; &amp;quot; + i);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(); // Zeilenumbruch&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== for-Schleife und if-Bedingung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class ForIf_Uebung {&lt;br /&gt;
    &lt;br /&gt;
    // Welche Zahlen gibt dieses Programm aus ?&lt;br /&gt;
    &lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        for (int i=1;i&amp;lt;10;i++){&lt;br /&gt;
            if ((i % 2)==0){ // % ist der Modulo-Operator &lt;br /&gt;
                System.out.println(&amp;quot;Die Zahl &amp;quot;+i+&amp;quot; ist gerade.&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= While =&lt;br /&gt;
== einfache while-Schleife ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public class While_Uebung1 {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        int x=10;&lt;br /&gt;
        while (x&amp;gt;0){&lt;br /&gt;
            System.out.println(&amp;quot; x=&amp;quot; + x);  // Anhaengen von x an den String&lt;br /&gt;
            x=x-1;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Methoden =&lt;br /&gt;
== Was tut das? ==&lt;br /&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;
&lt;br /&gt;
//file: Methoden2.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;
    }&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;
&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;
&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;
&lt;br /&gt;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7144</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7144"/>
		<updated>2006-04-05T07:29:03Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.41: erste while hinzugefuegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
== Variablendeklaration und Initialisierung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int aWholeNumber;&lt;br /&gt;
		double notAWholeNumber;&lt;br /&gt;
		String aString;&lt;br /&gt;
&lt;br /&gt;
		aWholeNumber = 0;&lt;br /&gt;
		notAWholeNumber = 0.0;&lt;br /&gt;
		aString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(aWholeNumber);&lt;br /&gt;
		System.out.println(notAWholeNumber);&lt;br /&gt;
		System.out.println(aString);&lt;br /&gt;
&lt;br /&gt;
		int anotherWholeNumber = 0;&lt;br /&gt;
		double anotherNotSoWholeNumber = 0;&lt;br /&gt;
		String anotherString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(anotherWholeNumber);&lt;br /&gt;
		System.out.println(anotherNotSoWholeNumber);&lt;br /&gt;
		System.out.println(anotherString);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; definiert?&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; initialisiert?&lt;br /&gt;
Beantworte diese Fragen auch für die Variablen: &#039;&#039;notAWholeNumber&#039;&#039;, &#039;&#039;aString&#039;&#039;, &#039;&#039;anotherWholeNumber&#039;&#039;, &#039;&#039;anotherNotSoWholeNumber&#039;&#039;, &#039;&#039;anotherString&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erkläre deine Meinung einem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		// deklariere eine Variable &amp;quot;birnen&amp;quot;  vom Typ int&lt;br /&gt;
		&lt;br /&gt;
		// weise ihr den Wert drei zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// addiere fünf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate. (Kopiere &lt;br /&gt;
* Was sind die Unterschiede?&lt;br /&gt;
* Warum?&lt;br /&gt;
Erkläre einem Tutor zu welchem Schluss du gekommen bist und frage ihn ob du Recht hast.&lt;br /&gt;
&lt;br /&gt;
== Variablen ändern ihre Werte ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int number = 1;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
		number = 1;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
		number = 2;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
		number = 3;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
		number = 1;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
		number = 17;&lt;br /&gt;
		System.out.println(number);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir  was dieser Code ausgeben würde.&lt;br /&gt;
Schreibe ihn in eine Datei, kompiliere ihn und führe ihn aus.&lt;br /&gt;
* Was gibt er tatsächlich aus?&lt;br /&gt;
* Gibt es unterschiede?&lt;br /&gt;
&lt;br /&gt;
== Formatierung ==&lt;br /&gt;
Wieso haben wir das Beispiel  nach den geschweiften Klammern eingerückt und die Variablen so gestellt wie wir es gestellt haben und nicht so:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class _{static long _&lt;br /&gt;
(long __,long  ___) {&lt;br /&gt;
return __==0 ?___+ 1:&lt;br /&gt;
___==0?_(__-1,1):_(__&lt;br /&gt;
-1,_(__, ___-1)) ;  }&lt;br /&gt;
static  {int _=2 ,___&lt;br /&gt;
= 2;System.out.print(&lt;br /&gt;
&amp;quot;a(&amp;quot;+_+’,’+___+ &amp;quot;)=&amp;quot;+&lt;br /&gt;
_ (_,  ___) ) ;System&lt;br /&gt;
.exit(1);}}//(C) Ulli&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Etwas weniger Extrem, wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {public static void main&lt;br /&gt;
	(String [] ignored) {&lt;br /&gt;
	System.out.println(0); int zero = 0;&lt;br /&gt;
			System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
			System.out.&lt;br /&gt;
		println(whatsThis);&lt;br /&gt;
	whatsThis = one;		System.out.println(whatsThis)&lt;br /&gt;
;}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class b {&lt;br /&gt;
	public static void main(String [] i) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int a = 0;&lt;br /&gt;
		System.out.println(a);&lt;br /&gt;
		int b = 1;&lt;br /&gt;
		int c = a;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
		c = b;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Variablen mit verschiedenen Typen zuweisen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= If =&lt;br /&gt;
== Einfache if-Bedingung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class If_Uebung1 {&lt;br /&gt;
    /* Eure Aufgabe:&lt;br /&gt;
     * Versucht nachzuvollziehen, was dieses Programm macht &lt;br /&gt;
     * und schaut Euch den Code an.&lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        /* &lt;br /&gt;
         * wir erzeugen uns hier eine Zufallszahl im&lt;br /&gt;
         * Bereich 1-6. Warum funktioniert das so?&lt;br /&gt;
         * Math.random ist eine statische Funktion im &lt;br /&gt;
         * Math-Paket, dass und eine double-Zahl, die kleiner&lt;br /&gt;
         * als 1.0 aber groesser oder gleich 0 ist.&lt;br /&gt;
         * Mit 6 multipliziert und um eins erhöht erhalten wir&lt;br /&gt;
         * Zahlen von 1.0 bis 6.99999...&lt;br /&gt;
         * Durch das Umwandeln in int werden die Nachkommastellen abgeschnitten&lt;br /&gt;
         * und wir erhalten ein int von 1 bis 6.&lt;br /&gt;
         */&lt;br /&gt;
        int wuerfelzahl = (int) (1 + (6 * Math.random()));&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Zur Kontrolle geben wir das Ergebnis aus &lt;br /&gt;
         */&lt;br /&gt;
        System.out.println(&amp;quot;Der Würfel hat &amp;quot; + wuerfelzahl + &amp;quot; ergeben.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Ist das Ergebnis groesser als 3 ?&lt;br /&gt;
         */&lt;br /&gt;
        if (wuerfelzahl &amp;gt; 3) {&lt;br /&gt;
            // Wenn ja gib diesen Text aus:&lt;br /&gt;
            System.out.println(&amp;quot;mehr als 3!&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mehrere if-Bedingungen ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class If_Uebung2 {&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
     * Eure Aufgabe:&lt;br /&gt;
     * Schaut Euch das Programm an und überlegt, was fuer verschiedene&lt;br /&gt;
     * Werte passiert. &lt;br /&gt;
     * Welche If-Abfragen sind unnötig, weil man die Ausgaben in else-Zweige von &lt;br /&gt;
     * bereits vorhandenen schreiben könnte?&lt;br /&gt;
     */&lt;br /&gt;
    &lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        &lt;br /&gt;
        int wert;&lt;br /&gt;
        &lt;br /&gt;
        wert = 5;&lt;br /&gt;
        &lt;br /&gt;
        if (wert&amp;lt;5){&lt;br /&gt;
            System.out.println(&amp;quot;Der Wert ist echt kleiner 5.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (wert&amp;gt;5){&lt;br /&gt;
            System.out.println(&amp;quot;Der Wert ist echt groesser 5.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (wert==5){&lt;br /&gt;
            System.out.println(&amp;quot;Der Wert ist gleich 5&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (wert&amp;gt;=5){&lt;br /&gt;
            System.out.println(&amp;quot;Der Wert ist groesser oder gleich 5&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if (wert&amp;lt;=5){&lt;br /&gt;
            System.out.println(&amp;quot;Der Wert ist kleiner oder gleich 5&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= For =&lt;br /&gt;
== for-Schleifen zum Zählen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class For_Uebung1 {&lt;br /&gt;
    /*&lt;br /&gt;
     * Eure Aufgabe:&lt;br /&gt;
     *  Schaut Euch dieses Programm an und überlegt, welche Zahlen&lt;br /&gt;
     *  es ausgeben wird. &lt;br /&gt;
     *  Anschliessend kompiliert das Programm, führt es aus und überprüft&lt;br /&gt;
     *  Eure Vermutungen.&lt;br /&gt;
     *  &lt;br /&gt;
     */&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        System.out.println(&amp;quot;erste for Schleife:&amp;quot;);&lt;br /&gt;
        for (int i = 1; i &amp;lt;= 10; i = i + 1) {&lt;br /&gt;
            System.out.print(&amp;quot; &amp;quot; + i);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(); // Zeilenumbruch&lt;br /&gt;
&lt;br /&gt;
        System.out.println(&amp;quot;zweite for Schleife:&amp;quot;);&lt;br /&gt;
        for (int i = 1; i &amp;lt;= 10; i = i + 2) {&lt;br /&gt;
            System.out.print(&amp;quot; &amp;quot; + i);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(); // Zeilenumbruch&lt;br /&gt;
&lt;br /&gt;
        System.out.println(&amp;quot;dritte for Schleife:&amp;quot;);&lt;br /&gt;
        for (int i = 1; i &amp;lt;= 10; i = i * 2) {&lt;br /&gt;
            System.out.print(&amp;quot; &amp;quot; + i);&lt;br /&gt;
        }&lt;br /&gt;
        System.out.println(); // Zeilenumbruch&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== for-Schleife und if-Bedingung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class ForIf_Uebung {&lt;br /&gt;
    &lt;br /&gt;
    // Welche Zahlen gibt dieses Programm aus ?&lt;br /&gt;
    &lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        for (int i=1;i&amp;lt;10;i++){&lt;br /&gt;
            if ((i % 2)==0){ // % ist der Modulo-Operator &lt;br /&gt;
                System.out.println(&amp;quot;Die Zahl &amp;quot;+i+&amp;quot; ist gerade.&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= While =&lt;br /&gt;
== einfache while-Schleife ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public class While_Uebung1 {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        int x=10;&lt;br /&gt;
        while (x&amp;gt;0){&lt;br /&gt;
            System.out.println(&amp;quot; x=&amp;quot; + x);  // Anhaengen von x an den String&lt;br /&gt;
            x=x-1;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Methoden =&lt;br /&gt;
== Was tut das? ==&lt;br /&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;
&lt;br /&gt;
//file: Methoden2.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;
    }&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;
&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;
&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;
&lt;br /&gt;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>130.149.17.41</name></author>
	</entry>
</feed>