<?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.39</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.39"/>
	<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/Spezial:Beitr%C3%A4ge/130.149.17.39"/>
	<updated>2026-11-03T13:23:42Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12585</id>
		<title>C-Kurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12585"/>
		<updated>2009-09-24T09:21:41Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Die Aufgaben */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. &lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer werden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Die Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 !Bearbeiter&lt;br /&gt;
 !Korrektur gelesen&lt;br /&gt;
 !Musterlösung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Von der Konsole zum HelloWorld | Von der Konsole zum HelloWorld]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Konsole benutzen, Hello World&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Fakultät | Fakultät]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Schleifen&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 |  &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Base64 | Base64]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Operatoren&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Base64/Musterlösung | Base64]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe | Ein- und Ausgabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Ausgabe derselben&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe/Musterlösung | Ein- und Ausgabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner | Taschenrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Eingabe+Ausgabe&amp;lt;br&amp;gt;Mathematische Operatoren&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Benutzer:Tkroenert|TKroenert]]&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner/Musterlösung | Taschenrechner]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/VerschachtelteSchleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Glückspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen und Einlesen von Werten aus der Konsole&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 | [[Ckurs2009/Glückspiel/Musterlösung | Glückspiel]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Wochentag | Wochentagsrechnung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Mathematikverständniss&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion (Musterlösung noch nicht vorhanden)&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0 | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Knobeln&amp;lt;br&amp;gt;Komplexes Aufgaben lösen&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0/Musterlösung | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Call by reference | Call by reference]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Einfache Anwendung von &amp;amp;/*&lt;br /&gt;
 | sping&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/Call by reference/Musterlösung | Call by reference]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Text processing | Text processing]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4, 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Strings&amp;lt;br&amp;gt;Pointer-Arithmetik&amp;lt;br&amp;gt;Pointer auf Pointer&amp;lt;br&amp;gt;Refactoring&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Text processing/Musterlösung | Text processing]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Strings&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 |&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping | (Pointer) Swapping]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Arrays benutzen, generisches swap&lt;br /&gt;
 | Katrin&lt;br /&gt;
 |&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping/Musterlösung | (Pointer) Swapping]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation | Matrizenmultiplikation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Mehrdimensionale Arrays&amp;lt;br&amp;gt;const correctness&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation/Musterlösung | Matrizenmultiplikation]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe | Arrayuebergabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4/5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Pointer und Pointerarithmetik&lt;br /&gt;
 | nion&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe/Musterlösung | Arrayuebergabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | struct, Pointer, Arrays&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank/Musterlösung | Studentendatenbank]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Sammelbestellung | Sammelbestellung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Listen, Pointer, Speicherverwaltung&lt;br /&gt;
 | Florian S.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 |  [[Ckurs2009/Sammelbestellung/Musterlösung | Eine Lösung]] &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen | Zahlen sagen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Umgang mit Zeichenketten&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen/Musterlösung | Zahlen sagen]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Compiler, Präprozessor, Header Files | Compiler, Präprozessor, Header Files]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Arbeiten mit mehreren Quellcode-Dateien, Kompilieren und Linken, Header-Dateien und #include, debugging-Makro verwenden&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | siehe Folien&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Bus Error | Bus Error]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Pointer, wie entsteht ein bus error&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/BubbleSortDebug | BubbleSort Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Debuggen eines Programmes mit gdb&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Debug | Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 1-8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Debuggen einer Anwendung nach Wahl&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | gibt es nicht&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Kleinere Codeschipsel mit kleinen Unsauberkeiten&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5-9&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Wie verbessere ich den Quellcode eines Programmes.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Cat | Cat]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Arbeiten mit Dateien&amp;lt;br&amp;gt;Kommandozeilenparameter&lt;br /&gt;
 | nion&lt;br /&gt;
 | sping&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Pong | Pong]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | allgemeiner Programmablauf, fortgeschrittene Konsolenausgaben/eingaben&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Buchhaltung | Buchhaltung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Lesen aus Dateien&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/StringArraySortieren | StringArraySortieren]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Konsolparameter, Funktionspointer, stdlib&lt;br /&gt;
 | reiner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs/integral | integral]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Funktionspointer&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs/forschleife | forschleife]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Bug&lt;br /&gt;
 | reiner&lt;br /&gt;
 | nion&lt;br /&gt;
 | vorhanden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
* wenn man nur den Promt &#039;bash-0.12&#039; oder so erhält, also ohne das Verzeichnis in dem man ist, folgendes Kommando eingeben: &amp;lt;tt&amp;gt;export PS1=&#039;\u@\h:\w$ &#039;&amp;lt;/tt&amp;gt; oder zum dauerhaften Speichern: &amp;lt;tt&amp;gt; echo &amp;quot;export PS1=&#039;\u@\h:\w$ &#039;&amp;quot; &amp;gt;&amp;gt; ~/.bashrc &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Musterlösungen ==&lt;br /&gt;
Die Lösungen zu den Aufgaben werden nach den jeweiligen Übungen hier veröffentlicht. Falls dies nicht geschieht, bitte den zuständigen Tutor fragen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Ckurs2009/Feedback|Feedback zum Kurs 2009]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;br /&gt;
[[Kategorie:CKurs Aufgaben]]&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/(Pointer)_Swapping/Musterl%C3%B6sung&amp;diff=12584</id>
		<title>C-Kurs/(Pointer) Swapping/Musterlösung</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/(Pointer)_Swapping/Musterl%C3%B6sung&amp;diff=12584"/>
		<updated>2009-09-24T09:18:47Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Teilaufgabe&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void swap(int *x, int *y) {&lt;br /&gt;
 &lt;br /&gt;
   int t = *x;&lt;br /&gt;
   *x = *y;&lt;br /&gt;
   *y = t;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
    &lt;br /&gt;
 int main(){&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
   int i= 1;&lt;br /&gt;
   int j= 2;&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, i, j);&lt;br /&gt;
 &lt;br /&gt;
   swap(&amp;amp;i, &amp;amp;j);&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, i, j);&lt;br /&gt;
 &lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Teilaufgabe&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void swap(int *x, int *y) {&lt;br /&gt;
 &lt;br /&gt;
   int t = *x;&lt;br /&gt;
   *x = *y;&lt;br /&gt;
   *y = t;&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
 void print_int_array(char* name, int* array, int size){&lt;br /&gt;
 &lt;br /&gt;
   int i;&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;%s:&amp;quot;, name);&lt;br /&gt;
   for(i= 0; i&amp;lt;size; i++)&lt;br /&gt;
     printf(&amp;quot; %i&amp;quot;, array[i]);&lt;br /&gt;
   printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
   int a[]= {1, 2, 3, 4};&lt;br /&gt;
   int b[]= {5, 6, 7, 8};&lt;br /&gt;
 &lt;br /&gt;
   print_int_array(&amp;quot;a&amp;quot;, a, sizeof(a)/sizeof(int));&lt;br /&gt;
   print_int_array(&amp;quot;b&amp;quot;, b, sizeof(b)/sizeof(int));&lt;br /&gt;
 &lt;br /&gt;
   int i;&lt;br /&gt;
   for(i=0; i&amp;lt;sizeof(a)/sizeof(int); i++)&lt;br /&gt;
     swap(&amp;amp;a[i], &amp;amp;b[i]);&lt;br /&gt;
 &lt;br /&gt;
   print_int_array(&amp;quot;a&amp;quot;, a, sizeof(a)/sizeof(int));&lt;br /&gt;
   print_int_array(&amp;quot;b&amp;quot;, b, sizeof(b)/sizeof(int));&lt;br /&gt;
 &lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.Teilaufgabe&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void swap(int **x, int **y) {&lt;br /&gt;
 &lt;br /&gt;
   int* t = *x;&lt;br /&gt;
   *x = *y;&lt;br /&gt;
   *y = t;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
    &lt;br /&gt;
 int main(){&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
   int i= 1;&lt;br /&gt;
   int j= 2;&lt;br /&gt;
 &lt;br /&gt;
   int* pi;&lt;br /&gt;
   pi= &amp;amp;i;&lt;br /&gt;
 &lt;br /&gt;
   int* pj;&lt;br /&gt;
   pj= &amp;amp;j;&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, *pi, *pj);&lt;br /&gt;
 &lt;br /&gt;
   swap(&amp;amp;pi, &amp;amp;pj);&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, *pi, *pj);&lt;br /&gt;
 &lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4.Teilaufgabe&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void swap(int **x, int **y) {&lt;br /&gt;
 &lt;br /&gt;
   int* t = *x;&lt;br /&gt;
   *x = *y;&lt;br /&gt;
   *y = t;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void print_int_array(char* name, int* array, int size){&lt;br /&gt;
 &lt;br /&gt;
   int i;&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;%s:&amp;quot;, name);&lt;br /&gt;
   for(i= 0; i&amp;lt;size; i++)&lt;br /&gt;
     printf(&amp;quot; %i&amp;quot;, array[i]);&lt;br /&gt;
   printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
    &lt;br /&gt;
 int main(){&lt;br /&gt;
   &lt;br /&gt;
   int a[]= {1, 2, 3, 4};&lt;br /&gt;
   int b[]= {5, 6, 7, 8};&lt;br /&gt;
  &lt;br /&gt;
   // a and b are constant&lt;br /&gt;
   // alternatively, you can use calloc&lt;br /&gt;
 &lt;br /&gt;
   int *pa;&lt;br /&gt;
   pa = &amp;amp;a[0]; &lt;br /&gt;
 &lt;br /&gt;
   int *pb;&lt;br /&gt;
   pb = &amp;amp;b[0];&lt;br /&gt;
   &lt;br /&gt;
   print_int_array(&amp;quot;a&amp;quot;, pa, sizeof(a)/sizeof(int));&lt;br /&gt;
   print_int_array(&amp;quot;b&amp;quot;, pb, sizeof(b)/sizeof(int));&lt;br /&gt;
 &lt;br /&gt;
   swap((void*)&amp;amp;pa, (void*)&amp;amp;pb);&lt;br /&gt;
 &lt;br /&gt;
   print_int_array(&amp;quot;a&amp;quot;, pa, sizeof(a)/sizeof(int));&lt;br /&gt;
   print_int_array(&amp;quot;b&amp;quot;, pb, sizeof(b)/sizeof(int));&lt;br /&gt;
 &lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Teilaufgabe&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void swap(void **x, void **y) {&lt;br /&gt;
   &lt;br /&gt;
   void *t = *x;&lt;br /&gt;
   *x = *y;&lt;br /&gt;
   *y = t;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void print_int_array(char* name, int* array, int size){&lt;br /&gt;
 &lt;br /&gt;
   int i;&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;%s:&amp;quot;, name);&lt;br /&gt;
   for(i= 0; i&amp;lt;size; i++)&lt;br /&gt;
     printf(&amp;quot; %i&amp;quot;, array[i]);&lt;br /&gt;
   printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void print_float_array(char* name, float* array, int size){&lt;br /&gt;
 &lt;br /&gt;
   int i;&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;%s:&amp;quot;, name);&lt;br /&gt;
   for(i= 0; i&amp;lt;size; i++)&lt;br /&gt;
     printf(&amp;quot; %f&amp;quot;, array[i]);&lt;br /&gt;
   printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
   int i= 1;&lt;br /&gt;
   int j= 2;&lt;br /&gt;
 &lt;br /&gt;
   int* pi;&lt;br /&gt;
   pi= &amp;amp;i;&lt;br /&gt;
 &lt;br /&gt;
   int* pj;&lt;br /&gt;
   pj= &amp;amp;j;&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, *pi, *pj);&lt;br /&gt;
 &lt;br /&gt;
   swap((void*)&amp;amp;pi, (void*)&amp;amp;pj);&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, *pi, *pj);&lt;br /&gt;
 &lt;br /&gt;
   int a[]= {1, 2, 3, 4};&lt;br /&gt;
   int b[]= {5, 6, 7, 8};&lt;br /&gt;
   &lt;br /&gt;
   // a and b are constant&lt;br /&gt;
   // alternatively, you can use calloc&lt;br /&gt;
 &lt;br /&gt;
   int *pa;&lt;br /&gt;
   pa = &amp;amp;a[0]; &lt;br /&gt;
 &lt;br /&gt;
   int *pb;&lt;br /&gt;
   pb = &amp;amp;b[0];&lt;br /&gt;
  &lt;br /&gt;
   print_int_array(&amp;quot;a&amp;quot;, pa, sizeof(a)/sizeof(int));&lt;br /&gt;
   print_int_array(&amp;quot;b&amp;quot;, pb, sizeof(b)/sizeof(int));&lt;br /&gt;
 &lt;br /&gt;
   swap((void**)&amp;amp;pa, (void**)&amp;amp;pb);&lt;br /&gt;
 &lt;br /&gt;
   print_int_array(&amp;quot;a&amp;quot;, pa, sizeof(a)/sizeof(int));&lt;br /&gt;
   print_int_array(&amp;quot;b&amp;quot;, pb, sizeof(b)/sizeof(int));&lt;br /&gt;
 &lt;br /&gt;
   float x[]= {1.0, 2.0, 3.0, 4.0};&lt;br /&gt;
   float y[]= {5.0, 6.0, 7.0, 8.0};&lt;br /&gt;
   &lt;br /&gt;
   // x and y are constant&lt;br /&gt;
   // alternatively, you can use calloc&lt;br /&gt;
 &lt;br /&gt;
   float *px;&lt;br /&gt;
   px = &amp;amp;x[0]; &lt;br /&gt;
 &lt;br /&gt;
   float *py;&lt;br /&gt;
   py = &amp;amp;y[0];&lt;br /&gt;
   &lt;br /&gt;
   print_float_array(&amp;quot;x&amp;quot;, px, sizeof(x)/sizeof(int));&lt;br /&gt;
   print_float_array(&amp;quot;y&amp;quot;, py, sizeof(y)/sizeof(int));&lt;br /&gt;
 &lt;br /&gt;
   swap((void**)&amp;amp;px, (void**)&amp;amp;py);&lt;br /&gt;
 &lt;br /&gt;
   print_float_array(&amp;quot;x&amp;quot;, px, sizeof(x)/sizeof(int));&lt;br /&gt;
   print_float_array(&amp;quot;y&amp;quot;, py, sizeof(y)/sizeof(int));&lt;br /&gt;
 &lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/(Pointer)_Swapping/Musterl%C3%B6sung&amp;diff=12580</id>
		<title>C-Kurs/(Pointer) Swapping/Musterlösung</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/(Pointer)_Swapping/Musterl%C3%B6sung&amp;diff=12580"/>
		<updated>2009-09-24T08:58:04Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Teilaufgabe&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void swap(int *x, int *y) {&lt;br /&gt;
 &lt;br /&gt;
   int t = *x;&lt;br /&gt;
   *x = *y;&lt;br /&gt;
   *y = t;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
    &lt;br /&gt;
 int main(){&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
   int i= 1;&lt;br /&gt;
   int j= 2;&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, i, j);&lt;br /&gt;
 &lt;br /&gt;
   swap(&amp;amp;i, &amp;amp;j);&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, i, j);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Teilaufgabe&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void swap(int *x, int *y) {&lt;br /&gt;
 &lt;br /&gt;
   int t = *x;&lt;br /&gt;
   *x = *y;&lt;br /&gt;
   *y = t;&lt;br /&gt;
 }&lt;br /&gt;
   &lt;br /&gt;
 void print_int_array(char* name, int* array, int size){&lt;br /&gt;
 &lt;br /&gt;
   int i;&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;%s:&amp;quot;, name);&lt;br /&gt;
   for(i= 0; i&amp;lt;size; i++)&lt;br /&gt;
     printf(&amp;quot; %i&amp;quot;, array[i]);&lt;br /&gt;
   printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
   int a[]= {1, 2, 3, 4};&lt;br /&gt;
   int b[]= {5, 6, 7, 8};&lt;br /&gt;
 &lt;br /&gt;
   print_int_array(&amp;quot;a&amp;quot;, a, sizeof(a)/sizeof(int));&lt;br /&gt;
   print_int_array(&amp;quot;b&amp;quot;, b, sizeof(b)/sizeof(int));&lt;br /&gt;
 &lt;br /&gt;
   int i;&lt;br /&gt;
   for(i=0; i&amp;lt;4; i++)&lt;br /&gt;
     swap(&amp;amp;a[i], &amp;amp;b[i]);&lt;br /&gt;
 &lt;br /&gt;
   print_int_array(&amp;quot;a&amp;quot;, a, sizeof(a)/sizeof(int));&lt;br /&gt;
   print_int_array(&amp;quot;b&amp;quot;, b, sizeof(b)/sizeof(int));&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/(Pointer)_Swapping/Musterl%C3%B6sung&amp;diff=12576</id>
		<title>C-Kurs/(Pointer) Swapping/Musterlösung</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/(Pointer)_Swapping/Musterl%C3%B6sung&amp;diff=12576"/>
		<updated>2009-09-24T08:40:55Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void swap(int *x, int *y) {&lt;br /&gt;
 &lt;br /&gt;
   int t = *x;&lt;br /&gt;
   *x = *y;&lt;br /&gt;
   *y = t;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
    &lt;br /&gt;
 int main(){&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
   int i= 1;&lt;br /&gt;
   int j= 2;&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, i, j);&lt;br /&gt;
 &lt;br /&gt;
   swap(&amp;amp;i, &amp;amp;j);&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, i, j);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/(Pointer)_Swapping/Musterl%C3%B6sung&amp;diff=12575</id>
		<title>C-Kurs/(Pointer) Swapping/Musterlösung</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/(Pointer)_Swapping/Musterl%C3%B6sung&amp;diff=12575"/>
		<updated>2009-09-24T08:40:13Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: Die Seite wurde neu angelegt: „ #include &amp;lt;stdio.h&amp;gt;      void swap(int *x, int *y) {     int t = *x;    *x = *y;    *y = t;  }         int main(){          int i= 1;    int j= 2;     printf(&amp;quot;i: ...“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 void swap(int *x, int *y) {&lt;br /&gt;
&lt;br /&gt;
   int t = *x;&lt;br /&gt;
   *x = *y;&lt;br /&gt;
   *y = t;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
    &lt;br /&gt;
 int main(){&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
   int i= 1;&lt;br /&gt;
   int j= 2;&lt;br /&gt;
&lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, i, j);&lt;br /&gt;
&lt;br /&gt;
   swap(&amp;amp;i, &amp;amp;j);&lt;br /&gt;
&lt;br /&gt;
   printf(&amp;quot;i: %i j: %i\n&amp;quot;, i, j);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12545</id>
		<title>C-Kurs/Übungsaufgaben</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/%C3%9Cbungsaufgaben&amp;diff=12545"/>
		<updated>2009-09-23T09:26:56Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Die Aufgaben */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. &lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer werden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;br /&gt;
&lt;br /&gt;
== Die Aufgaben ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 !Bearbeiter&lt;br /&gt;
 !Korrektur gelesen&lt;br /&gt;
 !Musterlösung&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Von der Konsole zum HelloWorld | Von der Konsole zum HelloWorld]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Konsole benutzen, Hello World&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Fakultät | Fakultät]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Schleifen&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 |  &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Base64 | Base64]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Operatoren&lt;br /&gt;
 | Sebastian D.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Base64/Musterlösung | Base64]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe | Ein- und Ausgabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Ausgabe derselben&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/EingabeAusgabe/Musterlösung | Ein- und Ausgabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner | Taschenrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Eingabe+Ausgabe&amp;lt;br&amp;gt;Mathematische Operatoren&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Benutzer:Tkroenert|TKroenert]]&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner/Musterlösung | Taschenrechner]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/VerschachtelteSchleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Glückspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen und Einlesen von Werten aus der Konsole&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 | [[Ckurs2009/Glückspiel/Musterlösung | Glückspiel]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Wochentag | Wochentagsrechnung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Mathematikverständniss&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | nion (Musterlösung noch nicht vorhanden)&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0 | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Knobeln&amp;lt;br&amp;gt;Komplexes Aufgaben lösen&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Taschenrechner2.0/Musterlösung | Taschenrechner &#039;&#039;2.0&#039;&#039;]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Call by reference | Call by reference]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Einfache Anwendung von &amp;amp;/*&lt;br /&gt;
 | sping&lt;br /&gt;
 | nion&lt;br /&gt;
 | [[Ckurs2009/Call by reference/Musterlösung | Call by reference]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Text processing | Text processing]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4, 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Strings&amp;lt;br&amp;gt;Pointer-Arithmetik&amp;lt;br&amp;gt;Pointer auf Pointer&amp;lt;br&amp;gt;Refactoring&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Text processing/Musterlösung | Text processing]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Strings&lt;br /&gt;
 | [[Benutzer:Dank|Daniel K.]]&lt;br /&gt;
 |&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/(Pointer) Swapping | (Pointer) Swapping]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Pointer und Arrays benutzen, generisches swap&lt;br /&gt;
 | Katrin&lt;br /&gt;
 |&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation | Matrizenmultiplikation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Mehrdimensionale Arrays&amp;lt;br&amp;gt;const correctness&lt;br /&gt;
 | sping&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | [[Ckurs2009/Matrizenmultiplikation/Musterlösung | Matrizenmultiplikation]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe | Arrayuebergabe]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4/5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | Einlesen von Benutzereingaben&amp;lt;br&amp;gt;Pointer und Pointerarithmetik&lt;br /&gt;
 | nion&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | [[Ckurs2009/Arrayuebergabe/Musterlösung | Arrayuebergabe]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 4. VL&lt;br /&gt;
 | struct, Pointer, Arrays&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | [[Ckurs2009/Studentendatenbank/Musterlösung | Studentendatenbank]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Sammelbestellung | Sammelbestellung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Listen, Pointer, Speicherverwaltung&lt;br /&gt;
 | Florian S.&lt;br /&gt;
 | [[Benutzer:Mario|Mario]]&lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen | Zahlen sagen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Umgang mit Zeichenketten&lt;br /&gt;
 | Martin K.&lt;br /&gt;
 | &lt;br /&gt;
 | [[Ckurs2009/Zahlen_sagen/Musterlösung | Zahlen sagen]]&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Compiler, Präprozessor, Header Files | Compiler, Präprozessor, Header Files]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Arbeiten mit mehreren Quellcode-Dateien, Kompilieren und Linken, Header-Dateien und #include, debugging-Makro verwenden&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 | siehe Folien&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Bus Error | Bus Error]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Pointer, wie entsteht ein bus error&lt;br /&gt;
 | Katrin&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/BubbleSortDebug | BubbleSort Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Debuggen eines Programmes mit gdb&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Debug | Debugging]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 1-8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6. VL&lt;br /&gt;
 | Debuggen einer Anwendung nach Wahl&lt;br /&gt;
 | aeichner&lt;br /&gt;
 |&lt;br /&gt;
 | gibt es nicht&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Code Layout | Code Layout]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Kleinere Codeschipsel mit kleinen Unsauberkeiten&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 |&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Refactoring | Refactoring]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5-9&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7. VL&lt;br /&gt;
 | Wie verbessere ich den Quellcode eines Programmes.&lt;br /&gt;
 | Daniel&lt;br /&gt;
 | &lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Cat | Cat]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Arbeiten mit Dateien&amp;lt;br&amp;gt;Kommandozeilenparameter&lt;br /&gt;
 | nion&lt;br /&gt;
 | sping&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Pong | Pong]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | allgemeiner Programmablauf, fortgeschrittene Konsolenausgaben/eingaben&lt;br /&gt;
 | AlexanderK&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden &lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/Buchhaltung | Buchhaltung]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Lesen aus Dateien&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs2009/StringArraySortieren | StringArraySortieren]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Konsolparameter, Funktionspointer, stdlib&lt;br /&gt;
 | reiner&lt;br /&gt;
 |&lt;br /&gt;
 | vorhanden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Ckurs/integral | integral]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ....&lt;br /&gt;
 | Funktionspointer&lt;br /&gt;
 | reiner&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Ckurs/forschleife | forschleife]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; | ...&lt;br /&gt;
 | Bug&lt;br /&gt;
 | reiner&lt;br /&gt;
 | nion&lt;br /&gt;
 | vorhanden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kleine und große Probleme ==&lt;br /&gt;
&lt;br /&gt;
* Die Tubit-Accounts haben nicht /bin/bash als shell, so dass die &amp;lt;strong&amp;gt;Cursortasten&amp;lt;/strong&amp;gt; nicht funktionieren. Workaround: als erstes Kommando &#039;bash&#039; eingeben, man sieht dann auch in welchem Verzeichnis man gerade ist.&lt;br /&gt;
* wenn man nur den Promt &#039;bash-0.12&#039; oder so erhält, also ohne das Verzeichnis in dem man ist, folgendes Kommando eingeben: &amp;lt;tt&amp;gt;export PS1=&#039;\u@\h:\w$ &#039;&amp;lt;/tt&amp;gt; oder zum dauerhaften Speichern: &amp;lt;tt&amp;gt; echo &amp;quot;export PS1=&#039;\u@\h:\w$ &#039;&amp;quot; &amp;gt;&amp;gt; ~/.bashrc &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Musterlösungen ==&lt;br /&gt;
Die Lösungen zu den Aufgaben werden nach den jeweiligen Übungen hier veröffentlicht. Falls dies nicht geschieht, bitte den zuständigen Tutor fragen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Ckurs2009/Feedback|Feedback zum Kurs 2009]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:CKurs]]&lt;br /&gt;
[[Kategorie:CKurs Aufgaben]]&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/Gl%C3%BCckspiel/Musterl%C3%B6sung&amp;diff=12544</id>
		<title>C-Kurs/Glückspiel/Musterlösung</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=C-Kurs/Gl%C3%BCckspiel/Musterl%C3%B6sung&amp;diff=12544"/>
		<updated>2009-09-23T09:25:41Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: Die Seite wurde neu angelegt: „== Musterlösung Glückspiel ==  &amp;lt;pre&amp;gt; #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;time.h&amp;gt;  void initialize_random_number_generator() {   srand(time(NULL)); }  int random_number...“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Musterlösung Glückspiel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;time.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void initialize_random_number_generator()&lt;br /&gt;
{&lt;br /&gt;
  srand(time(NULL));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int random_number()&lt;br /&gt;
{&lt;br /&gt;
  return rand();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int read_number(int player_num) {&lt;br /&gt;
	int number;&lt;br /&gt;
	printf(&amp;quot;Spieler %d, Ihre Zahl: &amp;quot;, player_num);&lt;br /&gt;
	scanf(&amp;quot;%d&amp;quot;, &amp;amp;number);&lt;br /&gt;
	return number;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)  {&lt;br /&gt;
&lt;br /&gt;
	/* Initialize random number generator */&lt;br /&gt;
	initialize_random_number_generator();&lt;br /&gt;
	&lt;br /&gt;
	/* Read first player&#039;s guess */&lt;br /&gt;
	int number1 = read_number(1);&lt;br /&gt;
	&lt;br /&gt;
	/* Read second player&#039;s guess */&lt;br /&gt;
	int number2 = read_number(2);&lt;br /&gt;
	&lt;br /&gt;
	/* Find and print random number */&lt;br /&gt;
	int random = rand() % 100;&lt;br /&gt;
	printf(&amp;quot;Die Zufallszahl lautet: %d\n&amp;quot;, random);&lt;br /&gt;
	&lt;br /&gt;
	/* Calculate differences between random number and player&#039;s guesses */&lt;br /&gt;
	int diff1 = abs(number1 - random);&lt;br /&gt;
	int diff2 = abs(number2 - random);&lt;br /&gt;
	&lt;br /&gt;
	/* Test whos guess is closer to random number */&lt;br /&gt;
	if (diff1 &amp;lt; diff2) {&lt;br /&gt;
		printf(&amp;quot;Spieler 1, Sie haben mit einem Abstand von %d vs. %d gewonnen.\n&amp;quot;, diff1, diff2);&lt;br /&gt;
	} else if (diff2 &amp;lt; diff1) {&lt;br /&gt;
		printf(&amp;quot;Spieler 2, Sie haben mit einem Abstand von %d vs. %d gewonnen.\n&amp;quot;, diff2, diff1);&lt;br /&gt;
	} else {&lt;br /&gt;
		printf(&amp;quot;Unentschieden.\n&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Vorlage:HauptseiteNewsBox&amp;diff=3039</id>
		<title>Vorlage:HauptseiteNewsBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Vorlage:HauptseiteNewsBox&amp;diff=3039"/>
		<updated>2008-10-27T15:34:21Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Kickertunier 2008 ===&lt;br /&gt;
&#039;&#039;27. Oktober 2008&#039;&#039; - Nun ist es soweit! Die Freitagsrunde veranstaltet am 11.11.2008 ein [[Kickerturnier_2008 | Kickertunier]]. Alle Teams müssen sich bis zum 09.11.2008 [[Kickerturnier_2008#Anmeldung | anmelden]] - Natürlich kostenlos! Neben interessanten Preisen wartet ein spannender Kickerabend an mehreren Tischen auf euch. Für euer leibliches Wohl ist natürlich auch gesorgt.&lt;br /&gt;
&lt;br /&gt;
=== Eclipsekurs 2008 ===&lt;br /&gt;
&#039;&#039;27. Oktober 2008&#039;&#039; - Die Freitagsrunde veranstaltet auch dieses Jahr wieder einen Eclipsekurs! Er zeigt euch, wie ihr besser und effizienter mit Java programmieren könnt. Am 8. und 15. November finden die Vorträge und betreute Übungen statt. Mehr Informationen und ein Link zur Kurs-Anmeldung findet ihr [[Eclipsekurs 2008 | hier]]. &lt;br /&gt;
&lt;br /&gt;
=== Embedded-Bash ===&lt;br /&gt;
&#039;&#039;17. Oktober 2008&#039;&#039; - Am 18. und 25. November findet der [[Embedded-Bash 2008]] statt.&lt;br /&gt;
Oft wird die Software eingebetteter Systeme vom Hersteller nur an eine spezielle Aufgabe angepasst, wobei die Hardware zu viel mehr in der Lage ist. Was ihr alles mehr mit eurem Router, Spielekonsole und mp3-Player machen könnt, und wie das geht erfahrt ihr auf dem [[Embedded-Bash]] der Freitagsrunde.&lt;br /&gt;
&lt;br /&gt;
=== Herzlich Willkommen ===&lt;br /&gt;
&#039;&#039;7. Oktober 2008&#039;&#039; - Die Freitagsrunde begrüßt die Studienanfänger der Informatik, der Elektrotechnik und der Technischen Informatik! Schön, dass ihr auch gleich unsere Internetseite gefunden habt. Vermutlich interessieren euch jetzt die [[Einführungswoche|Informationen zur Einführungswoche]], das [[:Kategorie:Fakultäts-ABC|Fakultäts-ABC]] und Informationen zur [[Freitagsrunde]].&lt;br /&gt;
&lt;br /&gt;
=== Vorankündigung: IPv6-Vortrag ===&lt;br /&gt;
&#039;&#039;13. September 2008&#039;&#039; - In etwa 5 Wochen, am 23. Oktober, findet ein Vortrag&lt;br /&gt;
zum Thema IPv6 statt, der sich sowohl an Einsteiger wie Profis richtet. Wer wissen möchte, was an IPv6 eigentlich so toll ist und was man alles umstellen muß, sollte sich diesen Vortrag nicht entgehen lassen. Mehr Informationen und Anmeldung auf der Wikiseite [[Vortrag_IPv6]].&lt;br /&gt;
&lt;br /&gt;
=== LinuxTag Tickets gewinnen ===&lt;br /&gt;
&#039;&#039;20. Mai 2008&#039;&#039; - Nächste Woche, vom 28. bis 31. Mai findet in Berlin der [http://www.linuxtag.org/2008/ LinuxTag] statt. Die Freitagsrunde verlost dafür mehrere Tickets für alle vier Tage! Zum Mitmachen gibt es nur zwei Regeln: (1) Macht eine sinnvolle Bearbeitung im Wiki ([[Klausurensammlung]] erweitern, Rechtschreibfehler korrigieren, Kommentar für eine Lehrveranstaltung abgeben). (2) Schickt eine Mail an [mailto:linuxtag@freitagsrunde.org linuxtag@freitagsrunde.org] mit dem Link. Bei mehr Teilnehmern als Tickets entscheidet das Los!&lt;br /&gt;
&lt;br /&gt;
=== Macht mit: Modul-Errata ===&lt;br /&gt;
&#039;&#039;16. Mai 2008&#039;&#039; - Wir sammeln auf in unserem Wiki unter [[Modulerrata]] nun Fehler in den Modulbeschreibungen der Studiengänge. Habt ihr in verschiedenen Vorlesungen das gleiche gehört? Setzt eine Vorlesung Wissen voraus, dass erst später vermittelt wird? [[Modulerrata|Lasst es uns wissen]]!&lt;br /&gt;
&lt;br /&gt;
=== Javakurs 2008 Videos online ===&lt;br /&gt;
&#039;&#039;18. April 2008&#039;&#039; - Die Videos der Vorträge des Javakurses sind nun alle online. Studierende die sich vielleicht den ein oder anderen Vortrag nochmal ansehen wollen oder am Kurs nicht teilnehmen konnten, können sich die Videos nun online ansehen. Zu finden sind sie hier [[Javakurs2008]] im Timetable, wo die einzelnen Vorträge verlinkt sind.&lt;br /&gt;
&lt;br /&gt;
=== Javakurs 2008 ===&lt;br /&gt;
&#039;&#039;10. Februar 2008&#039;&#039; - Auch dieses Jahr wird es wieder einen Javakurs der Freitagsrunde geben! Dieser Kurs wird jeden der sich dafür interessiert in die Progammiersprache Java einführen. Besonders Studierende der Fakultät 4 im 1. Semester sollten sich die Tage zwischen dem 7. und 10. April 2008 frei halten und häufig auf [[Javakurs2008|diese Seite]] gehen, da hier stets aktuelle Informationen zum Kurs zu finden sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Newsarchiv|Ältere Nachrichten finden sich im Archiv]]&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2006/Java_Kurzreferenz&amp;diff=7253</id>
		<title>Javakurs2006/Java Kurzreferenz</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2006/Java_Kurzreferenz&amp;diff=7253"/>
		<updated>2008-04-09T09:00:07Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* FAQ &amp;amp; Werkzeugkasten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier befindet sich eine kleine &#039;&#039;&#039;Referenz für Java&#039;&#039;&#039; speziell für den Javakurs der Freitagsrunde.&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Ein &#039;&#039;&#039;Kommentar&#039;&#039;&#039; ist ein Abschnitt des Java-Codes, der vom Java-Compiler ignoriert wird.  Man kann in ein Kommentar also schreiben was man will.  Kommentare sind nützlich, um den Quellcode zu dokumentieren.  &lt;br /&gt;
&lt;br /&gt;
In Java gibt es zwei Arten von Kommentaren: &lt;br /&gt;
&lt;br /&gt;
===Kommentare über eine Zeile===&lt;br /&gt;
&lt;br /&gt;
 // Diese ganze Zeile wird vom Compiler ignoriert.&lt;br /&gt;
 int x= 5;  // Dieser  Kommentar beginnt mit »//«.  Alles davor wird vom Compiler nicht ignoriert.&lt;br /&gt;
&lt;br /&gt;
===Kommentare über mehrere Zeilen===&lt;br /&gt;
&lt;br /&gt;
 /* Dieser &lt;br /&gt;
    Kommentar&lt;br /&gt;
    erstreckt &lt;br /&gt;
    sich &lt;br /&gt;
    über&lt;br /&gt;
    mehrere&lt;br /&gt;
    Zeilen.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
Zum Vergleich: in Opal werden Kommentare mit -- eingeführt.&lt;br /&gt;
&lt;br /&gt;
=== Javadoc-Kommentare ===&lt;br /&gt;
Um Programme zu dokumentieren gibt es in Java ein Tool: Javadoc. Damit lassen sich HTML-Seiten generieren, die informationen über eure Methoden und Klassen beinhalten.&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  Dies ist ein Javadoc-Kommentar &lt;br /&gt;
  und erscheint später in eurer Dokumentation.&lt;br /&gt;
  Was es für Optionen gibt, fragt eure Tutoren ;)&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
== Datentypen (Variablen) ==&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;80%&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#F9F9F9; font-size:95%; empty-cells:show;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#ABCDEF;&amp;quot; | Typ &lt;br /&gt;
! style=&amp;quot;background-color:#ABCDEF;&amp;quot; | Speicherbedarf&lt;br /&gt;
! style=&amp;quot;background-color:#ABCDEF;&amp;quot; | Bereich&lt;br /&gt;
|- &lt;br /&gt;
|void&lt;br /&gt;
|0 Byte&lt;br /&gt;
|keiner&lt;br /&gt;
|- &lt;br /&gt;
|boolean&lt;br /&gt;
|1 Byte&lt;br /&gt;
|true, false&lt;br /&gt;
|-&lt;br /&gt;
|int&lt;br /&gt;
|4 Byte&lt;br /&gt;
| -2.147.483.648 bis 2.147.483.647&lt;br /&gt;
|- &lt;br /&gt;
|short&lt;br /&gt;
|2 Byte&lt;br /&gt;
| -32.768 bis 32.787&lt;br /&gt;
|- &lt;br /&gt;
|long&lt;br /&gt;
|8 Byte&lt;br /&gt;
| -9.223.372.036.854.775.808L bis 9.223.372.036.854.775.807L&lt;br /&gt;
|- &lt;br /&gt;
|byte&lt;br /&gt;
|1 Byte&lt;br /&gt;
| -128 bis 127&lt;br /&gt;
|- &lt;br /&gt;
|float&lt;br /&gt;
|4 Byte&lt;br /&gt;
| +/-3,40282347E+38F&lt;br /&gt;
|- &lt;br /&gt;
|double&lt;br /&gt;
|8 Byte&lt;br /&gt;
| +/-1,79769313486231570E+308&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Boolsche Operatoren ==&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;80%&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#F9F9F9; font-size:95%; empty-cells:show;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#ABCDEF;&amp;quot; | Operator&lt;br /&gt;
! style=&amp;quot;background-color:#ABCDEF;&amp;quot; | Beispiel&lt;br /&gt;
! style=&amp;quot;background-color:#ABCDEF;&amp;quot; | Ergebnis des Beispiels&lt;br /&gt;
|- &lt;br /&gt;
| ==  &lt;br /&gt;
&#039;&#039;(gleich)&#039;&#039;&lt;br /&gt;
| 4 == 9&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| !=  &lt;br /&gt;
&#039;&#039;(ungleich)&#039;&#039;&lt;br /&gt;
| 4 != 8&lt;br /&gt;
| true&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;&amp;amp;  &lt;br /&gt;
&#039;&#039;(logisches UND)&#039;&#039;&lt;br /&gt;
| false &amp;amp;&amp;amp; true&lt;br /&gt;
| false, es wird erst der linke Ausdruck ausgewertet. Wenn die Auswertung false ergibt, wird der rechte Ausdruck nicht mehr geprüft, da das Ergebnis nicht mehr true werden kann.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt;  &lt;br /&gt;
&#039;&#039;(logisches ODER)&#039;&#039;&lt;br /&gt;
| true &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt; false&lt;br /&gt;
| true,  es wird erst der linke Ausdruck ausgewertet. Wenn die Auswertung true ergibt, wird der rechte Ausdruck nicht mehr geprüft, da das Ergebnis nicht mehr false werden kann.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;, &amp;lt;=, &amp;gt;, &amp;gt;=, &amp;lt;&amp;gt;&lt;br /&gt;
| 1 &amp;lt; 3  &#039;&#039;(hier exempalrisch nur eins)&#039;&#039;&lt;br /&gt;
| true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bitoperatoren ==&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;80%&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#F9F9F9; font-size:95%; empty-cells:show;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#ABCDEF;&amp;quot; | Operator&lt;br /&gt;
! style=&amp;quot;background-color:#ABCDEF;&amp;quot; | Beschreibung&lt;br /&gt;
! style=&amp;quot;background-color:#ABCDEF;&amp;quot; | Erklärung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;&lt;br /&gt;
| AND&lt;br /&gt;
| Wie das logische UND, jedoch werden auf jeden Fall beide Seiten ausgewertet.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| OR&lt;br /&gt;
| Wie das logische ODER, jedoch werden auf jeden Fall beide Seiten ausgewertet.&lt;br /&gt;
|-&lt;br /&gt;
| ^&lt;br /&gt;
| XOR&lt;br /&gt;
| Exklusives ODER&lt;br /&gt;
|-&lt;br /&gt;
| ~&lt;br /&gt;
| NOT&lt;br /&gt;
| Negation des Wertes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Konstanten ==&lt;br /&gt;
* In Java werden Konstanten mit dem Schlüsselwort &#039;&#039;&#039;final&#039;&#039;&#039; bezeichnet. In Java gibt es die Konvention Konstanten komplett groß zu schreiben:&lt;br /&gt;
&lt;br /&gt;
 final double PI = 3.14;&lt;br /&gt;
&lt;br /&gt;
== Zuweisungen und Initialisierungen ==&lt;br /&gt;
Wenn man eine Variable erstellt und sie mit Werten füllen will, wird man auf folgende Syntax stoßen:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;Datentyp&#039;&#039; Variablenname = &#039;&#039;Initialisierungswert&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
Es gibt zwei Möglichkeiten diese Aktion durchzuführen:&lt;br /&gt;
* lange Variante:&lt;br /&gt;
 int zahl;&lt;br /&gt;
 zahl = 23;&lt;br /&gt;
&lt;br /&gt;
* kurze Variante:&lt;br /&gt;
 int zahl = 23;&lt;br /&gt;
&lt;br /&gt;
= if-Anweisung =&lt;br /&gt;
* Die einfachste Variante:&lt;br /&gt;
&lt;br /&gt;
 if (condition) {&lt;br /&gt;
    &#039;&#039;Anweisungen;&#039;&#039;	&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Zusätzlich hat diese Variante einen alternativen Anweisungsblock. Wenn &#039;&#039;condition&#039;&#039; nicht erfüllt gehe in den &#039;&#039;else&#039;&#039;-Zweig und führe dort die Anweisungen aus.&lt;br /&gt;
&lt;br /&gt;
 if (condition) {&lt;br /&gt;
    &#039;&#039;Anweisungen;&#039;&#039;	&lt;br /&gt;
 } else {&lt;br /&gt;
    &#039;&#039;Anweisungen;&#039;&#039;&lt;br /&gt;
 }&lt;br /&gt;
	&lt;br /&gt;
* Natürlich lassen sich beide Varianten schachteln. Man kann also auf zwei Bedingungen prüfen und bei nicht Eintreffen in den &#039;&#039;else&#039;&#039;-Zweig gehen.&lt;br /&gt;
		&lt;br /&gt;
 if (condition) {&lt;br /&gt;
    &#039;&#039;Anweisungen;&#039;&#039;	&lt;br /&gt;
 } else if (condition) {&lt;br /&gt;
    &#039;&#039;Anweisungen;&#039;&#039;			&lt;br /&gt;
 } else {&lt;br /&gt;
    &#039;&#039;Anweisungen;&#039;&#039;		&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= Schleifen =&lt;br /&gt;
== for-Schleife ==&lt;br /&gt;
* Um über Array&#039;s zu wandern bietet sich die for-Schleife an. Als erstes in der Klammer muß eine Laufvariable deklariert und mit einem Wert initialisiert werden (hier int i= 0). Danach muß eine Bedingung erfüllen, um festzulegen bis wann die Schleife ausgeführt wird (i &amp;lt; 10). Als letztes muß die Laufvariable verändert werden, so daß irgendwann der Abbruch eintritt (i++).&lt;br /&gt;
&lt;br /&gt;
 for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
 &lt;br /&gt;
    &#039;&#039;Anweisungen;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== while-Schleife ==&lt;br /&gt;
* Die while-Schleife wird meistens dafür benutzt, Anweisungen auszuführen bis irgendetwas eintrifft (z.B. EOF -End Of File). Für Arrays sollte man die for-Schleife nehmen. Die while-Schleife lässt sich auch als for-Schleife schreiben.&lt;br /&gt;
&lt;br /&gt;
 while (condition) {&lt;br /&gt;
     &#039;&#039;Anweisungen;&#039;&#039;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= switch-case =&lt;br /&gt;
* Wenn man verschiedene Werte abfangen möchte, wie zum Beispiel verschiedene Zahlen (bei einem Menü). Gehen wir mal davon aus, daß wir drei Menüeinträge haben: &lt;br /&gt;
# &#039;&#039;1&#039;&#039;&lt;br /&gt;
# &#039;&#039;2&#039;&#039;&lt;br /&gt;
# &#039;&#039;0&#039;&#039; &lt;br /&gt;
&#039;&#039;1&#039;&#039; gibt die Zahl &#039;&#039;&#039;1&#039;&#039;&#039;, &#039;&#039;2&#039;&#039; gibt die Zahl &#039;&#039;&#039;2&#039;&#039;&#039; aus und &#039;&#039;0&#039;&#039; beendet das Programm, dann ist key zum Beispiel ein &#039;&#039;&#039;int&#039;&#039;&#039; und &#039;&#039;&#039;value&#039;&#039;&#039; würde den einzelnen Menüpunkten entsprechen. Das &#039;&#039;break&#039;&#039; bewirkt ein rausspringen aus dem switch-Konstrukt. Würde man das &#039;&#039;break&#039;&#039; weglassen, würden sämtliche Anweisungen die direkt darunter folgen, ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 switch (key) {&lt;br /&gt;
    case value: {&lt;br /&gt;
       &#039;&#039;Anweisungen;&#039;&#039;&lt;br /&gt;
       break;&lt;br /&gt;
    }&lt;br /&gt;
    default: {&lt;br /&gt;
       &#039;&#039;Anweisungen;&#039;&#039;&lt;br /&gt;
       break;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Leider ist switch/case in Java nicht wirklich konsequent umgesetzt, sodass sich wirklich nur Werte ganzahligen Typs (Byte, Short und Integer) mit dieser Art der Verzweigung abfragen/auswerten lassen.&lt;br /&gt;
&lt;br /&gt;
= Grundgerüst eines Javaprogramms=&lt;br /&gt;
&lt;br /&gt;
Da der Programmierer vom Kopieren lebt, schreibt er einmal eine Schablone und benutzt sie immer wieder, frei nach dem Motto: Man muß das Rad nicht zweimal erfinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So sieht zum Beispiel ein simples Javaprogramm ohne Handlung aus:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 public class Klassenname {&lt;br /&gt;
 &lt;br /&gt;
 	/**&lt;br /&gt;
 	 * @param args&lt;br /&gt;
 	 */&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		// TODO Anweisungen&lt;br /&gt;
 &lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erläuterungen:&#039;&#039;&#039;&lt;br /&gt;
@param ist für das Dokumentationssystem Javadoc, wird im Javakurs vielleicht angesprochen, sollte aber erstmal zweitrangig sein. Dennoch ist Dokumentation wichtiger als der eigentliche Code und deshalb hier erwähnt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Funktionen (Methoden) =&lt;br /&gt;
In Java programmiert man meistens Objektorientiert, es sei denn man belegt Info2. Funktionen heißen bei Java Methoden und Methoden sind Objekten zugeordnet, es sei denn man programmiert nicht Objektorientiert.&lt;br /&gt;
Eine Methode hat immer folgenden Aufbau:&lt;br /&gt;
&lt;br /&gt;
 Spezialoption &#039;&#039;Veröffentlichungsart&#039;&#039; &#039;&#039;&#039;Rückgabewert&#039;&#039;&#039; Funktionsname &#039;&#039;&#039;(&#039;&#039;&#039; Parametertyp &#039;&#039;Parametername&#039;&#039; &#039;&#039;&#039;)&#039;&#039;&#039; {&lt;br /&gt;
 &lt;br /&gt;
    Methodenrumpf_mit_Anweisungen;&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Spezialoption:&lt;br /&gt;
* static&lt;br /&gt;
* final&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Veröffentlichungsart&#039;&#039;:&lt;br /&gt;
* public&lt;br /&gt;
* protected&lt;br /&gt;
* private&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Spezialoption&amp;quot; und &amp;quot;Veröffentlichungsart&amp;quot; werden in Java unter dem Begriff &#039;&#039;Modifier&#039;&#039; zusammengefasst. Eine Auflistung der Modifier gibt es [http://www.javacamp.org/javaI/modifier.html hier].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rückgabewert&#039;&#039;&#039;:&lt;br /&gt;
* sämtliche oben aufgeführte Datentypen &lt;br /&gt;
* eigene Datentypen&lt;br /&gt;
&lt;br /&gt;
Funktionsname:&lt;br /&gt;
* einen für die Funktion bezeichnenden Namen aus Buchstaben, Zahlen und dem Underscore ( &#039;&#039;_&#039;&#039; )&lt;br /&gt;
* darf nicht mit eine Zahl beginnen&lt;br /&gt;
&lt;br /&gt;
Parametertyp:&lt;br /&gt;
* wie &#039;&#039;&#039;Rückgabewert&#039;&#039;&#039;, siehe oben&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Parametername&#039;&#039;:&lt;br /&gt;
* wie Funtionsname, siehe oben&lt;br /&gt;
&lt;br /&gt;
= Ausgabe =&lt;br /&gt;
* Um Fehler finden zu können oder Ausgaben auf der Konsole zu machen, gibt es in Java &#039;&#039;print&#039;&#039;-Funktionen:&lt;br /&gt;
&lt;br /&gt;
 System.out.print(&amp;quot;Irgend ein String.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Gibt &#039;&#039;Irgend ein String.&#039;&#039; auf der Konsole aus ohne einen Zeilenumbruch.&lt;br /&gt;
&lt;br /&gt;
 System.out.println(&amp;quot;Noch ein String.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Gibt &#039;&#039;Noch ein String.&#039;&#039; auf der Konsole aus allerdings diesmal mit einem Zeilenumbruch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Klassen =&lt;br /&gt;
&lt;br /&gt;
== Einfache Datenklasse ==&lt;br /&gt;
&lt;br /&gt;
Manchmal braucht man neue Datentypen, zum Beispiel um eine Farbe oder einen Punkt zu speichern und &lt;br /&gt;
damit arbeiten zu können.&lt;br /&gt;
&lt;br /&gt;
Die kann dann wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
=== Eine Punktklasse ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Punkt{&lt;br /&gt;
 int x;&lt;br /&gt;
 int y;&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Eine Farbenklasse ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Farbe{&lt;br /&gt;
 double rotanteil;&lt;br /&gt;
 double gruenanteil;&lt;br /&gt;
 double blauanteil;&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese beiden Klassen kann man so schon tatsächlich verwenden. Allerdings sind sie alles andere &lt;br /&gt;
als objektorientiert. Sie sind simple Datencontainer und wenn man sie verwenden will, muss man alles über ihren &lt;br /&gt;
internen Aufbau wissen, wie folgendes Programm zeigt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class PundF{&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args){&lt;br /&gt;
    &lt;br /&gt;
        Farbe farbe1 = new Farbe();&lt;br /&gt;
&lt;br /&gt;
        farbe1.rotanteil = 0.5;&lt;br /&gt;
        farbe1.blauanteil = 0.5;&lt;br /&gt;
        farbe1.gruenanteil = 0.5;&lt;br /&gt;
&lt;br /&gt;
        Punkt p = new Punkt();&lt;br /&gt;
&lt;br /&gt;
        p.x=123;&lt;br /&gt;
        p.y=321;&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;
Das ist nicht sehr praktisch, weil man sich vorstellen kann, dass man die Implementierung,&lt;br /&gt;
also den internen Aufbau z.B. des Punktes, ändern muss. Vielleicht verwendet man statt der&lt;br /&gt;
kartesischen Koordinaten nun Polarkoordinaten, oder man muss die Farben in einem anderen&lt;br /&gt;
Farbraum speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit jemand, der diese Klassen benutzt, sich nicht darum kuemmern braucht, wie die Daten intern gespeichert werden,&lt;br /&gt;
benutzt man zum Zugriff auf die Daten sogenannte &#039;&#039;getter&#039;&#039;- und &#039;&#039;setter&#039;&#039;-Methoden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eine bessere Punktklasse - getter und setter ===&lt;br /&gt;
&lt;br /&gt;
Man kann die Punktklasse nun wie folgt erweitern:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Punkt{&lt;br /&gt;
   private int x;&lt;br /&gt;
   private int y;&lt;br /&gt;
&lt;br /&gt;
   public int getX(){&lt;br /&gt;
    return this.x;&lt;br /&gt;
   }&lt;br /&gt;
   public int getY(){&lt;br /&gt;
    return this.y;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   public void setX(int arg){&lt;br /&gt;
    this.x = arg;&lt;br /&gt;
   }&lt;br /&gt;
   public void setY(int arg){&lt;br /&gt;
    this.y = arg;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Huch - was soll denn dieses ganze &#039;&#039;&#039;private&#039;&#039;&#039; und &#039;&#039;&#039;public&#039;&#039;&#039; ploetzlich?!&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das relativ einfach. Die Daten haben wir &#039;&#039;private&#039;&#039; deklariert, dass heisst, wir dürfen nur&lt;br /&gt;
noch innerhalb unserer Klasse darauf zugreifen. Damit wird verhindert, dass jemand von aussen versucht &lt;br /&gt;
direkt auf die x-Koordinate zuzugreifen, die ja vielleicht irgendwann gar nicht mehr direkt vorhanden ist,&lt;br /&gt;
wenn wir Polarkoordinaten verwenden:&lt;br /&gt;
&lt;br /&gt;
=== Punkt mit Polarkoordinaten ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Punkt{&lt;br /&gt;
   private double length;&lt;br /&gt;
   private double angle;&lt;br /&gt;
&lt;br /&gt;
   public int getX(){&lt;br /&gt;
    return ...&lt;br /&gt;
   }&lt;br /&gt;
   public int getY(){&lt;br /&gt;
    return ...&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   public void setX(int arg){&lt;br /&gt;
    this.length = ... &lt;br /&gt;
   }&lt;br /&gt;
   public void setY(int arg){&lt;br /&gt;
    this.angle = ...&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;
Der Vorteil: Alle anderen Programmteile und Klassen koennen wie bisher mit Hilfe der Getter und Setter &lt;br /&gt;
an die X und Y-Koordinaten kommen, obwohl intern nur Polarkoordinaten vorliegen. Dieses Beispiel &lt;br /&gt;
ist nicht vollständig, die Mathematik wurde absichtlich weggelassen um Verwirrung zu verhindern ;)&lt;br /&gt;
[Ausserdem braucht man fuer die Überführung in Polarkoordinaten immer x und y Werte, hat den Sonderfall,&lt;br /&gt;
dass x nicht 0 sein darf, etc...]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konstruktor ==&lt;br /&gt;
&lt;br /&gt;
Ein Konstruktor ist eine besondere Methode, die beim erzeugen eines neuen Objektes (aus einer Klasse) aufgerufen&lt;br /&gt;
wird. Damit kann man Variables initialisieren/mit Werten vorbelegen, etc.&lt;br /&gt;
&lt;br /&gt;
Für unsere Punktklasse sieht ein Konstruktor zum Beispiel so aus:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
public Punkt(int x, int y){&lt;br /&gt;
    this.x = x;&lt;br /&gt;
    this.y = y;&lt;br /&gt;
}   &lt;br /&gt;
...&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Schluesselwort this bringt damit zum Ausdruck, dass wir nicht auf die Parameter des&lt;br /&gt;
Konstruktors zugreifen wollen, sondern auf die Attribute dieser (this) Klasse.&lt;br /&gt;
&lt;br /&gt;
Im Zusammenhang sieht das dann wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Punkt{&lt;br /&gt;
   private int x;&lt;br /&gt;
   private int y;&lt;br /&gt;
&lt;br /&gt;
   // Konstruktor:&lt;br /&gt;
   public Punkt(int x, int y){&lt;br /&gt;
    this.x = x;&lt;br /&gt;
    this.y = y;&lt;br /&gt;
   }   &lt;br /&gt;
&lt;br /&gt;
   public int getX(){&lt;br /&gt;
    return this.x;&lt;br /&gt;
   }&lt;br /&gt;
   public int getY(){&lt;br /&gt;
    return this.y;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   public void setX(int arg){&lt;br /&gt;
    this.x = arg;&lt;br /&gt;
   }&lt;br /&gt;
   public void setY(int arg){&lt;br /&gt;
    this.y = arg;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Anwendung ist ebenfalls relativ einfach:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   Punkt p = new Punkt(5,5);&lt;br /&gt;
   Punkt ursprung = new Punkt(0,0);&lt;br /&gt;
   ...&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Komplexere Klasse ==&lt;br /&gt;
&lt;br /&gt;
Java ist ja eine Objektorientierte Sprache, bzw. unterstützt Objektorientiertes Programmieren.&lt;br /&gt;
Wodurch zeichnet sich das aus? &lt;br /&gt;
&lt;br /&gt;
Ein Effekt ist, dass eine Klasse alles mitbringt, um mit ihr zu arbeiten, man als Anwender aber nichts über die &lt;br /&gt;
Innereien der Klasse wissen muss. &lt;br /&gt;
&lt;br /&gt;
Im folgenden soll eine Klasse vorgestellt werden, die ein Postpaket darstellt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Postpaket{&lt;br /&gt;
&lt;br /&gt;
  private int breite;  // in cm&lt;br /&gt;
  private int hoehe;   // in cm&lt;br /&gt;
  private int tiefe;   // in cm&lt;br /&gt;
&lt;br /&gt;
  private int gewicht; // in Gramm&lt;br /&gt;
&lt;br /&gt;
  // Kontruktor, um beim erzeugen eines Paketes&lt;br /&gt;
  // direkt alle Werte vorzubelegen&lt;br /&gt;
  public Postpaket(int breite, int hoehe, int tiefe){&lt;br /&gt;
      this.breite = breite;&lt;br /&gt;
      this.hoehe  = hoehe;&lt;br /&gt;
      this.tiefe  = tiefe;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public int getWeight(){&lt;br /&gt;
      return this.gewicht;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void setWeight(int weight){&lt;br /&gt;
      this.gewicht = weight;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // groesse in Kubikzentimeter&lt;br /&gt;
  public int getVolume(){&lt;br /&gt;
      return this.breite * this.hoehe * this.tiefe;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  // spezifisches Gewicht in Gramm Pro Kubikzentimeter&lt;br /&gt;
  public double getSpecSize ()&lt;br /&gt;
  {&lt;br /&gt;
    // wir muessen hier vol als double sichern, da sonst&lt;br /&gt;
    // von Java automatisch eine Integer-Division&lt;br /&gt;
    // durchgeführt wird, so dass die Nachkommastellen abgeschnitten werden!&lt;br /&gt;
    double vol = ( this.breite * this.hoehe * this.tiefe);&lt;br /&gt;
    return (this.gewicht / vol );&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;
Wie verwendet man diese Klasse nun?&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Programm{&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args){&lt;br /&gt;
&lt;br /&gt;
        Postpaket paket = new Postpaket(340,123,240);&lt;br /&gt;
        &lt;br /&gt;
        paket.setWeight(1420);&lt;br /&gt;
&lt;br /&gt;
        // wir haben jetzt ein Paket mit Gewicht...&lt;br /&gt;
&lt;br /&gt;
        System.out.println(&amp;quot;Das spezifische Gewicht des Pakets: &amp;quot; + paket.getSpecSize());&lt;br /&gt;
        System.out.println(&amp;quot;Das Volumen des Pakets            : &amp;quot; + paket.getVolume());&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;
= FAQ &amp;amp; Werkzeugkasten =&lt;br /&gt;
&lt;br /&gt;
== Wie kann man den Benutzer nach einer Eingabe fragen? ==&lt;br /&gt;
Die ist ganz einfach mit der [[Javakurs2007/Terminal|Terminal-Klasse]] möglich. Möchte man zum Beispiel einen Integerwert einlesen, so schreibt man:&lt;br /&gt;
&lt;br /&gt;
 int userInput = Terminal.readInt();&lt;br /&gt;
&lt;br /&gt;
Wenn man dem Benutzer noch eine Aufforderung geben möchte, was er genau eingeben soll, so ist dies mit askInt() möglich:&lt;br /&gt;
&lt;br /&gt;
 int age = Terminal.askInt(&amp;quot;Please enter your name:&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Natürlich lassen sich auch andere Typen als Integer einlesen, für double und String würde der Code so aussehen:&lt;br /&gt;
&lt;br /&gt;
 double money = Terminal.readDouble();&lt;br /&gt;
 String name = Terminal.readString();&lt;br /&gt;
&lt;br /&gt;
Um die Terminal-Klasse nutzen zu können, muss diese in den gleichen Ordner kopiert werden, in dem sich auch euer Javacode befindet.&lt;br /&gt;
&lt;br /&gt;
Download der Klasse Terminal [http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/Terminal.java].&lt;br /&gt;
&lt;br /&gt;
== Wie kann ich eine Datei einlesen? ==&lt;br /&gt;
&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 getFileContent(String filename) könnt ihr so den Inhalt einer kompletten Datei in ein String-Array lesen, wobei ein Feld im Array jeweils eine Zeile im Text darstellt:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   String[] textContent = EasyFileAccess.getFileContent(&amp;quot;Dateipfad&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Häufige Fehlermeldungen ==&lt;br /&gt;
Wir haben eine [[Javakurs2007/Errors|kleine Übersicht]] an Fehlern zusammengestellt, die häufig auftreten und mögliche Lösungsmöglichkeiten dafür beschrieben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wozu ist der Stringarray args in der Mainmethode gut? ==&lt;br /&gt;
&lt;br /&gt;
In args werden alle Parameter gespeichert, die euer Javaprogramm beim Aufruf aus der Konsole uebergeben bekommt. D.h. wenn ihr&lt;br /&gt;
 java ExampleProgram -h test&lt;br /&gt;
aufruft, dann wird in args[0] &amp;quot;-h&amp;quot; und in args[1] &amp;quot;test&amp;quot; gespeichert. Ihr koennt Parameter dann so auslesen (mit Integer.parseInt() kann man Strings in Integer umwandeln):&lt;br /&gt;
 public class Parameter {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
       if (args.length &amp;gt;= 1) {&lt;br /&gt;
           // wandel den String args[0] in eine Zahl um&lt;br /&gt;
           int parameter = Integer.parseInt(args[0]);&lt;br /&gt;
           System.out.println(&amp;quot;the first parameter is: &amp;quot;+parameter);&lt;br /&gt;
       } else {&lt;br /&gt;
           System.out.println(&amp;quot;usage: java Parameter NUMBER&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9364</id>
		<title>Javakurs/Übungsaufgaben/Javamenue</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9364"/>
		<updated>2008-04-08T12:29:39Z</updated>

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

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Austausch bzw. Anschaffung von Möbelstücken für unseren Raum==&lt;br /&gt;
&lt;br /&gt;
===Möbellager===&lt;br /&gt;
Einmal im Monat findet im Möbellager (Franklin 28/29, im Keller neben Fahrstuhl A) eine Besichtigung statt. Zu dieser hat man sich vorher bei der/dem Verantwortlichen zu melden. Man benötigt eine Kostenstelle und das Sekretariatskürzel (FR 5-1). Bei der Besichtigung sollten Tesafilm, Kugelschreiber und (wenn notwendig) ein Zollstock nicht fehlen ;-).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ansprechpartner:&lt;br /&gt;
:Frau Köhler&lt;br /&gt;
:Telefon:314-78577&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Transport===&lt;br /&gt;
Nachdem ein Möbelstück im Lager ausgesucht und reserviert wurde, meldet man sich bei der/dem Transportbeauftragten. Diese Person erhält die ausgefüllten Formulare aus dem Möbellager und macht dann einen Termin mit den Möbelträgern aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ansprechpartner:&lt;br /&gt;
:Daniela Szulczewski&lt;br /&gt;
:Telefon:314-23949&lt;br /&gt;
:Zimmer:H 1002d&lt;br /&gt;
:Sekretariat:IV G 5&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Fakultäts-ABC]]&lt;br /&gt;
[[Kategorie: Adressen]]&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Doom&amp;diff=9609</id>
		<title>Javakurs/Übungsaufgaben/Doom</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Doom&amp;diff=9609"/>
		<updated>2007-04-13T12:37:30Z</updated>

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

		<summary type="html">&lt;p&gt;130.149.17.39: /* Wettbüro */&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.&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 Konstructor 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 angenommenden 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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rennschnecke&amp;diff=7289</id>
		<title>Javakurs/Übungsaufgaben/Rennschnecke</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Rennschnecke&amp;diff=7289"/>
		<updated>2007-04-13T11:54:04Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Kommentare */&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.&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 Konstructor 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 angenommenden 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;rennenDurchfueren()&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/ArrayList&amp;diff=10036</id>
		<title>Javakurs/Übungsaufgaben/ArrayList</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/ArrayList&amp;diff=10036"/>
		<updated>2007-04-13T08:57:15Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Generics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Eine ArrayList ist ein Hilfsmittel, um Listen mit sich ändernder Größe &lt;br /&gt;
zu verwalten. Sie sind im &#039;Lieferumfang&#039; von Java enthalten.&lt;br /&gt;
&lt;br /&gt;
Javadoc zu [http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html ArrayList]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arrays - Wozu benötigen wir eine ArrayList? ==&lt;br /&gt;
Wenn man ein Array benutzt, so muss man schon beim Anlegen wissen,&lt;br /&gt;
wieviele Elemente man darin speichern will. &lt;br /&gt;
&lt;br /&gt;
Im Code sieht das so aus:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 int[] foo = new int[4];&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will man nun aber 5 Elemente in dem schon angelegten Array speichern, so müsste man erst ein&lt;br /&gt;
grösseres Array anlegen und dann alle Elemente kopieren:&lt;br /&gt;
      &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
       &lt;br /&gt;
        //wir wollen ein 5. Element - was nun?!&lt;br /&gt;
        int[] bar = new int[5];          // neues Array erzeugen&lt;br /&gt;
        for (int i=0;i&amp;lt;foo.length;i++){  // array durchlaufen&lt;br /&gt;
            bar[i]=foo[i];               // Werte kopieren&lt;br /&gt;
        }&lt;br /&gt;
         foo=bar;                        //alte Referenz überschreiben&lt;br /&gt;
         &lt;br /&gt;
         foo[5] = 5;                     // Wert hinzufügen&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auf Dauer ist das keine Lösung, zumal dies bei jedem weiteren Vergrößern &lt;br /&gt;
notwendig wird - je länger das Array ist, desto länger dauert die Aktion.&lt;br /&gt;
&lt;br /&gt;
Die Rettung heißt: ArrayList&lt;br /&gt;
&lt;br /&gt;
== Ein kleines Beispielprogramm für ArrayList ==&lt;br /&gt;
&lt;br /&gt;
Im Folgenden seht Ihr ein vollständiges und lauffähiges Programm, dass mehr&lt;br /&gt;
oder minder sinnvolle Operationen mit einer Array-List vollführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// WICHTIG: Einbinden der ArrayList aus der java-api:&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
&lt;br /&gt;
public class ArrayListExample {&lt;br /&gt;
    &lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
    &lt;br /&gt;
        //anlegen einer ArrayListe&lt;br /&gt;
        ArrayList liste = new ArrayList();&lt;br /&gt;
        &lt;br /&gt;
        //fuellen der Liste mit Daten&lt;br /&gt;
        liste.add(&amp;quot;Apfel&amp;quot;);&lt;br /&gt;
        liste.add(&amp;quot;Birne&amp;quot;);&lt;br /&gt;
        liste.add(&amp;quot;Stuhl&amp;quot;);&lt;br /&gt;
        liste.add(&amp;quot;Orange&amp;quot;);&lt;br /&gt;
        liste.add(&amp;quot;Zitrone&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
        //Ausgeben der Liste&lt;br /&gt;
        System.out.println(liste);&lt;br /&gt;
        &lt;br /&gt;
        //Hmm - der gehoert hier nicht rein!&lt;br /&gt;
        liste.remove(&amp;quot;Stuhl&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        // nochmal ausgeben&lt;br /&gt;
        System.out.println(liste);&lt;br /&gt;
        &lt;br /&gt;
        //testen ob Stuhl enthalten:&lt;br /&gt;
        if (liste.contains (&amp;quot;Stuhl&amp;quot;)){&lt;br /&gt;
            System.out.println(&amp;quot;Der Stuhl ist noch drin.&amp;quot;);&lt;br /&gt;
        }else{&lt;br /&gt;
            System.out.println(&amp;quot;Der Stuhl ist draußen.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // testen ob Birne enthalten:&lt;br /&gt;
        if (liste.contains (&amp;quot;Birne&amp;quot;)){&lt;br /&gt;
            System.out.println(&amp;quot;Die Birne ist noch drin.&amp;quot;);&lt;br /&gt;
        }else{&lt;br /&gt;
            System.out.println(&amp;quot;Die Birne ist draußen.&amp;quot;);&lt;br /&gt;
        }&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;
Die ArrayList bietet noch einige weitere Methoden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
   int  liste.size();       // liefert die Anzahl der Elemente in der Liste&lt;br /&gt;
   Object liste.get(int i); // liefert den Eintrag an Stelle i&lt;br /&gt;
   liste.remove(int i);     // entfernt den Eintrag an Stelle i&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Art und Weise, wie in diesem Beispiel die ArrayList benutzt wird hat nur einen kleinen Haken: Sie ist nicht typsicher. Das bedeutet, dass in der Liste alle Elemente&lt;br /&gt;
als Typ &#039;&#039;&#039;Object&#039;&#039;&#039; gespeichert werden. Daher muss man sie explizit umwandeln:&lt;br /&gt;
&lt;br /&gt;
Die Zeile:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
   String obst = liste.get(2);&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
ergibt beim compilieren einen Fehler, da in der Liste &amp;quot;Objects&amp;quot; gespeichert sind und keine Strings.&lt;br /&gt;
&lt;br /&gt;
Das bedeutet zwar, dass man in diese ArrayList nicht nur Strings hinein geben kann, sondern beliebige Typen. Das klingt erst einmal gut, weil man sich ja nicht nur auf Strings beschränken will - aber wie bekommen wir nun Strings heraus?&lt;br /&gt;
&lt;br /&gt;
=== Generics ===&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit besteht darin, die sogenannten &amp;quot;Generics&amp;quot; zu benutzen.&lt;br /&gt;
Keine Angst, auch wenn viele was anderes behaupten ist es eigentlich ganz einfach.&lt;br /&gt;
&lt;br /&gt;
Wir müssen dazu in unserem Beispiel nur eine Zeile ändern:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
        //anlegen einer ArrayListe&lt;br /&gt;
        ArrayList &amp;lt;String&amp;gt; liste = new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ab sofort erlaubt der Java Compiler und nur noch Objekte vom Typ String in &lt;br /&gt;
der ArrayList zu speichern. Alles andere wird schon beim compilieren&lt;br /&gt;
verhindert, so dass wir gar keine falschen Typen mehr einfügen können.&lt;br /&gt;
&lt;br /&gt;
Versucht es ruhig einmal selber: &amp;lt;br&amp;gt;&lt;br /&gt;
Kopiert das ArrayList-Programm von oben zunächst ohne die Änderung. Dann erweitert es mit dem folgenden Kommando, um einen String für die Variable &amp;quot;obst&amp;quot; zu erhalten:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
   String obst = liste.get(2);&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Casten ===&lt;br /&gt;
&lt;br /&gt;
Eine andere Möglichkeit besteht darin, dem Java-Compiler zu sagen, &lt;br /&gt;
dass Ihr euch sicher seid, keinen Typfehler zu machen und dass er den Typ&lt;br /&gt;
einfach umwandeln soll. Das nennt man casten und es funktioniert so:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
   String obst = (String) liste.get(2);&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit sagt ihr dem compiler: &amp;quot;Hey, ich weiß dass da etwas anderes als ein String&lt;br /&gt;
rauskommt. Ich bin mir aber sicher, dass man das Element wie einen String behandeln kann!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Das Problem an der Lösung ist, dass man unheimlich aufpassen muss, nicht versehentlich doch z.B. eine Rennschnecke im Array gespeichert zu haben, weil es dann einen Fehler zur Laufzeit des Programms gibt.&lt;br /&gt;
&lt;br /&gt;
== Ein Beispiel für komplexe Datentypen ==&lt;br /&gt;
&lt;br /&gt;
Im Folgenden seht ihr drei Klassen, bei der in der ersten&lt;br /&gt;
eine ArrayList zum Einsatz kommt, um die Teilnehmer an einem&lt;br /&gt;
Praktikum zu verwalten. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * DATEI: Praktikum.java&lt;br /&gt;
 */&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
&lt;br /&gt;
 class Praktikum {&lt;br /&gt;
&lt;br /&gt;
    String name;&lt;br /&gt;
&lt;br /&gt;
    ArrayList&amp;lt;Student&amp;gt; studenten; // ArrayList nur fuer Studenten&lt;br /&gt;
&lt;br /&gt;
    Praktikum(String aName) {&lt;br /&gt;
        this.name = aName;&lt;br /&gt;
        this.studenten = new ArrayList&amp;lt;Student&amp;gt;();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    void addStudent(Student aStudent) {&lt;br /&gt;
        studenten.add(aStudent);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //TODO: removeStudent - &lt;br /&gt;
    // durch die studenten gehen und nach z.B. dem Namen suchen,&lt;br /&gt;
    // etc.... ;) &lt;br /&gt;
&lt;br /&gt;
    double getAverageGrade() {&lt;br /&gt;
        double average = 0; // initialisieren des Durchschnitts&lt;br /&gt;
        int numberOfStudents = studenten.size();&lt;br /&gt;
&lt;br /&gt;
        if (numberOfStudents &amp;gt; 0) { // vermeiden der Division duch 0&lt;br /&gt;
            for (int position = 0; position &amp;lt; numberOfStudents; position++) {&lt;br /&gt;
                Student current = studenten.get(position);&lt;br /&gt;
                average += current.grade;&lt;br /&gt;
            }&lt;br /&gt;
            average = average / numberOfStudents;&lt;br /&gt;
        }&lt;br /&gt;
        return average;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String toString(){&lt;br /&gt;
        int numberOfStudents = this.studenten.size();&lt;br /&gt;
        String result= this.name+&amp;quot;: \n&amp;quot;;&lt;br /&gt;
        result +=      &amp;quot;Teilnehmer       : &amp;quot;+numberOfStudents +&amp;quot;\n&amp;quot;;&lt;br /&gt;
        result +=      &amp;quot;Durchschnittsnote: &amp;quot;+this.getAverageGrade()+&amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        for (int position = 0; position &amp;lt; numberOfStudents; position++) {&lt;br /&gt;
            Student current = studenten.get(position);&lt;br /&gt;
            result += &amp;quot;   &amp;quot;+position+&amp;quot;.: &amp;quot;+current.name+&amp;quot; (&amp;quot;+current.grade+&amp;quot;) \n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        return result;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * DATEI: Student.java&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
public class Student {&lt;br /&gt;
    &lt;br /&gt;
    double grade;&lt;br /&gt;
    String name;&lt;br /&gt;
    &lt;br /&gt;
    Student(String aName,double aGrade){&lt;br /&gt;
        this.grade=aGrade;&lt;br /&gt;
        this.name=aName;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * DATEI: TestPraktikum.java&lt;br /&gt;
 */&lt;br /&gt;
public class TestPraktikum {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
          Praktikum unixPraktikum = new Praktikum(&amp;quot;UNIX-Praktikum&amp;quot;);&lt;br /&gt;
          &lt;br /&gt;
          Student florian = new Student(&amp;quot;Florian&amp;quot;,1.0);&lt;br /&gt;
          Student maximilian = new Student(&amp;quot;Maximilian&amp;quot;,2.8);&lt;br /&gt;
&lt;br /&gt;
          unixPraktikum.addStudent(florian);&lt;br /&gt;
          unixPraktikum.addStudent(maximilian);&lt;br /&gt;
          &lt;br /&gt;
          System.out.println(unixPraktikum);&lt;br /&gt;
          &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Errors&amp;diff=10011</id>
		<title>Javakurs/Übungsaufgaben/Errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Errors&amp;diff=10011"/>
		<updated>2007-04-12T13:46:47Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ihr findet hier eine kurze Erklärung mit Lösungsansatz zu den häufigsten Compiler- und Laufzeitfehlern. Versucht diese Fehlermeldungen bitte immer zu lesen, Java gibt euch relativ aufschlussreiche Fehlermeldungen, sodass es durchaus möglich ist, von der Meldung auf den tatsächlichen Fehler zu schließen!&lt;br /&gt;
&lt;br /&gt;
=&#039;&#039;&#039;CompilerFehler&#039;&#039;&#039;=&lt;br /&gt;
&lt;br /&gt;
== non-static method someMethod() cannot be referenced from a static context ==&lt;br /&gt;
 pepino felixf 3 (~/Desktop): javac Test.java&lt;br /&gt;
 Test.java:13: non-static method someMethod() cannot be referenced from a static context&lt;br /&gt;
                 someMethod();&lt;br /&gt;
                 ^&lt;br /&gt;
 1 error&lt;br /&gt;
&lt;br /&gt;
Diese Fehler tritt auf, wenn eine Objectmethode wie eine statische Methode aufgerufen wird, d.h. die Methode wir nicht auf eine Objekt aufgerufen, sondern wie eine statische Methode ohne Punktoperator.&lt;br /&gt;
Lösung:&lt;br /&gt;
 FooBar name = new FooBar();&lt;br /&gt;
 name.someMethod();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Falsche Parameter==&lt;br /&gt;
 bruja shabanov 23 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:4: setANumber(int) in Errors cannot be applied to (java.lang.String)                &lt;br /&gt;
                setANumber(&amp;quot;aNumber&amp;quot;);&lt;br /&gt;
                ^&lt;br /&gt;
 1 error&lt;br /&gt;
*Dieser Fehler tritt auf wenn ihr z.B. bei einem Methodenaufruf Parameter eines falschen Typs übergebt.&lt;br /&gt;
*Hier erwartet die Methode setANumber eine Zahl vom Typ int, bekommt aber einen String. Das geht nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Inkompatible Typen==&lt;br /&gt;
 bruja shabanov 18 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:6: incompatible types&lt;br /&gt;
 found   : java.lang.String&lt;br /&gt;
 required: double&lt;br /&gt;
                 double aDouble = anInt + aString;&lt;br /&gt;
                                        ^&lt;br /&gt;
 1 error &lt;br /&gt;
*Dieser Fehler tritt dann auf, wenn bei einer Zuweisung die Datentypen der Variablen nicht übereinstimmen, wie in diesem fehlerhaften Code:&lt;br /&gt;
                String aString= &amp;quot;47&amp;quot;;&lt;br /&gt;
 		int anInt = 11;		&lt;br /&gt;
 		double aDouble = anInt + aString;&lt;br /&gt;
*Es ist zwar möglich, aus einer Zahl einen String zu erzeugen und umgekehrt. Da dies aber relativ kompliziert ist, behandeln wir das im Rahmen dieses Kurses nicht. Versucht einfach, Zahlen mit Zahlen und Strings mit Strings zu verknüpfen, dann wird euch auch der Compiler danken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Klammer fehlt==&lt;br /&gt;
&lt;br /&gt;
 bruja shabanov 10 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:&#039;&#039;&#039;7&#039;&#039;&#039;: &#039;}&#039; expected&lt;br /&gt;
 &#039;&#039;&#039;^&#039;&#039;&#039;&lt;br /&gt;
 1 error&lt;br /&gt;
* Es fehlt einfach eine geschweifte Klammer.&lt;br /&gt;
* Jedes Mal, wenn ihr eine geschweifte Klammer aufmacht, macht sie gleich wieder zu, damit ihr das später nicht vergesst.&lt;br /&gt;
* Bei Klammerfehlern solltet ihr nach jedem korrigierten Fehler neu kompilieren, da es normalerweise zu sehr vielen Folgefehlern kommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semikolon fehlt==&lt;br /&gt;
 bruja shabanov 25 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:5: &#039;;&#039; expected&lt;br /&gt;
         }&lt;br /&gt;
         ^&lt;br /&gt;
 1 error&lt;br /&gt;
*Es fehlt einfach ein Semikolon.&lt;br /&gt;
*Sucht &#039;&#039;vor&#039;&#039; der angegebenen Zeile nach einer Anweisung, die kein Semikolon am Ende hat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Doppelte Deklaration==&lt;br /&gt;
 bruja shabanov 11 (Desktop/JavaKurs): javac Errors.java Errors.java:5: i is already defined in main(java.lang.String[])&lt;br /&gt;
                 for( int i = 0 ; i &amp;lt; 10 ; i++ ){&lt;br /&gt;
                          ^&lt;br /&gt;
 1 error&lt;br /&gt;
&lt;br /&gt;
* Die Variable i ist irgendwo bereits definiert gewesen. Sucht also vor dieser Zeile nach einem:&lt;br /&gt;
 int i = ..&lt;br /&gt;
* Ihr müsst dann den Variablennamen in der Schleife z.B. ändern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definition fehlt==&lt;br /&gt;
 bruja shabanov 5 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:15: variable ret might not have been initialized&lt;br /&gt;
                 return ret;&lt;br /&gt;
                        ^&lt;br /&gt;
 1 error&lt;br /&gt;
* Ihr habt eine Variable nicht richtig initialisiert, das passiert oft, wenn ihr einer Variable innerhalb einer if-Anweisung Werte zuweist, wie in diesem Code (der zudem obigen Fehler führt):&lt;br /&gt;
 	public static String someMethod( int x ){&lt;br /&gt;
 		String ret;&lt;br /&gt;
 		if( x ==  4711 ){&lt;br /&gt;
 			ret = &amp;quot;foobar&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		return ret;&lt;br /&gt;
 	}&lt;br /&gt;
* Die Variable &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; bekommt nur dann einen Wert zugeordnet, wenn x == 4711 gilt, da dies nicht immer der Fall sein muss, könnte der Fall auftreten, dass &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; gar keinen Wert zugeordnet bekommt.&lt;br /&gt;
* Fügt einen default-Wert für &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; hinzu um diesen Fehler zu beheben, z.B. so:&lt;br /&gt;
  		String ret = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==verwirrender Vergleichsfehler==&lt;br /&gt;
Hangman.java:36: unexpected type&lt;br /&gt;
required: variable&lt;br /&gt;
found   : value&lt;br /&gt;
                        if (wort.charAt(i) = buchstabe) {&lt;br /&gt;
*Statt einem Vergleich hat man den Wert überspeichert und ein verwirrender Fehler ergötzt sich unser.&lt;br /&gt;
&lt;br /&gt;
==Missing return statement==&lt;br /&gt;
 bruja shabanov 6 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:17: missing return statement&lt;br /&gt;
         }&lt;br /&gt;
         ^&lt;br /&gt;
 1 error&lt;br /&gt;
* Ihr habt in einer Methode, die etwas zurückgeben soll, entweder das return vergessen, oder das return steht nur innerhalb von if-Anweisungen, wie hier:&lt;br /&gt;
 	public static boolean isPositive( int num ){&lt;br /&gt;
 		if( num &amp;gt; 0 ){&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}else if( num &amp;lt; 0 ){&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}			&lt;br /&gt;
 	}&lt;br /&gt;
* Da alle returns in einem if-Block stehen, könnte es theoretisch sein, dass keiner der Blöcke ausgeführt wird und Java somit nicht weiß, was es zurück geben soll.&lt;br /&gt;
* Fügt, um das Problem zu lösen, ein return am Ende eurer Methode ein, oder ändert ein else if in ein else.&lt;br /&gt;
        public static boolean isPositive( int num ){&lt;br /&gt;
 		if( num &amp;gt; 0 ){&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}else if( num &amp;lt; 0 ){&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}			&lt;br /&gt;
 		&#039;&#039;&#039;return false;&#039;&#039;&#039;&lt;br /&gt;
 	}&lt;br /&gt;
&lt;br /&gt;
=&#039;&#039;&#039;Laufzeit-Fehler oder Exceptions (sprich Äkssepschons)&#039;&#039;&#039;= &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.NoClassDefFoundError==&lt;br /&gt;
 bruja shabanov 7 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NoClassDefFoundError: Errors&lt;br /&gt;
* Das heißt, Java kann die Klasse nicht finden, die ihr ausführen wollt.&lt;br /&gt;
* Schaut &#039;&#039;&#039;genau&#039;&#039;&#039; nach, ob der Dateiname und der Klassennamme gleich sind. Dabei ist auch wichtig, die Groß-/Kleinschreibung zu beachten. Außerdem achtet darauf, ob ihr in die Konsole die richtigen Namen eingetippt habt.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
==java.lang.NoSuchMethodError==&lt;br /&gt;
 bruja shabanov 9 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NoSuchMethodError: main&lt;br /&gt;
* Java findet eine Methode nicht (hier speziell die main Methode).&lt;br /&gt;
* Schaut, ob ihr beim Aufruf den Methodennamen richtig geschrieben habt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.ArrayIndexOutOfBoundsException==&lt;br /&gt;
 bruja shabanov 8 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.ArrayIndexOutOfBoundsException: 2&lt;br /&gt;
         at Errors.main(Errors.java:5)&lt;br /&gt;
*Ihr versucht, auf ein Array Feld zuzugreifen, was außerhalb der Größe des Arrays liegt. &lt;br /&gt;
*Sucht in der angegeben Zeile nach dem Zugriff auf das Array und stellt fest, warum der Index zu groß geworden ist.&lt;br /&gt;
*&amp;quot;Printline-Debugging&amp;quot; hilft (Index vor jedem Zugriff ausgeben)!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.NullPointerException==&lt;br /&gt;
 bruja shabanov 13 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NullPointerException&lt;br /&gt;
        at Errors.main(Errors.java:5)&lt;br /&gt;
*Ihr versucht, auf eine Variable zuzugreifen oder führt mit ihr Operationen aus, obwohl sie noch nicht initialisiert ist.&lt;br /&gt;
*Das passiert oft, wenn man mit z.B. String-Arrays arbeitet. Obwohl man das Array initialisiert hat, sind die Elemente darin noch nicht initialisiert.&lt;br /&gt;
 String[] stringArray = new String[12];&lt;br /&gt;
*Hier kann es helfen, den Array-Elementen entweder direkt Werte zuzuweisen oder mit einer Schleife alle auf einen default-Wert setzen:&lt;br /&gt;
 for(int i = 0 ; i &amp;lt; stringArray.length ; i++ ){&lt;br /&gt;
     stringArray[i] = &amp;quot;&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==java.lang.ArithmeticException==&lt;br /&gt;
 bruja shabanov 15 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.ArithmeticException: / by zero&lt;br /&gt;
         at Errors.main(Errors.java:4)&lt;br /&gt;
*Dieser Fehler tritt auf, wenn ihr versucht, ungültige arithmetische Operationen auszuführen, wie hier die Division durch 0.&lt;br /&gt;
*Ihr könnt euch Gedanken über das axiomatische Gerüst der Mathematik machen und nach einem Weg suchen, durch 0 zu teilen, einfacher ist es jedoch, wenn ihr nicht durch 0 teilt, keine Wurzeln aus negativen Zahlen zieht usw.&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Errors&amp;diff=10010</id>
		<title>Javakurs/Übungsaufgaben/Errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Errors&amp;diff=10010"/>
		<updated>2007-04-12T13:46:40Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ihr findet hier eine kurze Erklärung mit Lösungsansatz zu den häufigsten Compiler- und Laufzeitfehlern. Versucht diese Fehlermeldungen bitte immer zu lesen, Java gibt euch relativ aufschlussreiche Fehlermeldungen, sodass es durchaus möglich ist, von der Meldung auf den tatsächlichen Fehler zu schließen!&lt;br /&gt;
&lt;br /&gt;
=&#039;&#039;&#039;CompilerFehler&#039;&#039;&#039;=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Falsche Parameter==&lt;br /&gt;
 bruja shabanov 23 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:4: setANumber(int) in Errors cannot be applied to (java.lang.String)                &lt;br /&gt;
                setANumber(&amp;quot;aNumber&amp;quot;);&lt;br /&gt;
                ^&lt;br /&gt;
 1 error&lt;br /&gt;
*Dieser Fehler tritt auf wenn ihr z.B. bei einem Methodenaufruf Parameter eines falschen Typs übergebt.&lt;br /&gt;
*Hier erwartet die Methode setANumber eine Zahl vom Typ int, bekommt aber einen String. Das geht nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Inkompatible Typen==&lt;br /&gt;
 bruja shabanov 18 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:6: incompatible types&lt;br /&gt;
 found   : java.lang.String&lt;br /&gt;
 required: double&lt;br /&gt;
                 double aDouble = anInt + aString;&lt;br /&gt;
                                        ^&lt;br /&gt;
 1 error &lt;br /&gt;
*Dieser Fehler tritt dann auf, wenn bei einer Zuweisung die Datentypen der Variablen nicht übereinstimmen, wie in diesem fehlerhaften Code:&lt;br /&gt;
                String aString= &amp;quot;47&amp;quot;;&lt;br /&gt;
 		int anInt = 11;		&lt;br /&gt;
 		double aDouble = anInt + aString;&lt;br /&gt;
*Es ist zwar möglich, aus einer Zahl einen String zu erzeugen und umgekehrt. Da dies aber relativ kompliziert ist, behandeln wir das im Rahmen dieses Kurses nicht. Versucht einfach, Zahlen mit Zahlen und Strings mit Strings zu verknüpfen, dann wird euch auch der Compiler danken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Klammer fehlt==&lt;br /&gt;
&lt;br /&gt;
 bruja shabanov 10 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:&#039;&#039;&#039;7&#039;&#039;&#039;: &#039;}&#039; expected&lt;br /&gt;
 &#039;&#039;&#039;^&#039;&#039;&#039;&lt;br /&gt;
 1 error&lt;br /&gt;
* Es fehlt einfach eine geschweifte Klammer.&lt;br /&gt;
* Jedes Mal, wenn ihr eine geschweifte Klammer aufmacht, macht sie gleich wieder zu, damit ihr das später nicht vergesst.&lt;br /&gt;
* Bei Klammerfehlern solltet ihr nach jedem korrigierten Fehler neu kompilieren, da es normalerweise zu sehr vielen Folgefehlern kommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semikolon fehlt==&lt;br /&gt;
 bruja shabanov 25 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:5: &#039;;&#039; expected&lt;br /&gt;
         }&lt;br /&gt;
         ^&lt;br /&gt;
 1 error&lt;br /&gt;
*Es fehlt einfach ein Semikolon.&lt;br /&gt;
*Sucht &#039;&#039;vor&#039;&#039; der angegebenen Zeile nach einer Anweisung, die kein Semikolon am Ende hat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Doppelte Deklaration==&lt;br /&gt;
 bruja shabanov 11 (Desktop/JavaKurs): javac Errors.java Errors.java:5: i is already defined in main(java.lang.String[])&lt;br /&gt;
                 for( int i = 0 ; i &amp;lt; 10 ; i++ ){&lt;br /&gt;
                          ^&lt;br /&gt;
 1 error&lt;br /&gt;
&lt;br /&gt;
* Die Variable i ist irgendwo bereits definiert gewesen. Sucht also vor dieser Zeile nach einem:&lt;br /&gt;
 int i = ..&lt;br /&gt;
* Ihr müsst dann den Variablennamen in der Schleife z.B. ändern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definition fehlt==&lt;br /&gt;
 bruja shabanov 5 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:15: variable ret might not have been initialized&lt;br /&gt;
                 return ret;&lt;br /&gt;
                        ^&lt;br /&gt;
 1 error&lt;br /&gt;
* Ihr habt eine Variable nicht richtig initialisiert, das passiert oft, wenn ihr einer Variable innerhalb einer if-Anweisung Werte zuweist, wie in diesem Code (der zudem obigen Fehler führt):&lt;br /&gt;
 	public static String someMethod( int x ){&lt;br /&gt;
 		String ret;&lt;br /&gt;
 		if( x ==  4711 ){&lt;br /&gt;
 			ret = &amp;quot;foobar&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		return ret;&lt;br /&gt;
 	}&lt;br /&gt;
* Die Variable &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; bekommt nur dann einen Wert zugeordnet, wenn x == 4711 gilt, da dies nicht immer der Fall sein muss, könnte der Fall auftreten, dass &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; gar keinen Wert zugeordnet bekommt.&lt;br /&gt;
* Fügt einen default-Wert für &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; hinzu um diesen Fehler zu beheben, z.B. so:&lt;br /&gt;
  		String ret = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==verwirrender Vergleichsfehler==&lt;br /&gt;
Hangman.java:36: unexpected type&lt;br /&gt;
required: variable&lt;br /&gt;
found   : value&lt;br /&gt;
                        if (wort.charAt(i) = buchstabe) {&lt;br /&gt;
*Statt einem Vergleich hat man den Wert überspeichert und ein verwirrender Fehler ergötzt sich unser.&lt;br /&gt;
&lt;br /&gt;
==Missing return statement==&lt;br /&gt;
 bruja shabanov 6 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:17: missing return statement&lt;br /&gt;
         }&lt;br /&gt;
         ^&lt;br /&gt;
 1 error&lt;br /&gt;
* Ihr habt in einer Methode, die etwas zurückgeben soll, entweder das return vergessen, oder das return steht nur innerhalb von if-Anweisungen, wie hier:&lt;br /&gt;
 	public static boolean isPositive( int num ){&lt;br /&gt;
 		if( num &amp;gt; 0 ){&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}else if( num &amp;lt; 0 ){&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}			&lt;br /&gt;
 	}&lt;br /&gt;
* Da alle returns in einem if-Block stehen, könnte es theoretisch sein, dass keiner der Blöcke ausgeführt wird und Java somit nicht weiß, was es zurück geben soll.&lt;br /&gt;
* Fügt, um das Problem zu lösen, ein return am Ende eurer Methode ein, oder ändert ein else if in ein else.&lt;br /&gt;
        public static boolean isPositive( int num ){&lt;br /&gt;
 		if( num &amp;gt; 0 ){&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}else if( num &amp;lt; 0 ){&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}			&lt;br /&gt;
 		&#039;&#039;&#039;return false;&#039;&#039;&#039;&lt;br /&gt;
 	}&lt;br /&gt;
&lt;br /&gt;
=&#039;&#039;&#039;Laufzeit-Fehler oder Exceptions (sprich Äkssepschons)&#039;&#039;&#039;= &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.NoClassDefFoundError==&lt;br /&gt;
 bruja shabanov 7 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NoClassDefFoundError: Errors&lt;br /&gt;
* Das heißt, Java kann die Klasse nicht finden, die ihr ausführen wollt.&lt;br /&gt;
* Schaut &#039;&#039;&#039;genau&#039;&#039;&#039; nach, ob der Dateiname und der Klassennamme gleich sind. Dabei ist auch wichtig, die Groß-/Kleinschreibung zu beachten. Außerdem achtet darauf, ob ihr in die Konsole die richtigen Namen eingetippt habt.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
==java.lang.NoSuchMethodError==&lt;br /&gt;
 bruja shabanov 9 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NoSuchMethodError: main&lt;br /&gt;
* Java findet eine Methode nicht (hier speziell die main Methode).&lt;br /&gt;
* Schaut, ob ihr beim Aufruf den Methodennamen richtig geschrieben habt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.ArrayIndexOutOfBoundsException==&lt;br /&gt;
 bruja shabanov 8 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.ArrayIndexOutOfBoundsException: 2&lt;br /&gt;
         at Errors.main(Errors.java:5)&lt;br /&gt;
*Ihr versucht, auf ein Array Feld zuzugreifen, was außerhalb der Größe des Arrays liegt. &lt;br /&gt;
*Sucht in der angegeben Zeile nach dem Zugriff auf das Array und stellt fest, warum der Index zu groß geworden ist.&lt;br /&gt;
*&amp;quot;Printline-Debugging&amp;quot; hilft (Index vor jedem Zugriff ausgeben)!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.NullPointerException==&lt;br /&gt;
 bruja shabanov 13 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NullPointerException&lt;br /&gt;
        at Errors.main(Errors.java:5)&lt;br /&gt;
*Ihr versucht, auf eine Variable zuzugreifen oder führt mit ihr Operationen aus, obwohl sie noch nicht initialisiert ist.&lt;br /&gt;
*Das passiert oft, wenn man mit z.B. String-Arrays arbeitet. Obwohl man das Array initialisiert hat, sind die Elemente darin noch nicht initialisiert.&lt;br /&gt;
 String[] stringArray = new String[12];&lt;br /&gt;
*Hier kann es helfen, den Array-Elementen entweder direkt Werte zuzuweisen oder mit einer Schleife alle auf einen default-Wert setzen:&lt;br /&gt;
 for(int i = 0 ; i &amp;lt; stringArray.length ; i++ ){&lt;br /&gt;
     stringArray[i] = &amp;quot;&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==java.lang.ArithmeticException==&lt;br /&gt;
 bruja shabanov 15 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.ArithmeticException: / by zero&lt;br /&gt;
         at Errors.main(Errors.java:4)&lt;br /&gt;
*Dieser Fehler tritt auf, wenn ihr versucht, ungültige arithmetische Operationen auszuführen, wie hier die Division durch 0.&lt;br /&gt;
*Ihr könnt euch Gedanken über das axiomatische Gerüst der Mathematik machen und nach einem Weg suchen, durch 0 zu teilen, einfacher ist es jedoch, wenn ihr nicht durch 0 teilt, keine Wurzeln aus negativen Zahlen zieht usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== non-static method someMethod() cannot be referenced from a static context ==&lt;br /&gt;
 pepino felixf 3 (~/Desktop): javac Test.java&lt;br /&gt;
 Test.java:13: non-static method someMethod() cannot be referenced from a static context&lt;br /&gt;
                 someMethod();&lt;br /&gt;
                 ^&lt;br /&gt;
 1 error&lt;br /&gt;
&lt;br /&gt;
Diese Fehler tritt auf, wenn eine Objectmethode wie eine statische Methode aufgerufen wird, d.h. die Methode wir nicht auf eine Objekt aufgerufen, sondern wie eine statische Methode ohne Punktoperator.&lt;br /&gt;
Lösung:&lt;br /&gt;
 FooBar name = new FooBar();&lt;br /&gt;
 name.someMethod();&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Errors&amp;diff=10009</id>
		<title>Javakurs/Übungsaufgaben/Errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Errors&amp;diff=10009"/>
		<updated>2007-04-12T13:45:24Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* non-static method someMethod() cannot be referenced from a static context */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ihr findet hier eine kurze Erklärung mit Lösungsansatz zu den häufigsten Compiler- und Laufzeitfehlern. Versucht diese Fehlermeldungen bitte immer zu lesen, Java gibt euch relativ aufschlussreiche Fehlermeldungen, sodass es durchaus möglich ist, von der Meldung auf den tatsächlichen Fehler zu schließen!&lt;br /&gt;
&lt;br /&gt;
=&#039;&#039;&#039;CompilerFehler&#039;&#039;&#039;=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Falsche Parameter==&lt;br /&gt;
 bruja shabanov 23 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:4: setANumber(int) in Errors cannot be applied to (java.lang.String)                &lt;br /&gt;
                setANumber(&amp;quot;aNumber&amp;quot;);&lt;br /&gt;
                ^&lt;br /&gt;
 1 error&lt;br /&gt;
*Dieser Fehler tritt auf wenn ihr z.B. bei einem Methodenaufruf Parameter eines falschen Typs übergebt.&lt;br /&gt;
*Hier erwartet die Methode setANumber eine Zahl vom Typ int, bekommt aber einen String. Das geht nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Inkompatible Typen==&lt;br /&gt;
 bruja shabanov 18 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:6: incompatible types&lt;br /&gt;
 found   : java.lang.String&lt;br /&gt;
 required: double&lt;br /&gt;
                 double aDouble = anInt + aString;&lt;br /&gt;
                                        ^&lt;br /&gt;
 1 error &lt;br /&gt;
*Dieser Fehler tritt dann auf, wenn bei einer Zuweisung die Datentypen der Variablen nicht übereinstimmen, wie in diesem fehlerhaften Code:&lt;br /&gt;
                String aString= &amp;quot;47&amp;quot;;&lt;br /&gt;
 		int anInt = 11;		&lt;br /&gt;
 		double aDouble = anInt + aString;&lt;br /&gt;
*Es ist zwar möglich, aus einer Zahl einen String zu erzeugen und umgekehrt. Da dies aber relativ kompliziert ist, behandeln wir das im Rahmen dieses Kurses nicht. Versucht einfach, Zahlen mit Zahlen und Strings mit Strings zu verknüpfen, dann wird euch auch der Compiler danken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Klammer fehlt==&lt;br /&gt;
&lt;br /&gt;
 bruja shabanov 10 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:&#039;&#039;&#039;7&#039;&#039;&#039;: &#039;}&#039; expected&lt;br /&gt;
 &#039;&#039;&#039;^&#039;&#039;&#039;&lt;br /&gt;
 1 error&lt;br /&gt;
* Es fehlt einfach eine geschweifte Klammer.&lt;br /&gt;
* Jedes Mal, wenn ihr eine geschweifte Klammer aufmacht, macht sie gleich wieder zu, damit ihr das später nicht vergesst.&lt;br /&gt;
* Bei Klammerfehlern solltet ihr nach jedem korrigierten Fehler neu kompilieren, da es normalerweise zu sehr vielen Folgefehlern kommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semikolon fehlt==&lt;br /&gt;
 bruja shabanov 25 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:5: &#039;;&#039; expected&lt;br /&gt;
         }&lt;br /&gt;
         ^&lt;br /&gt;
 1 error&lt;br /&gt;
*Es fehlt einfach ein Semikolon.&lt;br /&gt;
*Sucht &#039;&#039;vor&#039;&#039; der angegebenen Zeile nach einer Anweisung, die kein Semikolon am Ende hat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Doppelte Deklaration==&lt;br /&gt;
 bruja shabanov 11 (Desktop/JavaKurs): javac Errors.java Errors.java:5: i is already defined in main(java.lang.String[])&lt;br /&gt;
                 for( int i = 0 ; i &amp;lt; 10 ; i++ ){&lt;br /&gt;
                          ^&lt;br /&gt;
 1 error&lt;br /&gt;
&lt;br /&gt;
* Die Variable i ist irgendwo bereits definiert gewesen. Sucht also vor dieser Zeile nach einem:&lt;br /&gt;
 int i = ..&lt;br /&gt;
* Ihr müsst dann den Variablennamen in der Schleife z.B. ändern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definition fehlt==&lt;br /&gt;
 bruja shabanov 5 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:15: variable ret might not have been initialized&lt;br /&gt;
                 return ret;&lt;br /&gt;
                        ^&lt;br /&gt;
 1 error&lt;br /&gt;
* Ihr habt eine Variable nicht richtig initialisiert, das passiert oft, wenn ihr einer Variable innerhalb einer if-Anweisung Werte zuweist, wie in diesem Code (der zudem obigen Fehler führt):&lt;br /&gt;
 	public static String someMethod( int x ){&lt;br /&gt;
 		String ret;&lt;br /&gt;
 		if( x ==  4711 ){&lt;br /&gt;
 			ret = &amp;quot;foobar&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		return ret;&lt;br /&gt;
 	}&lt;br /&gt;
* Die Variable &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; bekommt nur dann einen Wert zugeordnet, wenn x == 4711 gilt, da dies nicht immer der Fall sein muss, könnte der Fall auftreten, dass &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; gar keinen Wert zugeordnet bekommt.&lt;br /&gt;
* Fügt einen default-Wert für &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; hinzu um diesen Fehler zu beheben, z.B. so:&lt;br /&gt;
  		String ret = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Missing return statement==&lt;br /&gt;
 bruja shabanov 6 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:17: missing return statement&lt;br /&gt;
         }&lt;br /&gt;
         ^&lt;br /&gt;
 1 error&lt;br /&gt;
* Ihr habt in einer Methode, die etwas zurückgeben soll, entweder das return vergessen, oder das return steht nur innerhalb von if-Anweisungen, wie hier:&lt;br /&gt;
 	public static boolean isPositive( int num ){&lt;br /&gt;
 		if( num &amp;gt; 0 ){&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}else if( num &amp;lt; 0 ){&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}			&lt;br /&gt;
 	}&lt;br /&gt;
* Da alle returns in einem if-Block stehen, könnte es theoretisch sein, dass keiner der Blöcke ausgeführt wird und Java somit nicht weiß, was es zurück geben soll.&lt;br /&gt;
* Fügt, um das Problem zu lösen, ein return am Ende eurer Methode ein, oder ändert ein else if in ein else.&lt;br /&gt;
        public static boolean isPositive( int num ){&lt;br /&gt;
 		if( num &amp;gt; 0 ){&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}else if( num &amp;lt; 0 ){&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}			&lt;br /&gt;
 		&#039;&#039;&#039;return false;&#039;&#039;&#039;&lt;br /&gt;
 	}&lt;br /&gt;
&lt;br /&gt;
=&#039;&#039;&#039;Laufzeit-Fehler oder Exceptions (sprich Äkssepschons)&#039;&#039;&#039;= &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.NoClassDefFoundError==&lt;br /&gt;
 bruja shabanov 7 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NoClassDefFoundError: Errors&lt;br /&gt;
* Das heißt, Java kann die Klasse nicht finden, die ihr ausführen wollt.&lt;br /&gt;
* Schaut &#039;&#039;&#039;genau&#039;&#039;&#039; nach, ob der Dateiname und der Klassennamme gleich sind. Dabei ist auch wichtig, die Groß-/Kleinschreibung zu beachten. Außerdem achtet darauf, ob ihr in die Konsole die richtigen Namen eingetippt habt.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
==java.lang.NoSuchMethodError==&lt;br /&gt;
 bruja shabanov 9 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NoSuchMethodError: main&lt;br /&gt;
* Java findet eine Methode nicht (hier speziell die main Methode).&lt;br /&gt;
* Schaut, ob ihr beim Aufruf den Methodennamen richtig geschrieben habt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.ArrayIndexOutOfBoundsException==&lt;br /&gt;
 bruja shabanov 8 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.ArrayIndexOutOfBoundsException: 2&lt;br /&gt;
         at Errors.main(Errors.java:5)&lt;br /&gt;
*Ihr versucht, auf ein Array Feld zuzugreifen, was außerhalb der Größe des Arrays liegt. &lt;br /&gt;
*Sucht in der angegeben Zeile nach dem Zugriff auf das Array und stellt fest, warum der Index zu groß geworden ist.&lt;br /&gt;
*&amp;quot;Printline-Debugging&amp;quot; hilft (Index vor jedem Zugriff ausgeben)!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.NullPointerException==&lt;br /&gt;
 bruja shabanov 13 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NullPointerException&lt;br /&gt;
        at Errors.main(Errors.java:5)&lt;br /&gt;
*Ihr versucht, auf eine Variable zuzugreifen oder führt mit ihr Operationen aus, obwohl sie noch nicht initialisiert ist.&lt;br /&gt;
*Das passiert oft, wenn man mit z.B. String-Arrays arbeitet. Obwohl man das Array initialisiert hat, sind die Elemente darin noch nicht initialisiert.&lt;br /&gt;
 String[] stringArray = new String[12];&lt;br /&gt;
*Hier kann es helfen, den Array-Elementen entweder direkt Werte zuzuweisen oder mit einer Schleife alle auf einen default-Wert setzen:&lt;br /&gt;
 for(int i = 0 ; i &amp;lt; stringArray.length ; i++ ){&lt;br /&gt;
     stringArray[i] = &amp;quot;&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==java.lang.ArithmeticException==&lt;br /&gt;
 bruja shabanov 15 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.ArithmeticException: / by zero&lt;br /&gt;
         at Errors.main(Errors.java:4)&lt;br /&gt;
*Dieser Fehler tritt auf, wenn ihr versucht, ungültige arithmetische Operationen auszuführen, wie hier die Division durch 0.&lt;br /&gt;
*Ihr könnt euch Gedanken über das axiomatische Gerüst der Mathematik machen und nach einem Weg suchen, durch 0 zu teilen, einfacher ist es jedoch, wenn ihr nicht durch 0 teilt, keine Wurzeln aus negativen Zahlen zieht usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== non-static method someMethod() cannot be referenced from a static context ==&lt;br /&gt;
 pepino felixf 3 (~/Desktop): javac Test.java&lt;br /&gt;
 Test.java:13: non-static method someMethod() cannot be referenced from a static context&lt;br /&gt;
                 someMethod();&lt;br /&gt;
                 ^&lt;br /&gt;
 1 error&lt;br /&gt;
&lt;br /&gt;
Diese Fehler tritt auf, wenn eine Objectmethode wie eine statische Methode aufgerufen wird, d.h. die Methode wir nicht auf eine Objekt aufgerufen, sondern wie eine statische Methode ohne Punktoperator.&lt;br /&gt;
Lösung:&lt;br /&gt;
 FooBar name = new FooBar();&lt;br /&gt;
 name.someMethod();&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Errors&amp;diff=10008</id>
		<title>Javakurs/Übungsaufgaben/Errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Errors&amp;diff=10008"/>
		<updated>2007-04-12T13:44:49Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ihr findet hier eine kurze Erklärung mit Lösungsansatz zu den häufigsten Compiler- und Laufzeitfehlern. Versucht diese Fehlermeldungen bitte immer zu lesen, Java gibt euch relativ aufschlussreiche Fehlermeldungen, sodass es durchaus möglich ist, von der Meldung auf den tatsächlichen Fehler zu schließen!&lt;br /&gt;
&lt;br /&gt;
=&#039;&#039;&#039;CompilerFehler&#039;&#039;&#039;=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Falsche Parameter==&lt;br /&gt;
 bruja shabanov 23 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:4: setANumber(int) in Errors cannot be applied to (java.lang.String)                &lt;br /&gt;
                setANumber(&amp;quot;aNumber&amp;quot;);&lt;br /&gt;
                ^&lt;br /&gt;
 1 error&lt;br /&gt;
*Dieser Fehler tritt auf wenn ihr z.B. bei einem Methodenaufruf Parameter eines falschen Typs übergebt.&lt;br /&gt;
*Hier erwartet die Methode setANumber eine Zahl vom Typ int, bekommt aber einen String. Das geht nicht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Inkompatible Typen==&lt;br /&gt;
 bruja shabanov 18 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:6: incompatible types&lt;br /&gt;
 found   : java.lang.String&lt;br /&gt;
 required: double&lt;br /&gt;
                 double aDouble = anInt + aString;&lt;br /&gt;
                                        ^&lt;br /&gt;
 1 error &lt;br /&gt;
*Dieser Fehler tritt dann auf, wenn bei einer Zuweisung die Datentypen der Variablen nicht übereinstimmen, wie in diesem fehlerhaften Code:&lt;br /&gt;
                String aString= &amp;quot;47&amp;quot;;&lt;br /&gt;
 		int anInt = 11;		&lt;br /&gt;
 		double aDouble = anInt + aString;&lt;br /&gt;
*Es ist zwar möglich, aus einer Zahl einen String zu erzeugen und umgekehrt. Da dies aber relativ kompliziert ist, behandeln wir das im Rahmen dieses Kurses nicht. Versucht einfach, Zahlen mit Zahlen und Strings mit Strings zu verknüpfen, dann wird euch auch der Compiler danken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Klammer fehlt==&lt;br /&gt;
&lt;br /&gt;
 bruja shabanov 10 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:&#039;&#039;&#039;7&#039;&#039;&#039;: &#039;}&#039; expected&lt;br /&gt;
 &#039;&#039;&#039;^&#039;&#039;&#039;&lt;br /&gt;
 1 error&lt;br /&gt;
* Es fehlt einfach eine geschweifte Klammer.&lt;br /&gt;
* Jedes Mal, wenn ihr eine geschweifte Klammer aufmacht, macht sie gleich wieder zu, damit ihr das später nicht vergesst.&lt;br /&gt;
* Bei Klammerfehlern solltet ihr nach jedem korrigierten Fehler neu kompilieren, da es normalerweise zu sehr vielen Folgefehlern kommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semikolon fehlt==&lt;br /&gt;
 bruja shabanov 25 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:5: &#039;;&#039; expected&lt;br /&gt;
         }&lt;br /&gt;
         ^&lt;br /&gt;
 1 error&lt;br /&gt;
*Es fehlt einfach ein Semikolon.&lt;br /&gt;
*Sucht &#039;&#039;vor&#039;&#039; der angegebenen Zeile nach einer Anweisung, die kein Semikolon am Ende hat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Doppelte Deklaration==&lt;br /&gt;
 bruja shabanov 11 (Desktop/JavaKurs): javac Errors.java Errors.java:5: i is already defined in main(java.lang.String[])&lt;br /&gt;
                 for( int i = 0 ; i &amp;lt; 10 ; i++ ){&lt;br /&gt;
                          ^&lt;br /&gt;
 1 error&lt;br /&gt;
&lt;br /&gt;
* Die Variable i ist irgendwo bereits definiert gewesen. Sucht also vor dieser Zeile nach einem:&lt;br /&gt;
 int i = ..&lt;br /&gt;
* Ihr müsst dann den Variablennamen in der Schleife z.B. ändern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definition fehlt==&lt;br /&gt;
 bruja shabanov 5 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:15: variable ret might not have been initialized&lt;br /&gt;
                 return ret;&lt;br /&gt;
                        ^&lt;br /&gt;
 1 error&lt;br /&gt;
* Ihr habt eine Variable nicht richtig initialisiert, das passiert oft, wenn ihr einer Variable innerhalb einer if-Anweisung Werte zuweist, wie in diesem Code (der zudem obigen Fehler führt):&lt;br /&gt;
 	public static String someMethod( int x ){&lt;br /&gt;
 		String ret;&lt;br /&gt;
 		if( x ==  4711 ){&lt;br /&gt;
 			ret = &amp;quot;foobar&amp;quot;;&lt;br /&gt;
 		}&lt;br /&gt;
 		return ret;&lt;br /&gt;
 	}&lt;br /&gt;
* Die Variable &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; bekommt nur dann einen Wert zugeordnet, wenn x == 4711 gilt, da dies nicht immer der Fall sein muss, könnte der Fall auftreten, dass &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; gar keinen Wert zugeordnet bekommt.&lt;br /&gt;
* Fügt einen default-Wert für &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; hinzu um diesen Fehler zu beheben, z.B. so:&lt;br /&gt;
  		String ret = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Missing return statement==&lt;br /&gt;
 bruja shabanov 6 (Desktop/JavaKurs): javac Errors.java&lt;br /&gt;
 Errors.java:17: missing return statement&lt;br /&gt;
         }&lt;br /&gt;
         ^&lt;br /&gt;
 1 error&lt;br /&gt;
* Ihr habt in einer Methode, die etwas zurückgeben soll, entweder das return vergessen, oder das return steht nur innerhalb von if-Anweisungen, wie hier:&lt;br /&gt;
 	public static boolean isPositive( int num ){&lt;br /&gt;
 		if( num &amp;gt; 0 ){&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}else if( num &amp;lt; 0 ){&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}			&lt;br /&gt;
 	}&lt;br /&gt;
* Da alle returns in einem if-Block stehen, könnte es theoretisch sein, dass keiner der Blöcke ausgeführt wird und Java somit nicht weiß, was es zurück geben soll.&lt;br /&gt;
* Fügt, um das Problem zu lösen, ein return am Ende eurer Methode ein, oder ändert ein else if in ein else.&lt;br /&gt;
        public static boolean isPositive( int num ){&lt;br /&gt;
 		if( num &amp;gt; 0 ){&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}else if( num &amp;lt; 0 ){&lt;br /&gt;
 			return false;&lt;br /&gt;
 		}			&lt;br /&gt;
 		&#039;&#039;&#039;return false;&#039;&#039;&#039;&lt;br /&gt;
 	}&lt;br /&gt;
&lt;br /&gt;
=&#039;&#039;&#039;Laufzeit-Fehler oder Exceptions (sprich Äkssepschons)&#039;&#039;&#039;= &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.NoClassDefFoundError==&lt;br /&gt;
 bruja shabanov 7 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NoClassDefFoundError: Errors&lt;br /&gt;
* Das heißt, Java kann die Klasse nicht finden, die ihr ausführen wollt.&lt;br /&gt;
* Schaut &#039;&#039;&#039;genau&#039;&#039;&#039; nach, ob der Dateiname und der Klassennamme gleich sind. Dabei ist auch wichtig, die Groß-/Kleinschreibung zu beachten. Außerdem achtet darauf, ob ihr in die Konsole die richtigen Namen eingetippt habt.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
==java.lang.NoSuchMethodError==&lt;br /&gt;
 bruja shabanov 9 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NoSuchMethodError: main&lt;br /&gt;
* Java findet eine Methode nicht (hier speziell die main Methode).&lt;br /&gt;
* Schaut, ob ihr beim Aufruf den Methodennamen richtig geschrieben habt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.ArrayIndexOutOfBoundsException==&lt;br /&gt;
 bruja shabanov 8 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.ArrayIndexOutOfBoundsException: 2&lt;br /&gt;
         at Errors.main(Errors.java:5)&lt;br /&gt;
*Ihr versucht, auf ein Array Feld zuzugreifen, was außerhalb der Größe des Arrays liegt. &lt;br /&gt;
*Sucht in der angegeben Zeile nach dem Zugriff auf das Array und stellt fest, warum der Index zu groß geworden ist.&lt;br /&gt;
*&amp;quot;Printline-Debugging&amp;quot; hilft (Index vor jedem Zugriff ausgeben)!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==java.lang.NullPointerException==&lt;br /&gt;
 bruja shabanov 13 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.NullPointerException&lt;br /&gt;
        at Errors.main(Errors.java:5)&lt;br /&gt;
*Ihr versucht, auf eine Variable zuzugreifen oder führt mit ihr Operationen aus, obwohl sie noch nicht initialisiert ist.&lt;br /&gt;
*Das passiert oft, wenn man mit z.B. String-Arrays arbeitet. Obwohl man das Array initialisiert hat, sind die Elemente darin noch nicht initialisiert.&lt;br /&gt;
 String[] stringArray = new String[12];&lt;br /&gt;
*Hier kann es helfen, den Array-Elementen entweder direkt Werte zuzuweisen oder mit einer Schleife alle auf einen default-Wert setzen:&lt;br /&gt;
 for(int i = 0 ; i &amp;lt; stringArray.length ; i++ ){&lt;br /&gt;
     stringArray[i] = &amp;quot;&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==java.lang.ArithmeticException==&lt;br /&gt;
 bruja shabanov 15 (Desktop/JavaKurs): java Errors&lt;br /&gt;
 Exception in thread &amp;quot;main&amp;quot; java.lang.ArithmeticException: / by zero&lt;br /&gt;
         at Errors.main(Errors.java:4)&lt;br /&gt;
*Dieser Fehler tritt auf, wenn ihr versucht, ungültige arithmetische Operationen auszuführen, wie hier die Division durch 0.&lt;br /&gt;
*Ihr könnt euch Gedanken über das axiomatische Gerüst der Mathematik machen und nach einem Weg suchen, durch 0 zu teilen, einfacher ist es jedoch, wenn ihr nicht durch 0 teilt, keine Wurzeln aus negativen Zahlen zieht usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== non-static method someMethod() cannot be referenced from a static context ==&lt;br /&gt;
 pepino felixf 3 (~/Desktop): javac Test.java&lt;br /&gt;
 Test.java:13: non-static method someMethod() cannot be referenced from a static context&lt;br /&gt;
                 someMethod();&lt;br /&gt;
                 ^&lt;br /&gt;
 1 error&lt;br /&gt;
&lt;br /&gt;
Diese Fehler tritt auf, wenn eine Objectmethode wie eine statische Methode aufgerufen wird, d.h. die Methode wir nicht auf eine Objekt aufgerufen, sondern wie eine statische Methode ohne Punktoperator.&lt;br /&gt;
Lösung:&lt;br /&gt;
 FooBar name = new MyClass();&lt;br /&gt;
 name.someMethod();&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Hangman&amp;diff=9137</id>
		<title>Javakurs/Übungsaufgaben/Hangman</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Hangman&amp;diff=9137"/>
		<updated>2007-04-12T09:54:12Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Hangman */ fehler in aufgabe markiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hangman ==&lt;br /&gt;
Schreibe das in der Vorlesung besprochene Spiel Hangman für die Konsole.&amp;lt;br&amp;gt;&lt;br /&gt;
Es soll von einem Spieler beliebig oft spielbar sein. &lt;br /&gt;
In jedem Spielschritt soll die verbleibene Menge an Rateversuchen, sowie die bereits erratenen Buchstaben des Lösungswortes in der Form &amp;quot;HAN__AN&amp;quot; angezeigt werden. Die verbleibenden Rateversuche können einfach in Form einer Zahl angegeben werden.&lt;br /&gt;
&lt;br /&gt;
# Mache dir Notizen zum Spielablauf einer Hangman-Spielrunde.&lt;br /&gt;
# Skizziere den Programmablauf.&lt;br /&gt;
# Notiere den mittlerweile besser durchdachten Programmablauf möglichst übersichtlich und mit möglichst vielen Schritten.&lt;br /&gt;
# Mache dir Gedanken darüber, welche Schritte sehr komplex sind und entwerfe auch für sie einen Programmablauf.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Kopiere und entpacke die Vorgabedateien unter http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/Hangman.tar  in ein Verzeichnis deiner Wahl.&lt;br /&gt;
#* Die Hinweise in der Datei enthalten einen Fehler. Um einen bestimmten Buchstaben aus einem String zu extrahieren, muss man die Methode  &#039;&#039;&#039;char  charAt(int index)&#039;&#039;&#039; statt &#039;&#039;&#039;char charAtPosition(int index)&#039;&#039;&#039; zu verwenden.&lt;br /&gt;
# Benutze zum Schreiben deines Programmes die Vorgabedatei &amp;quot;Hangman.java&amp;quot; im Verzeichnis &amp;quot;Hangman&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung&#039;&#039;&#039;: Das Einlesen von Zeichen über die Konsole gestaltet sich in Java üblicherweise etwas umständlich. Aus diesem Grund enthalten die Vorgaben zu dieser Übung eine Bibliotheksklasse &amp;quot;Terminal&amp;quot;, welche dir einige leicht zu benutzende Funktionen für die Arbeit mit der Konsole zur Verfügung stellt. Solange sich die Datei &amp;quot;Terminal.java&amp;quot; im selben Verzeichnis wie deine Datei &amp;quot;Hangman.java&amp;quot; befindet, hast du Zugriff auf alle Funtionen der Bibliotheksklasse, indem du sie in der Form &amp;quot;Terminal.gewünschteFunktion()&amp;quot; aufrufst.&lt;br /&gt;
&lt;br /&gt;
* public static String readString () // liest ein Wort von der Konsole&lt;br /&gt;
* public static char readChar () // liest ein enzelnes Zeichen von der Konsole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fortgeschritte ===&lt;br /&gt;
&#039;&#039;&#039;Achtung, schwer!&#039;&#039;&#039;&lt;br /&gt;
* Gib die verbleibenden Rateversuche in Form eines ASCII-Hangmans aus.&lt;br /&gt;
&#039;&#039;&#039;Tipp:&#039;&#039;&#039; Ein Array zum Speichern der Graphik kann hier außerordentlich hilfreich sein.&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lol Rechtschreibfehler bei &amp;quot;Achtung, schwehr!&amp;quot;, aber echt coole Aufgabe ;P&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Terminal&amp;diff=9371</id>
		<title>Javakurs2007/Terminal</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Terminal&amp;diff=9371"/>
		<updated>2007-04-12T09:05:44Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Dieser Teil wird im Javakurs erst ab dem letzten Tag (LE6) verständlich. Wer neu in Java ist, sollte also besser erst später weiterlesen.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Klasse Terminal enthält sogenannte &amp;quot;static&amp;quot; Methoden, die sie anderen Klassen zur Benutzung zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
Download der Klasse Terminal [http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/Terminal.java].&lt;br /&gt;
&lt;br /&gt;
Um eine andere Klasse in einer eigenen Klasse benutzbar zu machen, muss man sie normalerweise in dieser bekannt machen. Dies geschieht über das Schlüsselwort &amp;quot;import&amp;quot;, gefolgt vom zur Klasse führenden Pfad und ihrem Namen.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 // Verfügbar machen der Klasse ArrayList &lt;br /&gt;
 import java.util.ArrayList;&lt;br /&gt;
 &lt;br /&gt;
 public class Menue {&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Liegt die Klasse, die verwendet werden soll, im selben Verzeichnis wie die Klasse, die sie verwenden will, so ist kein Import notwendig.&lt;br /&gt;
&lt;br /&gt;
Funktioniert dies dennoch nicht, so ist der CLASSPATH falsch gesetzt. Gibt dann einfach folgendes Kommando vor dem erstem Aufruf von java bzw. javac ein:&lt;br /&gt;
&lt;br /&gt;
  export CLASSPATH=&amp;quot;.:$CLASSPATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kompiliert man eine Klasse, in der andere Klassen verwendet werden mit &amp;quot;javac&amp;quot;, so sucht der Compiler an den angegebenen Stellen sowie im Verzeichnis der kompilierten Klasse automatisch nach den verwendeten Klassen und kompiliert diese, wenn nötig,  ebenfalls.&lt;br /&gt;
&lt;br /&gt;
Wichtig: Startet man später mit dem Interpreter &amp;quot;java&amp;quot; das Programm, so erwartet dieser die verwendeten Klassen in derselben Verzeichnisstruktur, in der sie kompiliert wurden.&lt;br /&gt;
Verschiebt man eine .class Datei also ohne die von ihr verwendeten .class Dateien, so ist das Gesamtprogramm nicht länger vollständig.&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9280</id>
		<title>Javakurs2007/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9280"/>
		<updated>2007-04-11T11:58:14Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Raumauslastung + Tutorenverteilung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raumauslastung + Tutorenverteilung ==&lt;br /&gt;
Die Auslastung der Räume mit Tutanten wird dynamisch von den jeweiligen Tutoren eingetragen, um ein &amp;quot;load balancing&amp;quot; von Tutanten 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;
&lt;br /&gt;
&#039;&#039;&#039;Dienstag:&#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;
 ! Plätze&lt;br /&gt;
 ! Tutanten anwesend&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5539&lt;br /&gt;
 | Ilya, Kai, Daniel&lt;br /&gt;
 | 12&lt;br /&gt;
 | 10                         &amp;lt;!-- Hier Tutanten für FR5539 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5538&lt;br /&gt;
 | Karl W., Felix S., Martin Z.&lt;br /&gt;
 | 12&lt;br /&gt;
 | &amp;lt;Mittwoch&amp;gt;                           &amp;lt;!-- Hier Tutanten für FR5538 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5535&lt;br /&gt;
 | Robert L., Ellen M., Robert B.(bis 14)&lt;br /&gt;
 | 14&lt;br /&gt;
 | 12                           &amp;lt;!-- Hier Tutanten für FR5535 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5514&lt;br /&gt;
 | Anand B., Martin, Katrin&lt;br /&gt;
 | 14&lt;br /&gt;
 | &amp;lt;Mittwoch&amp;gt;                           &amp;lt;!-- 17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR2516&lt;br /&gt;
 | Maik, Julius, Nadim, Florian&lt;br /&gt;
 | 18&lt;br /&gt;
 | 12                          &amp;lt;!-- Hier Tutanten 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;
 | Milan, Felix, Georg&lt;br /&gt;
 | 12&lt;br /&gt;
 | 9                                   &amp;lt;!-- Hier Tutanten für FR2517 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Historie:&#039;&#039;&#039;&lt;br /&gt;
[https://wiki.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;amp;oldid=15409 Dienstag]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Mittwoch | Mittwoch]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Donnerstag | Donnerstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Freitag | Freitag]]&lt;br /&gt;
&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;
* Martin: Dienstag vormittag, vllt. nachmittag nicht da. &amp;lt;-- Welcher Martin? Das wäre für den ersten Tag schon sehr wichtig! --[[Benutzer:Ellen|Ellen]] 01:21, 9. Apr. 2007 (CEST)&lt;br /&gt;
* Robert B: Dienstag 14-16 Uhr nicht da&lt;br /&gt;
* Ellen: Bin Freitag wahrscheinlich erst ab 9:30/10:00 da.&lt;br /&gt;
* Karl W: Donnerstag ab 14:00 nicht da wegen blöder Nachklausur&lt;br /&gt;
* Nadim: Mittwoch, 13:30-16:00 Uhr nicht da&lt;br /&gt;
&lt;br /&gt;
== Entwurf der Übungsaufgaben ==&lt;br /&gt;
&lt;br /&gt;
Bis Fr. 06.04.2007 24.00 verlinkt &#039;&#039;&#039;jeder Tutor&#039;&#039;&#039; auf folgender Seite eine von ihm entworfene (oder gut geklaute) Übungsaufgabe. Ab Sa. 12.00 baut das Orgateam aus diesen Aufgaben den Übungspool für den Kurs auf.&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool_Entw%C3%BCrfe]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/Musterloesungen | Musterlösungen für die Übungsaufgaben]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
# Aufgaben sortieren nach Vorwissen&lt;br /&gt;
# Prüfen ob zu jedem Schwierigkeitsgrad und Thema genügend Aufgaben vorhanden sind, evtl. noch Aufgaben hinzufügen&lt;br /&gt;
# Korrekturlesen&lt;br /&gt;
&lt;br /&gt;
== Planung der Vorträge ==&lt;br /&gt;
[[Gliederung_Javakurs_2007]]&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).&lt;br /&gt;
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 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;
javakurs2007 at lists.freitagsrunde.org&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Crack_the_Password&amp;diff=9828</id>
		<title>Javakurs/Übungsaufgaben/Crack the Password</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Crack_the_Password&amp;diff=9828"/>
		<updated>2007-04-11T09:22:10Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Crack the Password! ===&lt;br /&gt;
Nachdem du dich erfolgreich in Prof. Heiß&#039; Computer gehackt hast stehst du jetzt vor der letzten Barriere bevor du dir die Musterlösung pünktlich vor der Klausur saugen kannst. Der folgende Code überprüft das Passwort mit dem du dich einloggen kannst. Alles was du aus internen Quellen weißt, ist das es nur 4 gültige Zahlen zwischen 1 und 1000 gibt um dich einzuloggen.&lt;br /&gt;
&lt;br /&gt;
Kopiere folgende Methode in dein Programm, diese überprüft ob die Passworteingabe richtig war.&lt;br /&gt;
&lt;br /&gt;
 public static boolean checkPasscode(int H4X0R){&lt;br /&gt;
 	// returns true if passcode is valid&lt;br /&gt;
 	boolean result = false;&lt;br /&gt;
 	for(int E1337=42; E1337&amp;lt;=(52^(0x6c)); E1337+=(3&amp;lt;&amp;lt;(14%6))){&lt;br /&gt;
 		if(result=((++E1337|E1337+(2&amp;gt;&amp;gt;&amp;gt;1))^(1+H4X0R))==(123456789&amp;amp;0))&lt;br /&gt;
 			break;&lt;br /&gt;
 	}&lt;br /&gt;
 		return result;&lt;br /&gt;
 }&lt;br /&gt;
		&lt;br /&gt;
# Finde die 4 gültigen Zahlen mittels Brute-Force und gib sie auf der Konsole aus (Brute-Force = Rohe Gewalt, darunter versteht man das simple Ausprobieren aller möglichen Kombinationen).&lt;br /&gt;
# Für die absoluten Cracks: Wie funktioniert der Algorithmus?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hinweis: Eine Übersicht zu den verwendeten Java-Operatoren könnte nützlich sein: http://www.java-forum.org/de/viewtopic.php?t=1545&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schaun ob irgend jemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Vortrag03&amp;diff=9943</id>
		<title>Javakurs2007/Vortrag03</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Vortrag03&amp;diff=9943"/>
		<updated>2007-04-11T08:51:48Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Methoden&lt;br /&gt;
** Warum benutzen wir Methoden?&lt;br /&gt;
** Wie werden sie deklariert?&lt;br /&gt;
** Call by Value&lt;br /&gt;
** Unterschied Methode/Funktion&lt;br /&gt;
* sprechende Namen&lt;br /&gt;
* Testen&lt;br /&gt;
** Testwerte finden&lt;br /&gt;
** Was kann man mit Testen erreichen, warum trotzdem essentiell&lt;br /&gt;
* Debugging&lt;br /&gt;
&lt;br /&gt;
Um die Folien richtig anzuzeigen, müsst ihr noch den Font Bauhaus93 installieren! &lt;br /&gt;
[http://user.cs.tu-berlin.de/~thenado/LE_3.pdf Folien als PDF]&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7210</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7210"/>
		<updated>2007-04-11T08:48:29Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Selbst einige Methoden schreiben! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Weitere Wiederholungsaufgaben gibt es [http://www.javaranch.com/cattledrive.jsp|bei der Java Ranch]&lt;br /&gt;
&lt;br /&gt;
= Variablen =&lt;br /&gt;
* Das gleiche Thema im Buch [http://www.galileocomputing.de/openbook/javainsel5/javainsel02_002.htm#Rxx747java02002040000A91F032100 Java ist auch eine Insel]&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;8 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;
== 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 hierfür den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus.&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 und Namen ==&lt;br /&gt;
Wieso haben wir die Code-Beispiele nach den geschweiften Klammern eingerückt und die Variablen so benannt, wie wir es taten 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;
Überlege dir, was das folgende Code-Fragment macht.&lt;br /&gt;
Führe es aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&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;
 &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, die uns eine double-Zahl kleiner&lt;br /&gt;
         * als 1.0, aber groesser oder gleich 0 liefert.&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;
== if-else-Konstrukt ==&lt;br /&gt;
Überlege dir, was das folgende Code-Fragment macht.&lt;br /&gt;
Führe es aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&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;
 &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;
== Mehrere if-Bedingungen ==&lt;br /&gt;
Überlege dir, was das folgende Code-Fragment macht.&lt;br /&gt;
Führe es aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&lt;br /&gt;
&lt;br /&gt;
Was macht das Programm für verschiedene Werte von &#039;&#039;wert&#039;&#039;?. &lt;br /&gt;
&lt;br /&gt;
Welche If-Abfragen sind unnötig, weil man die Ausgaben in else-Zweige von bereits vorhandenen schreiben könnte?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class If_Uebung3 {    &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;
= while =&lt;br /&gt;
== Einfache Schleife ==&lt;br /&gt;
Schreibe eine Schleife die unendlich oft &amp;quot;Hallo Welt!&amp;quot; ausgibt.&lt;br /&gt;
&lt;br /&gt;
== Begrenzte Schleifen ==&lt;br /&gt;
* Schreibe eine for-Schleife, die 10 mal &amp;quot;Hallo Welt!!&amp;quot; ausgibt.&lt;br /&gt;
* Verändere diese Schleife, so dass sie abwechselnd &amp;quot;Hallo Welt!&amp;quot; und &amp;quot;Ich bin im Javakurs!&amp;quot; ausgibt&lt;br /&gt;
** Es gibt zwei Möglichkeiten das zu realisieren - finde die andere.&lt;br /&gt;
&lt;br /&gt;
== einfache while-Schleife ==&lt;br /&gt;
Überlege dir, was das folgende Code-Fragment macht. Welche Zahlen werden ausgegeben?&lt;br /&gt;
Führe es aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;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;
= for =&lt;br /&gt;
== for-Schleifen zum Zählen ==&lt;br /&gt;
Überlege dir, was das folgende Code-Fragment macht. Welche Zahlen werden ausgegeben?&lt;br /&gt;
Führe es aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class For_Uebung1 {&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;
= Methoden =&lt;br /&gt;
== Argumente ==&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;
		ausgabe(1, &amp;quot;Martin&amp;quot;);&lt;br /&gt;
		ausgabe(&amp;quot;Arthur&amp;quot;, 2);&lt;br /&gt;
		ausgabe(3, &amp;quot;Florian&amp;quot;);&lt;br /&gt;
		ausgabe(&amp;quot;Robert&amp;quot;, 4);&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;
* Überlege was dieses Beispiel ausgibt.&lt;br /&gt;
* Probiere es aus und erkläre den Unterschied. (Wenn Fehler auftreten, erkläre wieso)&lt;br /&gt;
* Erkläre das einem Tutor&lt;br /&gt;
&lt;br /&gt;
== Was tut das? ==&lt;br /&gt;
Überlege dir, was das folgenden Code-Fragmente machen. Welche Zahlen werden ausgegeben?&lt;br /&gt;
Führe sie aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&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;
&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;
&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;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Selbst einige Methoden schreiben! ==&lt;br /&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/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;
= 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;br /&gt;
&lt;br /&gt;
= Klassen =&lt;br /&gt;
(todo)&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9277</id>
		<title>Javakurs2007/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9277"/>
		<updated>2007-04-11T08:40:05Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Raumauslastung + Tutorenverteilung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raumauslastung + Tutorenverteilung ==&lt;br /&gt;
Die Auslastung der Räume mit Tutanten wird dynamisch von den jeweiligen Tutoren eingetragen, um ein &amp;quot;load balancing&amp;quot; von Tutanten 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;
&lt;br /&gt;
&#039;&#039;&#039;Dienstag:&#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;
 ! Plätze&lt;br /&gt;
 ! Tutanten anwesend&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5539&lt;br /&gt;
 | Ilya, Kai, Daniel&lt;br /&gt;
 | 12&lt;br /&gt;
 | 10                         &amp;lt;!-- Hier Tutanten für FR5539 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5538&lt;br /&gt;
 | Karl W., Felix S., Martin Z.&lt;br /&gt;
 | 12&lt;br /&gt;
 | &amp;lt;Mittwoch&amp;gt;                           &amp;lt;!-- Hier Tutanten für FR5538 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5535&lt;br /&gt;
 | Robert L., Ellen M., Robert B.(bis 14)&lt;br /&gt;
 | 14&lt;br /&gt;
 | 12                           &amp;lt;!-- Hier Tutanten für FR5535 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5514&lt;br /&gt;
 | Anand B., Martin, Katrin&lt;br /&gt;
 | 14&lt;br /&gt;
 | &amp;lt;Mittwoch&amp;gt;                           &amp;lt;!-- 17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR2516&lt;br /&gt;
 | Maik, Julius, Nadim, Florian&lt;br /&gt;
 | 18&lt;br /&gt;
 | 12                          &amp;lt;!-- Hier Tutanten 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;
 | Milan, Felix, Georg&lt;br /&gt;
 | 12&lt;br /&gt;
 | 9                                   &amp;lt;!-- Hier Tutanten für FR2517 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Historie:&#039;&#039;&#039;&lt;br /&gt;
[https://wiki.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;amp;oldid=15409 Dienstag]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Mittwoch | Mittwoch]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Donnerstag | Donnerstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Freitag | Freitag]]&lt;br /&gt;
&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;
* Martin: Dienstag vormittag, vllt. nachmittag nicht da. &amp;lt;-- Welcher Martin? Das wäre für den ersten Tag schon sehr wichtig! --[[Benutzer:Ellen|Ellen]] 01:21, 9. Apr. 2007 (CEST)&lt;br /&gt;
* Robert B: Dienstag 14-16 Uhr nicht da&lt;br /&gt;
* Ellen: Bin Freitag wahrscheinlich erst ab 9:30/10:00 da.&lt;br /&gt;
* Karl W: Donnerstag ab 14:00 nicht da wegen blöder Nachklausur&lt;br /&gt;
&lt;br /&gt;
== Entwurf der Übungsaufgaben ==&lt;br /&gt;
&lt;br /&gt;
Bis Fr. 06.04.2007 24.00 verlinkt &#039;&#039;&#039;jeder Tutor&#039;&#039;&#039; auf folgender Seite eine von ihm entworfene (oder gut geklaute) Übungsaufgabe. Ab Sa. 12.00 baut das Orgateam aus diesen Aufgaben den Übungspool für den Kurs auf.&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool_Entw%C3%BCrfe]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/Musterloesungen | Musterlösungen für die Übungsaufgaben]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
# Aufgaben sortieren nach Vorwissen&lt;br /&gt;
# Prüfen ob zu jedem Schwierigkeitsgrad und Thema genügend Aufgaben vorhanden sind, evtl. noch Aufgaben hinzufügen&lt;br /&gt;
# Korrekturlesen&lt;br /&gt;
&lt;br /&gt;
== Planung der Vorträge ==&lt;br /&gt;
[[Gliederung_Javakurs_2007]]&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).&lt;br /&gt;
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 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;
javakurs2007 at lists.freitagsrunde.org&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9269</id>
		<title>Javakurs2007/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9269"/>
		<updated>2007-04-10T13:04:08Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Entwurf der Übungsaufgaben */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raumauslastung + Tutorenverteilung ==&lt;br /&gt;
Die Auslastung der Räume mit Tutanten wird dynamisch von den jeweiligen Tutoren eingetragen, um ein &amp;quot;load balancing&amp;quot; von Tutanten 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;
&lt;br /&gt;
&#039;&#039;&#039;Dienstag:&#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;
 ! Plätze&lt;br /&gt;
 ! Tutanten anwesend&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5539&lt;br /&gt;
 | Ilya, Kai, Daniel&lt;br /&gt;
 | 12&lt;br /&gt;
 | 11                          &amp;lt;!-- Hier Tutanten für FR5539 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5538&lt;br /&gt;
 | Karl W., Felix S., Martin Z.&lt;br /&gt;
 | 12&lt;br /&gt;
 | 14                           &amp;lt;!-- Hier Tutanten für FR5538 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5535&lt;br /&gt;
 | Robert L., Ellen M., Robert B.(bis 14)&lt;br /&gt;
 | 14&lt;br /&gt;
 | 9                           &amp;lt;!-- Hier Tutanten für FR5535 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5514&lt;br /&gt;
 | Anand B., Martin, Katrin&lt;br /&gt;
 | 14&lt;br /&gt;
 | 17                           &amp;lt;!-- 17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR2516&lt;br /&gt;
 | Maik, Julius, Nadim, Florian&lt;br /&gt;
 | 18&lt;br /&gt;
 | 19 (PS. 14:45Uhr gerade sind 7 Rechner frei)                           &amp;lt;!-- Hier Tutanten 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;
 | Milan, Felix, Georg&lt;br /&gt;
 | 12&lt;br /&gt;
 | 12                           &amp;lt;!-- Hier Tutanten für FR2517 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Historie:&#039;&#039;&#039;&lt;br /&gt;
[[Javakurs2007/Raumauslastung Dienstag | Dienstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Mittwoch | Mittwoch]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Donnerstag | Donnerstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Freitag | Freitag]]&lt;br /&gt;
&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;
* Martin: Dienstag vormittag, vllt. nachmittag nicht da. &amp;lt;-- Welcher Martin? Das wäre für den ersten Tag schon sehr wichtig! --[[Benutzer:Ellen|Ellen]] 01:21, 9. Apr. 2007 (CEST)&lt;br /&gt;
* Robert B: Dienstag 14-16 Uhr nicht da&lt;br /&gt;
* Ellen: Bin Freitag wahrscheinlich erst ab 9:30/10:00 da.&lt;br /&gt;
* Karl W: Donnerstag ab 14:00 nicht da wegen blöder Nachklausur&lt;br /&gt;
&lt;br /&gt;
== Entwurf der Übungsaufgaben ==&lt;br /&gt;
&lt;br /&gt;
Bis Fr. 06.04.2007 24.00 verlinkt &#039;&#039;&#039;jeder Tutor&#039;&#039;&#039; auf folgender Seite eine von ihm entworfene (oder gut geklaute) Übungsaufgabe. Ab Sa. 12.00 baut das Orgateam aus diesen Aufgaben den Übungspool für den Kurs auf.&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool_Entw%C3%BCrfe]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/Musterloesungen | Musterlösungen für die Übungsaufgaben]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
# Aufgaben sortieren nach Vorwissen&lt;br /&gt;
# Prüfen ob zu jedem Schwierigkeitsgrad und Thema genügend Aufgaben vorhanden sind, evtl. noch Aufgaben hinzufügen&lt;br /&gt;
# Korrekturlesen&lt;br /&gt;
&lt;br /&gt;
== Planung der Vorträge ==&lt;br /&gt;
[[Gliederung_Javakurs_2007]]&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).&lt;br /&gt;
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 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;
javakurs2007 at lists.freitagsrunde.org&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9268</id>
		<title>Javakurs2007/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9268"/>
		<updated>2007-04-10T13:03:20Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Raumauslastung + Tutorenverteilung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raumauslastung + Tutorenverteilung ==&lt;br /&gt;
Die Auslastung der Räume mit Tutanten wird dynamisch von den jeweiligen Tutoren eingetragen, um ein &amp;quot;load balancing&amp;quot; von Tutanten 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;
&lt;br /&gt;
&#039;&#039;&#039;Dienstag:&#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;
 ! Plätze&lt;br /&gt;
 ! Tutanten anwesend&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5539&lt;br /&gt;
 | Ilya, Kai, Daniel&lt;br /&gt;
 | 12&lt;br /&gt;
 | 11                          &amp;lt;!-- Hier Tutanten für FR5539 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5538&lt;br /&gt;
 | Karl W., Felix S., Martin Z.&lt;br /&gt;
 | 12&lt;br /&gt;
 | 14                           &amp;lt;!-- Hier Tutanten für FR5538 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5535&lt;br /&gt;
 | Robert L., Ellen M., Robert B.(bis 14)&lt;br /&gt;
 | 14&lt;br /&gt;
 | 9                           &amp;lt;!-- Hier Tutanten für FR5535 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5514&lt;br /&gt;
 | Anand B., Martin, Katrin&lt;br /&gt;
 | 14&lt;br /&gt;
 | 17                           &amp;lt;!-- 17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR2516&lt;br /&gt;
 | Maik, Julius, Nadim, Florian&lt;br /&gt;
 | 18&lt;br /&gt;
 | 19 (PS. 14:45Uhr gerade sind 7 Rechner frei)                           &amp;lt;!-- Hier Tutanten 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;
 | Milan, Felix, Georg&lt;br /&gt;
 | 12&lt;br /&gt;
 | 12                           &amp;lt;!-- Hier Tutanten für FR2517 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Historie:&#039;&#039;&#039;&lt;br /&gt;
[[Javakurs2007/Raumauslastung Dienstag | Dienstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Mittwoch | Mittwoch]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Donnerstag | Donnerstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Freitag | Freitag]]&lt;br /&gt;
&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;
* Martin: Dienstag vormittag, vllt. nachmittag nicht da. &amp;lt;-- Welcher Martin? Das wäre für den ersten Tag schon sehr wichtig! --[[Benutzer:Ellen|Ellen]] 01:21, 9. Apr. 2007 (CEST)&lt;br /&gt;
* Robert B: Dienstag 14-16 Uhr nicht da&lt;br /&gt;
* Ellen: Bin Freitag wahrscheinlich erst ab 9:30/10:00 da.&lt;br /&gt;
* Karl W: Donnerstag ab 14:00 nicht da wegen blöder Nachklausur&lt;br /&gt;
&lt;br /&gt;
== Entwurf der Übungsaufgaben ==&lt;br /&gt;
&lt;br /&gt;
Bis Fr. 06.04.2007 24.00 verlinkt &#039;&#039;&#039;jeder Tutor&#039;&#039;&#039; auf folgender Seite eine von ihm entworfene (oder gut geklaute) Übungsaufgabe. Ab Sa. 12.00 baut das Orgateam aus diesen Aufgaben den Übungspool für den Kurs auf.&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool_Entw%C3%BCrfe]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/Musterloesungen | Musterlösungen für die Übungsaufgaben]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
# Aufgaben sortieren nach Vorwissen&lt;br /&gt;
# Prüfen ob zu jedem Schwierigkeitsgrad und Thema genügend Aufgaben vorhanden sind, evtl. noch Aufgaben hinzufügen&lt;br /&gt;
# Korrekturlesen&lt;br /&gt;
&lt;br /&gt;
== Planung der Vorträge ==&lt;br /&gt;
[[Gliederung_Javakurs_2007]]&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).&lt;br /&gt;
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 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;
javakurs2007 at lists.freitagsrunde.org&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Diskussion:Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9961</id>
		<title>Diskussion:Javakurs/Übungsaufgaben/Javamenue</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Diskussion:Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9961"/>
		<updated>2007-04-10T13:02:48Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;aufpassen: Bitte die Terminal.java direkt von uebb runterladen, sonst kann es Probleme mit dem Encoding geben und der Javac meckert ueber einen falschen Umlaut.&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9358</id>
		<title>Javakurs/Übungsaufgaben/Javamenue</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9358"/>
		<updated>2007-04-10T12:57:34Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Handwerkszeug */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Handwerkszeug ===&lt;br /&gt;
In vielen deiner Javaprogramme wirst du vom Benutzer eine Eingabe per Tastatur erfragen wollen.&lt;br /&gt;
Da sich in Java das Lesen von Tastatureingaben normalerweise etwas umständlich gestaltet haben wir dir an dieser Stelle etwas zur Erleichterung vorbereitet.&lt;br /&gt;
&lt;br /&gt;
* kopiere die Datei [http://uebb.cs.tu-berlin.de/books/java/klassen/Terminal.java Terminal.java] in Dein Arbeitsverzeichnis.&lt;br /&gt;
&lt;br /&gt;
Solange diese Datei in demselben Verzeichnis liegt, wie die java-Datei an der Du arbeitest, stehen Dir einige Befehle zur Verfügung, die das Lesen von Tastatureingaben stark erleichtern. Wenn dich interessiert warum das so ist, so erfährst du es [[Javakurs2007/Terminal | hier]].&lt;br /&gt;
&lt;br /&gt;
Falls das nicht funktioniert, ist der sogenannte CLASSPATH falsch gesetzt.&lt;br /&gt;
Gibt dazu in dem Terminal direkt nach dem Öffnen des Terminals folgendes Kommando ein: &lt;br /&gt;
  &lt;br /&gt;
 CLASSPATH=&amp;quot;.:$CLASSPATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zurück zum Thema: Einer dieser Befehle lautet &amp;quot;Terminal.readString()&amp;quot;. Er liest eine Tastatureingabe bis zum nächsten Zeilenumbruch von der Konsole und liefert ihn als String zurück.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 // Einlesen einer Tastatureingabe bis zum nächsten Zeilenumbruch in die Variable &amp;quot;eingegebeneTextzeile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 String eingegebeneTextzeile;&lt;br /&gt;
 eingegebeneTextzeile = Terminal.readString();&lt;br /&gt;
&lt;br /&gt;
=== Erste Konsolenabfrage ===&lt;br /&gt;
Probieren wir das Ganze einmal aus.&lt;br /&gt;
&lt;br /&gt;
* Frage auf der Konsole nach dem Namen des Benutzers.&lt;br /&gt;
* speichere seine Eingabe mit Hilfe von &amp;quot;Terminal.readString()&amp;quot;.&lt;br /&gt;
* Begrüße den Benutzer mit seinem Namen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menü mit Zahlen ===&lt;br /&gt;
Schonmal nicht schlecht. Nun zum interessanten Teil.&lt;br /&gt;
Ein weiterer Befehl zur Vereinfachung der Konsolenbenutzung lautet Terminal.readInt(). Er liest eine Zahl von der Konsole und gibt sie als int zurück.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 // Einlesen einer Zahl per Tastatureingabe in die Variable &amp;quot;eingegebeneZahl&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 int eingegebeneZahl;&lt;br /&gt;
 eingegebeneZahl = Terminal.readInt();&lt;br /&gt;
&lt;br /&gt;
* Frage auf der Konsole ob der Benutzer: &lt;br /&gt;
: 1) eine Frau ist.&lt;br /&gt;
: 2) ein Mann ist.&lt;br /&gt;
: 3) die Frage nicht beantworten möchte.&lt;br /&gt;
&lt;br /&gt;
* Begrüße den Benutzer abhängig von seiner Eingabe mit &amp;quot;Herr&amp;quot;, &amp;quot;Frau&amp;quot; oder geschlechtslos.&lt;br /&gt;
* Zeige eine Fehlermeldung an wenn eine andere Zahl als 1,2 oder 3 eingegeben wird.&lt;br /&gt;
&lt;br /&gt;
=== Tipps ===&lt;br /&gt;
Einen Text auf der Konsole ausgeben:&lt;br /&gt;
 System.out.println(&amp;quot;text&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Den Programmfluss abhängig vom Warheitsgehalt einer Bedingung lenken:&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung) {&lt;br /&gt;
  fall1&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;else&#039;&#039;&#039; {&lt;br /&gt;
  fall2&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Zwei Bedingungen logisch miteinander verknüpfen:&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung1 &amp;amp;&amp;amp; bedingung2) {...} // Logisches Und&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung1 || bedingung2) {...} // logisches Oder&lt;br /&gt;
&lt;br /&gt;
&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9354</id>
		<title>Javakurs/Übungsaufgaben/Javamenue</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9354"/>
		<updated>2007-04-10T09:29:22Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Handwerkszeug */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Handwerkszeug ===&lt;br /&gt;
In vielen deiner Javaprogramme wirst du vom Benutzer eine Eingabe per Tastatur erfragen wollen.&lt;br /&gt;
Da sich in Java das Lesen von Tastatureingaben normalerweise etwas umständlich gestaltet haben wir dir an dieser Stelle etwas zur Erleichterung vorbereitet.&lt;br /&gt;
&lt;br /&gt;
* kopiere die Datei [http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/Terminal.java Terminal.java] in ein Unterverzeichnis namens &amp;quot;it_package&amp;quot; unterhalb deines Arbeitsverzeichnisses.&lt;br /&gt;
* Diese kann unter /home/ini/ini/it/it_package/Terminal.java gefunden werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Solange diese Datei in einem Unterverzeichnis des Verzeichnisses mit der aktuellen java-Datei liegt, stehen dir einige Befehle zur Verfügung, die das Lesen von Tastatureingaben stark erleichtern. Wenn dich interessiert warum das so ist, so erfährst du es [[Javakurs2007/Terminal | hier]].&lt;br /&gt;
&lt;br /&gt;
Einer dieser Befehle lautet &amp;quot;Terminal.readString()&amp;quot;. Er liest eine Tastatureingabe bis zum nächsten Zeilenumbruch von der Konsole und liefert ihn als String zurück.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 // Einlesen einer Tastatureingabe bis zum nächsten Zeilenumbruch in die Variable &amp;quot;eingegebeneTextzeile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 String eingegebeneTextzeile;&lt;br /&gt;
 eingegebeneTextzeile = Terminal.readString();&lt;br /&gt;
&lt;br /&gt;
=== Erste Konsolenabfrage ===&lt;br /&gt;
Probieren wir das Ganze einmal aus.&lt;br /&gt;
&lt;br /&gt;
* Frage auf der Konsole nach dem Namen des Benutzers.&lt;br /&gt;
* speichere seine Eingabe mit Hilfe von &amp;quot;Terminal.readString()&amp;quot;.&lt;br /&gt;
* Begrüße den Benutzer mit seinem Namen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menü mit Zahlen ===&lt;br /&gt;
Schonmal nicht schlecht. Nun zum interessanten Teil.&lt;br /&gt;
Ein weiterer Befehl zur Vereinfachung der Konsolenbenutzung lautet Terminal.readInt(). Er liest eine Zahl von der Konsole und gibt sie als int zurück.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 // Einlesen einer Zahl per Tastatureingabe in die Variable &amp;quot;eingegebeneZahl&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 int eingegebeneZahl;&lt;br /&gt;
 eingegebeneZahl = Terminal.readInt();&lt;br /&gt;
&lt;br /&gt;
* Frage auf der Konsole ob der Benutzer: &lt;br /&gt;
: 1) eine Frau ist.&lt;br /&gt;
: 2) ein Mann ist.&lt;br /&gt;
: 3) die Frage nicht beantworten möchte.&lt;br /&gt;
&lt;br /&gt;
* Begrüße den Benutzer abhängig von seiner Eingabe mit &amp;quot;Herr&amp;quot;, &amp;quot;Frau&amp;quot; oder geschlechtslos.&lt;br /&gt;
* Zeige eine Fehlermeldung an wenn eine andere Zahl als 1,2 oder 3 eingegeben wird.&lt;br /&gt;
&lt;br /&gt;
=== Tipps ===&lt;br /&gt;
Einen Text auf der Konsole ausgeben:&lt;br /&gt;
 System.out.println(&amp;quot;text&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Den Programmfluss abhängig vom Warheitsgehalt einer Bedingung lenken:&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung) {&lt;br /&gt;
  fall1&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;else&#039;&#039;&#039; {&lt;br /&gt;
  fall2&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Zwei Bedingungen logisch miteinander verknüpfen:&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung1 &amp;amp;&amp;amp; bedingung2) {...} // Logisches Und&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung1 || bedingung2) {...} // logisches Oder&lt;br /&gt;
&lt;br /&gt;
&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9261</id>
		<title>Javakurs2007/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9261"/>
		<updated>2007-04-10T09:12:05Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Raumauslastung + Tutorenverteilung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raumauslastung + Tutorenverteilung ==&lt;br /&gt;
Die Auslastung der Räume mit Tutanten wird dynamisch von den jeweiligen Tutoren eingetragen, um ein &amp;quot;load balancing&amp;quot; von Tutanten 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;
&lt;br /&gt;
&#039;&#039;&#039;Dienstag:&#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;
 ! Plätze&lt;br /&gt;
 ! Tutanten anwesend&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5539&lt;br /&gt;
 | Ilya, Kai, Daniel&lt;br /&gt;
 | 12&lt;br /&gt;
 | 13                           &amp;lt;!-- Hier Tutanten für FR5539 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5538&lt;br /&gt;
 | Karl W., Felix S., Martin Z.&lt;br /&gt;
 | 12&lt;br /&gt;
 | 14                           &amp;lt;!-- Hier Tutanten für FR5538 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5535&lt;br /&gt;
 | Robert L., Ellen M., Robert B.(bis 14)&lt;br /&gt;
 | 14&lt;br /&gt;
 | 18                           &amp;lt;!-- Hier Tutanten für FR5535 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5514&lt;br /&gt;
 | Anand B., Martin, Katrin&lt;br /&gt;
 | 14&lt;br /&gt;
 | 17                           &amp;lt;!-- 17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR2516&lt;br /&gt;
 | Maik, Julius, Nadim, Florian&lt;br /&gt;
 | 18&lt;br /&gt;
 | 19                           &amp;lt;!-- Hier Tutanten 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;
 | Milan, Felix, Georg&lt;br /&gt;
 | 12&lt;br /&gt;
 | 17                           &amp;lt;!-- Hier Tutanten für FR2517 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Historie:&#039;&#039;&#039;&lt;br /&gt;
[[Javakurs2007/Raumauslastung Dienstag | Dienstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Mittwoch | Mittwoch]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Donnerstag | Donnerstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Freitag | Freitag]]&lt;br /&gt;
&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;
* Martin: Dienstag vormittag, vllt. nachmittag nicht da. &amp;lt;-- Welcher Martin? Das wäre für den ersten Tag schon sehr wichtig! --[[Benutzer:Ellen|Ellen]] 01:21, 9. Apr. 2007 (CEST)&lt;br /&gt;
* Robert B: Dienstag 14-16 Uhr nicht da&lt;br /&gt;
* Ellen: Bin Freitag wahrscheinlich erst ab 9:30/10:00 da.&lt;br /&gt;
* Karl W: Donnerstag ab 14:00 nicht da wegen blöder Nachklausur&lt;br /&gt;
&lt;br /&gt;
== Entwurf der Übungsaufgaben ==&lt;br /&gt;
&lt;br /&gt;
Bis Fr. 06.04.2007 24.00 verlinkt &#039;&#039;&#039;jeder Tutor&#039;&#039;&#039; auf folgender Seite eine von ihm entworfene (oder gut geklaute) Übungsaufgabe. Ab Sa. 12.00 baut das Orgateam aus diesen Aufgaben den Übungspool für den Kurs auf.&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool_Entw%C3%BCrfe]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/Musterloesungen | Musterlösungen für die Übungsaufgaben]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
# Aufgaben sortieren nach Vorwissen&lt;br /&gt;
# Prüfen ob zu jedem Schwierigkeitsgrad und Thema genügend Aufgaben vorhanden sind, evtl. noch Aufgaben hinzufügen&lt;br /&gt;
# Korrekturlesen&lt;br /&gt;
&lt;br /&gt;
== Planung der Vorträge ==&lt;br /&gt;
[[Gliederung_Javakurs_2007]]&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).&lt;br /&gt;
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 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;
javakurs2007 at lists.freitagsrunde.org&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9260</id>
		<title>Javakurs2007/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9260"/>
		<updated>2007-04-10T09:11:24Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Raumauslastung + Tutorenverteilung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raumauslastung + Tutorenverteilung ==&lt;br /&gt;
Die Auslastung der Räume mit Tutanten wird dynamisch von den jeweiligen Tutoren eingetragen, um ein &amp;quot;load balancing&amp;quot; von Tutanten 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;
&lt;br /&gt;
&#039;&#039;&#039;Dienstag:&#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;
 ! Plätze&lt;br /&gt;
 ! Tutanten anwesend&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5539&lt;br /&gt;
 | Ilya, Kai, Daniel&lt;br /&gt;
 | 12&lt;br /&gt;
 | 11                           &amp;lt;!-- Hier Tutanten für FR5539 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5538&lt;br /&gt;
 | Karl W., Felix S., Martin Z.&lt;br /&gt;
 | 12&lt;br /&gt;
 | 14                           &amp;lt;!-- Hier Tutanten für FR5538 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5535&lt;br /&gt;
 | Robert L., Ellen M., Robert B.(bis 14)&lt;br /&gt;
 | 14&lt;br /&gt;
 | 18                           &amp;lt;!-- Hier Tutanten für FR5535 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5514&lt;br /&gt;
 | Anand B., Martin, Katrin&lt;br /&gt;
 | 14&lt;br /&gt;
 | 17                           &amp;lt;!-- 17--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR2516&lt;br /&gt;
 | Maik, Julius, Nadim, Florian&lt;br /&gt;
 | 18&lt;br /&gt;
 | 19                           &amp;lt;!-- Hier Tutanten 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;
 | Milan, Felix, Georg&lt;br /&gt;
 | 12&lt;br /&gt;
 | 17                           &amp;lt;!-- Hier Tutanten für FR2517 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Historie:&#039;&#039;&#039;&lt;br /&gt;
[[Javakurs2007/Raumauslastung Dienstag | Dienstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Mittwoch | Mittwoch]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Donnerstag | Donnerstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Freitag | Freitag]]&lt;br /&gt;
&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;
* Martin: Dienstag vormittag, vllt. nachmittag nicht da. &amp;lt;-- Welcher Martin? Das wäre für den ersten Tag schon sehr wichtig! --[[Benutzer:Ellen|Ellen]] 01:21, 9. Apr. 2007 (CEST)&lt;br /&gt;
* Robert B: Dienstag 14-16 Uhr nicht da&lt;br /&gt;
* Ellen: Bin Freitag wahrscheinlich erst ab 9:30/10:00 da.&lt;br /&gt;
* Karl W: Donnerstag ab 14:00 nicht da wegen blöder Nachklausur&lt;br /&gt;
&lt;br /&gt;
== Entwurf der Übungsaufgaben ==&lt;br /&gt;
&lt;br /&gt;
Bis Fr. 06.04.2007 24.00 verlinkt &#039;&#039;&#039;jeder Tutor&#039;&#039;&#039; auf folgender Seite eine von ihm entworfene (oder gut geklaute) Übungsaufgabe. Ab Sa. 12.00 baut das Orgateam aus diesen Aufgaben den Übungspool für den Kurs auf.&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool_Entw%C3%BCrfe]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/Musterloesungen | Musterlösungen für die Übungsaufgaben]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
# Aufgaben sortieren nach Vorwissen&lt;br /&gt;
# Prüfen ob zu jedem Schwierigkeitsgrad und Thema genügend Aufgaben vorhanden sind, evtl. noch Aufgaben hinzufügen&lt;br /&gt;
# Korrekturlesen&lt;br /&gt;
&lt;br /&gt;
== Planung der Vorträge ==&lt;br /&gt;
[[Gliederung_Javakurs_2007]]&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).&lt;br /&gt;
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 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;
javakurs2007 at lists.freitagsrunde.org&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9351</id>
		<title>Javakurs/Übungsaufgaben/Javamenue</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Javamenue&amp;diff=9351"/>
		<updated>2007-04-10T08:59:39Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Handwerkszeug */  Loc der Terminal.java hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Handwerkszeug ===&lt;br /&gt;
In vielen deiner Javaprogramme wirst du vom Benutzer eine Eingabe per Tastatur erfragen wollen.&lt;br /&gt;
Da sich in Java das Lesen von Tastatureingaben normalerweise etwas umständlich gestaltet haben wir dir an dieser Stelle etwas zur Erleichterung vorbereitet.&lt;br /&gt;
&lt;br /&gt;
* kopiere die Datei Terminal.java in dein aktuelles Arbeitsverzeichnis.&lt;br /&gt;
Diese kann unter /home/ini/ini/it/it_package/Terminal.java gefunden werden.&lt;br /&gt;
* (nur die Terminal.java sollte noch nicht reichen, um die statischen Methoden dieser Klasse verwenden zu können. Es bedarf schon einer Terminal.class, oder?)&lt;br /&gt;
&lt;br /&gt;
Solange diese Datei im selben Verzeichnis liegt wie die .java Datei an der du gerade arbeitest, stehen dir einige Befehle zur Verfügung, die das Lesen von Tastatureingaben stark erleichtern. Wenn dich interessiert warum das so ist, so erfährst du es [[Javakurs2007/Terminal | hier]].&lt;br /&gt;
&lt;br /&gt;
Einer dieser Befehle lautet &amp;quot;Terminal.readString()&amp;quot;. Er liest eine Tastatureingabe bis zum nächsten Zeilenumbruch von der Konsole und liefert ihn als String zurück.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 // Einlesen einer Tastatureingabe bis zum nächsten Zeilenumbruch in die Variable &amp;quot;eingegebeneTextzeile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 String eingegebeneTextzeile;&lt;br /&gt;
 eingegebeneTextzeile = Terminal.readString();&lt;br /&gt;
&lt;br /&gt;
=== Erste Konsolenabfrage ===&lt;br /&gt;
Probieren wir das Ganze einmal aus.&lt;br /&gt;
&lt;br /&gt;
* Frage auf der Konsole nach dem Namen des Benutzers.&lt;br /&gt;
* speichere seine Eingabe mit Hilfe von &amp;quot;Terminal.readString()&amp;quot;.&lt;br /&gt;
* Begrüße den Benutzer mit seinem Namen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menü mit Zahlen ===&lt;br /&gt;
Schonmal nicht schlecht. Nun zum interessanten Teil.&lt;br /&gt;
Ein weiterer Befehl zur Vereinfachung der Konsolenbenutzung lautet Terminal.readInt(). Er liest eine Zahl von der Konsole und gibt sie als int zurück.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 // Einlesen einer Zahl per Tastatureingabe in die Variable &amp;quot;eingegebeneZahl&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 int eingegebeneZahl;&lt;br /&gt;
 eingegebeneZahl = Terminal.readInt();&lt;br /&gt;
&lt;br /&gt;
* Frage auf der Konsole ob der Benutzer: &lt;br /&gt;
: 1) eine Frau ist.&lt;br /&gt;
: 2) ein Mann ist.&lt;br /&gt;
: 3) die Frage nicht beantworten möchte.&lt;br /&gt;
&lt;br /&gt;
* Begrüße den Benutzer abhängig von seiner Eingabe mit &amp;quot;Herr&amp;quot;, &amp;quot;Frau&amp;quot; oder geschlechtslos.&lt;br /&gt;
* Zeige eine Fehlermeldung an wenn eine andere Zahl als 1,2 oder 3 eingegeben wird.&lt;br /&gt;
&lt;br /&gt;
=== Tipps ===&lt;br /&gt;
Einen Text auf der Konsole ausgeben:&lt;br /&gt;
 System.out.println(&amp;quot;text&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Den Programmfluss abhängig vom Warheitsgehalt einer Bedingung lenken:&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung) {&lt;br /&gt;
  fall1&lt;br /&gt;
 }&lt;br /&gt;
 &#039;&#039;&#039;else&#039;&#039;&#039; {&lt;br /&gt;
  fall2&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Zwei Bedingungen logisch miteinander verknüpfen:&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung1 &amp;amp;&amp;amp; bedingung2) {...} // Logisches Und&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;if&#039;&#039;&#039; (bedingung1 || bedingung2) {...} // logisches Oder&lt;br /&gt;
&lt;br /&gt;
&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9255</id>
		<title>Javakurs2007/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9255"/>
		<updated>2007-04-10T08:42:38Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Raumauslastung + Tutorenverteilung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raumauslastung + Tutorenverteilung ==&lt;br /&gt;
Die Auslastung der Räume mit Tutanten wird dynamisch von den jeweiligen Tutoren eingetragen, um ein &amp;quot;load balancing&amp;quot; von Tutanten 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;
&lt;br /&gt;
&#039;&#039;&#039;Dienstag:&#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;
 ! Plätze&lt;br /&gt;
 ! Tutanten anwesend&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5539&lt;br /&gt;
 | Ilya, Kai, Daniel&lt;br /&gt;
 | 12&lt;br /&gt;
 | 10                           &amp;lt;!-- Hier Tutanten für FR5539 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5538&lt;br /&gt;
 | Karl W., Felix S., Martin Z.&lt;br /&gt;
 | 12&lt;br /&gt;
 | 14                           &amp;lt;!-- Hier Tutanten für FR5538 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5535&lt;br /&gt;
 | Robert L., Anand B., Robert B.(bis 14)&lt;br /&gt;
 | 14&lt;br /&gt;
 | bitte eintragen                           &amp;lt;!-- Hier Tutanten für FR5535 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5514&lt;br /&gt;
 | Ellen, Martin, Katrin&lt;br /&gt;
 | 14&lt;br /&gt;
 | bitte eintragen                           &amp;lt;!-- Hier Tutanten für FR5514 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR2516&lt;br /&gt;
 | Maik, Julius, Nadim, Florian&lt;br /&gt;
 | 18&lt;br /&gt;
 | 19                           &amp;lt;!-- Hier Tutanten 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;
 | Milan, Felix, Georg&lt;br /&gt;
 | 12&lt;br /&gt;
 | 17                           &amp;lt;!-- Hier Tutanten für FR2517 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Historie:&#039;&#039;&#039;&lt;br /&gt;
[[Javakurs2007/Raumauslastung Dienstag | Dienstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Mittwoch | Mittwoch]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Donnerstag | Donnerstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Freitag | Freitag]]&lt;br /&gt;
&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;
* Martin: Dienstag vormittag, vllt. nachmittag nicht da. &amp;lt;-- Welcher Martin? Das wäre für den ersten Tag schon sehr wichtig! --[[Benutzer:Ellen|Ellen]] 01:21, 9. Apr. 2007 (CEST)&lt;br /&gt;
* Robert B: Dienstag 14-16 Uhr nicht da&lt;br /&gt;
* Ellen: Bin Freitag wahrscheinlich erst ab 9:30/10:00 da.&lt;br /&gt;
* Karl W: Donnerstag ab 14:00 nicht da wegen blöder Nachklausur&lt;br /&gt;
&lt;br /&gt;
== Entwurf der Übungsaufgaben ==&lt;br /&gt;
&lt;br /&gt;
Bis Fr. 06.04.2007 24.00 verlinkt &#039;&#039;&#039;jeder Tutor&#039;&#039;&#039; auf folgender Seite eine von ihm entworfene (oder gut geklaute) Übungsaufgabe. Ab Sa. 12.00 baut das Orgateam aus diesen Aufgaben den Übungspool für den Kurs auf.&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool_Entw%C3%BCrfe]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/Musterloesungen | Musterlösungen für die Übungsaufgaben]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
# Aufgaben sortieren nach Vorwissen&lt;br /&gt;
# Prüfen ob zu jedem Schwierigkeitsgrad und Thema genügend Aufgaben vorhanden sind, evtl. noch Aufgaben hinzufügen&lt;br /&gt;
# Korrekturlesen&lt;br /&gt;
&lt;br /&gt;
== Planung der Vorträge ==&lt;br /&gt;
[[Gliederung_Javakurs_2007]]&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).&lt;br /&gt;
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 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;
javakurs2007 at lists.freitagsrunde.org&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Variablen_und_Zuweisungen&amp;diff=9665</id>
		<title>Javakurs/Übungsaufgaben/Variablen und Zuweisungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs/%C3%9Cbungsaufgaben/Variablen_und_Zuweisungen&amp;diff=9665"/>
		<updated>2007-04-10T08:41:45Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Selber Deklarationen und Definitionen durchführen */&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/VariablenUndZuweisungen.tar http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2007/vorgaben/VariablenUndZuweisungen.tar]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deklaration und Initialisierung ==&lt;br /&gt;
&lt;br /&gt;
* An welcher Stelle im folgenden Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; deklariert?&lt;br /&gt;
* An welcher Stelle im folgenden 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 oder diskutiere sie mit der Person am Rechner nebenan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class DeklarationUndInnitialisierung {&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;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
&lt;br /&gt;
* Realisiere die Kommentare im folgenden Codestück. &lt;br /&gt;
* Teste deinen Code.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class SelbstDeklarierenUndDefinieren {&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 fuenf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;8 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fuenf 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;
== Zuweisung an Variablen ==&lt;br /&gt;
&lt;br /&gt;
* Überlege dir, was für eine Ausgabe der folgende Code erzeugen würde.&lt;br /&gt;
* Compiliere den Code, führe ihn aus und vergleiche das Resultat mit deinen Erwartungen.&lt;br /&gt;
* Was sind die Unterschiede?&lt;br /&gt;
* Diskutiere die Unterschiede mit der Person am Rechner nebenan, oder einem Tutor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class ZuweisungenAnVariablen {&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;
&lt;br /&gt;
== Variablen ändern ihre Werte ==&lt;br /&gt;
&lt;br /&gt;
* Überlege dir, was für eine Ausgabe der folgende Code erzeugen würde.&lt;br /&gt;
* Compiliere den Code, führe ihn aus und vergleiche das Resultat mit deinen Erwartungen.&lt;br /&gt;
* Was sind die Unterschiede?&lt;br /&gt;
* Diskutiere die Unterschiede mit der Person am Rechner nebenan, oder einem Tutor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class VariablenAendernIhreWerte {&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;
&lt;br /&gt;
== Formatierung und Namen ==&lt;br /&gt;
&lt;br /&gt;
* Wieso haben wir die Code-Beispiele nach den geschweiften Klammern eingerückt und die Variablen so benannt, wie wir es taten und nicht so:&lt;br /&gt;
&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;
&lt;br /&gt;
&lt;br /&gt;
* Etwas weniger Extrem: Was ist im folgenden Beispiel bei der Formatierung schief gelaufen?&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Formatierung1 {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;
&lt;br /&gt;
&lt;br /&gt;
* Warum ist der folgende Code so schlecht lesbar?&lt;br /&gt;
* Woran erinnert er dich?&lt;br /&gt;
&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;
&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9253</id>
		<title>Javakurs2007/Tutorenportal</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2007/Tutorenportal&amp;diff=9253"/>
		<updated>2007-04-10T08:37:01Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Raumauslastung + Tutorenverteilung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raumauslastung + Tutorenverteilung ==&lt;br /&gt;
Die Auslastung der Räume mit Tutanten wird dynamisch von den jeweiligen Tutoren eingetragen, um ein &amp;quot;load balancing&amp;quot; von Tutanten 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;
&lt;br /&gt;
&#039;&#039;&#039;Dienstag:&#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;
 ! Plätze&lt;br /&gt;
 ! Tutanten anwesend&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5539&lt;br /&gt;
 | Ilya, Kai, Daniel&lt;br /&gt;
 | 12&lt;br /&gt;
 | 10                           &amp;lt;!-- Hier Tutanten für FR5539 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5538&lt;br /&gt;
 | Karl W., Felix S., Martin Z.&lt;br /&gt;
 | 12&lt;br /&gt;
 | 14                           &amp;lt;!-- Hier Tutanten für FR5538 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR5535&lt;br /&gt;
 | Robert L., Anand B., Robert B.(bis 14)&lt;br /&gt;
 | 14&lt;br /&gt;
 | bitte eintragen                           &amp;lt;!-- Hier Tutanten für FR5535 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | FR5514&lt;br /&gt;
 | Ellen, Martin, Katrin&lt;br /&gt;
 | 14&lt;br /&gt;
 | bitte eintragen                           &amp;lt;!-- Hier Tutanten für FR5514 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | FR2516&lt;br /&gt;
 | Maik, Julius, Nadim, Florian&lt;br /&gt;
 | 19&lt;br /&gt;
 | Maik, Julius, Nadim                           &amp;lt;!-- Hier Tutanten 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;
 | Milan, Felix, Georg&lt;br /&gt;
 | 12&lt;br /&gt;
 | bitte eintragen                           &amp;lt;!-- Hier Tutanten für FR2517 eintragen--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Historie:&#039;&#039;&#039;&lt;br /&gt;
[[Javakurs2007/Raumauslastung Dienstag | Dienstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Mittwoch | Mittwoch]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Donnerstag | Donnerstag]]&lt;br /&gt;
[[Javakurs2007/Raumauslastung Freitag | Freitag]]&lt;br /&gt;
&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;
* Martin: Dienstag vormittag, vllt. nachmittag nicht da. &amp;lt;-- Welcher Martin? Das wäre für den ersten Tag schon sehr wichtig! --[[Benutzer:Ellen|Ellen]] 01:21, 9. Apr. 2007 (CEST)&lt;br /&gt;
* Robert B: Dienstag 14-16 Uhr nicht da&lt;br /&gt;
* Ellen: Bin Freitag wahrscheinlich erst ab 9:30/10:00 da.&lt;br /&gt;
* Karl W: Donnerstag ab 14:00 nicht da wegen blöder Nachklausur&lt;br /&gt;
&lt;br /&gt;
== Entwurf der Übungsaufgaben ==&lt;br /&gt;
&lt;br /&gt;
Bis Fr. 06.04.2007 24.00 verlinkt &#039;&#039;&#039;jeder Tutor&#039;&#039;&#039; auf folgender Seite eine von ihm entworfene (oder gut geklaute) Übungsaufgabe. Ab Sa. 12.00 baut das Orgateam aus diesen Aufgaben den Übungspool für den Kurs auf.&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/%C3%9Cbungspool_Entw%C3%BCrfe]]&lt;br /&gt;
&lt;br /&gt;
[[Javakurs2007/Musterloesungen | Musterlösungen für die Übungsaufgaben]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
# Aufgaben sortieren nach Vorwissen&lt;br /&gt;
# Prüfen ob zu jedem Schwierigkeitsgrad und Thema genügend Aufgaben vorhanden sind, evtl. noch Aufgaben hinzufügen&lt;br /&gt;
# Korrekturlesen&lt;br /&gt;
&lt;br /&gt;
== Planung der Vorträge ==&lt;br /&gt;
[[Gliederung_Javakurs_2007]]&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).&lt;br /&gt;
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 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;
javakurs2007 at lists.freitagsrunde.org&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;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Benutzer:Grey/SWT&amp;diff=7759</id>
		<title>Benutzer:Grey/SWT</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Benutzer:Grey/SWT&amp;diff=7759"/>
		<updated>2006-06-23T11:27:38Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Data Dictionary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Mögliche Diagramme:&#039;&#039;&#039;&lt;br /&gt;
* Klassenmodell  &lt;br /&gt;
* Use-Case-Modell&lt;br /&gt;
* Timeline-Diagramme&lt;br /&gt;
* Systemklassenmodell&lt;br /&gt;
* Operationsmodell &lt;br /&gt;
&lt;br /&gt;
= Data Dictionary =&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#F9F9F9; font-size:95%; empty-cells:show;&amp;quot;&lt;br /&gt;
! {{Highlight1}} |Name&lt;br /&gt;
! {{Highlight1}} |Art&lt;br /&gt;
! {{Highlight1}} |Beschreibung&lt;br /&gt;
! {{Highlight1}} |Quelle&lt;br /&gt;
|-&lt;br /&gt;
|Gehört_zu_LV&lt;br /&gt;
|Assoziation&lt;br /&gt;
|jede Teilnote gehört zu einer LV&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Blocknote&lt;br /&gt;
|Klasse&lt;br /&gt;
|Eine Note die ein Studierender bei einer Blockprüpfung erhält.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Blockprüfung&lt;br /&gt;
|Klasse&lt;br /&gt;
|Mündliche Prüfung bei einem Professor über mindestens zwei LVs.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|datum&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse: Termin; Typ: Date&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Dozent&lt;br /&gt;
|Klasse&lt;br /&gt;
|Eine Person die an einer Universität Lehrveranstaltungen hält.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|email&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse: Studierender; Typ: String&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Enthält_LV&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Jede Blockprüfung beinhaltet mindestens zwei LVs.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Findet_statt_an_Termin&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Jede Blockprüfung findet an einem zuvor festgesetzten Termin statt.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|freiePlätze&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse: LV; Typ: long&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Gesamtnote&lt;br /&gt;
|Klasse&lt;br /&gt;
|Eine Note die ein Studierender für eine LV erhält und sich aus zwei Teilnoten zusammensetzt.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Hält&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Jeder Dozent betreut eine oder mehrere LVs.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Hat_Gesamtnote&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Studierender hat Gesamtnoten&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Hat_Teilnote&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Studierender hat Teilnoten&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Hat_Blocknote&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Nach erfolgter Blockprüfung hat jeder Student eine Blocknote&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse: LV; Typ: long&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Ist_zu_geordnet&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Termin gehört zu einem Professor&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Legt_Teilleistung_ab&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Student erbringt eine Teilleistung.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|LV&lt;br /&gt;
|Klasse&lt;br /&gt;
|Lehrveranstaltung an einer Universität, an der ein Studierender teilnehmen kann.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Meldet_sich_an_LV_an&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Student meldet sich an einer oder mehrere LVs an.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Meldet_Studierenden_an&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Verwaltungspersonal meldet einen Studierenden zu einer Blockprüfung an.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|mat-nr.&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse: Studierender; Typ: int&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse:Dozent,Professor,Studierender; Typ: String&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|note&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse: Blocknote, Gesamtnote, Teilnote; Typ: float&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Professor&lt;br /&gt;
|Klasse&lt;br /&gt;
|Eine Person die berechtigt ist eine Blockprüfung durchzuführen.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Prüft_Blockprüfung&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Professor prüft eine Blockprüfung.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|studiengang&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse: Studierender; Typ: String&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Studierender&lt;br /&gt;
|Klasse&lt;br /&gt;
|Eine Person die an einer Universität lernt.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Teilnote&lt;br /&gt;
|Klasse&lt;br /&gt;
|Eine Note die ein Studierender für eine Teilleistung in einer LV erhält.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Teilleistung&lt;br /&gt;
|Klasse&lt;br /&gt;
|Schriftliche oder mündliche Leistung in einer LV, die ein Studierender erbringen muss.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|teilnehmerbeschränkung&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse: LV; Typ: long&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Teilt_Daten_mit&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Student teilt dem Verwaltungspersonal seine Matrikelnummer und Prüfungstermin mit.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Teilt_Termin_mit&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Professer teilt dem Verwaltungspersonal seine möglichen Prüfungstermine mit.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Termin&lt;br /&gt;
|Klasse&lt;br /&gt;
|Festgesetzter Zeitpunkt an dem eine Blockprüfung stattfindet.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Trägt_Blockprüfungsnote_ein&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Verwaltungspersonal trägt Note für eine Blockprüfung ins System ein.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Trägt_Gesamtnote_ein&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Dozent trägt die Gesamtnote für eine LV ins System ein.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Trägt_in_System_ein&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Verwaltungspersonal trägt Termin für eine Blockprüfung ins System ein.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Trägt_Seine_Daten_Ein&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Studierender trägt seine Daten in das Webformular ein.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Trägt_Teilnote_ein&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Dozent trägt die Teilnote für eine Teilleistung ins System ein.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Trägt_Teilleistung_ein&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Dozent trägt eine Teilleistung für eine LV ins System ein.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|typ&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse: Teilleistung; Typ: String&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|uhrzeit&lt;br /&gt;
|Attribut&lt;br /&gt;
|Klasse: Termin; Typ: Time&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Verwaltungspersonal&lt;br /&gt;
|Klasse&lt;br /&gt;
|Eine Person die Noten und Prüfungstermine in das System einträgt.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Web-Formular&lt;br /&gt;
|Klasse&lt;br /&gt;
|Eine Internetseite mit der sich Studierende am System für LVs anmelden können.&lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Wurde_geprüft_mit&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Eine Blockprüfung wurde mir einer bestimmten Note abgeschlossen. &lt;br /&gt;
|Klassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Blockprüfungs-Anmeldung&lt;br /&gt;
|Use Case&lt;br /&gt;
|Das Verwaltungspersonal meldet einen Studierenden zu einer Blockprüfung an.&lt;br /&gt;
|Use-Case-Modell&lt;br /&gt;
|-&lt;br /&gt;
|Dateneingabe&lt;br /&gt;
|Use Case&lt;br /&gt;
|Bei erstmaliger LV-Anmeldung gibt ein Studierender seine persönlichen Daten an.&lt;br /&gt;
|Use-Case-Modell&lt;br /&gt;
|-&lt;br /&gt;
|Dozent&lt;br /&gt;
|Akteur(actor)&lt;br /&gt;
|&lt;br /&gt;
|Use-Case-Modell&lt;br /&gt;
|-&lt;br /&gt;
|Eintragung Blocknote&lt;br /&gt;
|Use Case&lt;br /&gt;
|Das Verwaltungspersonal trägt die Blocknote eines Studierenden nach erfolgreicher Blockprüfung ins System ein.&lt;br /&gt;
|Use-Case-Modell&lt;br /&gt;
|-&lt;br /&gt;
|Gesamtbenotung&lt;br /&gt;
|Use Case&lt;br /&gt;
|Ein Dozent trägt die Gesammtnote eines Studierenden für eine Lehrveranstaltung ins System ein.&lt;br /&gt;
|Use-Case-Modell&lt;br /&gt;
|-&lt;br /&gt;
|LV-Anmeldung&lt;br /&gt;
|Use Case&lt;br /&gt;
|Ein Studierender meldet sich per Webformular für eine Lehrveranstaltung an.&lt;br /&gt;
|Use-Case-Modell&lt;br /&gt;
|-&lt;br /&gt;
|Studierender&lt;br /&gt;
|Akteur(actor)&lt;br /&gt;
|&lt;br /&gt;
|Use-Case-Modell&lt;br /&gt;
|-&lt;br /&gt;
|Teilbenotung&lt;br /&gt;
|Use Case&lt;br /&gt;
|Ein Dozent trägt eine Teilnote eines Studierenden für eine Lehrveranstaltung ins System ein.&lt;br /&gt;
|Use-Case-Modell&lt;br /&gt;
|-&lt;br /&gt;
|Termineintragung&lt;br /&gt;
|Use Case&lt;br /&gt;
|Das Verwaltungspersonal trägt einen (freien) Termin beim Professor für eine Blockprüfung ins System ein. &lt;br /&gt;
|Use-Case-Modell&lt;br /&gt;
|-&lt;br /&gt;
|Verwaltungspersonal&lt;br /&gt;
|Akteur(actor)&lt;br /&gt;
|&lt;br /&gt;
|Use-Case-Modell&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|anmelden_erfolgreich&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Studierender hat sich erfolgreich für eine Lehrveranstaltung angemeldet. &lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|bestätigungsmail_geschickt&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Ein Studierender wird per E-Mail über erfogreiche Blockprüfungsanmeldung informiert.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|blocknote_eintragen_erfolgreich&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Die Blocknote eines Studierenden für eine Blockprüfung wurde erfolgreich eingetragen.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|blockprüfung_anmelden(mat-nr,termin)&lt;br /&gt;
|Systemoperation&lt;br /&gt;
|Das Verwaltungspersonal meldet einen Studierenden zu einer Blockprüfung an.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|blockprüfungsanmeldung_erfolgreich&lt;br /&gt;
|Systemoperation&lt;br /&gt;
|Studierender wurde erfolgreich für eine Blockprüfung angemeldet. &lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|daten_für_erste_anmeldung&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Studierender wird bei erstmaliger LV-Anmeldung aufgefordert, seine persönlichen Daten einzugeben.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|Dozent&lt;br /&gt;
|ClassifierRole&lt;br /&gt;
|&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|für_lv_anmelden(mat-nr, lv, anrechnungsart)&lt;br /&gt;
|Systemoperation&lt;br /&gt;
|Ein Studierender meldet sich (mittels des Webformulars) für eine Lehrveranstalutung an.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|gesamtnote_eintragen(mat-nr., note)&lt;br /&gt;
|Systemoperation&lt;br /&gt;
|Ein Dozent trägt die Gesamtnote eines Studierenden für eine LV ins System ein.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|gesamtnote_eintragen_erfolgreich&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Die Gesamtnote eines Studierenden für eine LV wirde erfolgreich eingetragen.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|keine_plätze_frei&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Ein Studierender konnte sich nicht erfogreich für eine LV anmeden, da alle Plätze bereits belegt waren.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|nicht_genügend_lvs_vorhanden&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Ein Studierender konnte nicht für ein Blockprüfung angemeldet werden, da er/sie weniger als 2 LVs mit Anrechnungsart &amp;quot;Block&amp;quot; besucht hat &lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|prüfungstermin_eingeben(datum, uhrzeit)&lt;br /&gt;
|Systemoperation&lt;br /&gt;
|Verwaltungspersonal trägt freien Blockprüfungstermin ins System ein.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|schon_angemeldet&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Ein Studierender konnte sich nicht erfogreich für eine LV anmeden, da er bereits angemeldet war ...&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|Studierender&lt;br /&gt;
|ClassifierRole&lt;br /&gt;
|&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|student_nicht_an_blockprüfung_angemeldet&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Eine Blocknote eines Studierenden konnte nocht eingetragen werden, da dieser für keine Blockprüfung angemeldet war.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|student_nicht_angemeldet&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Eine Note (allgmein!) eines Studierenden konnte nicht ins System eingegeben werden, da der Studierende nicht für die entsprechende LV angemeldet war.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|System&lt;br /&gt;
|ClassifierRole&lt;br /&gt;
|Die Gesamtheit der Software &amp;quot;StudiSoft&amp;quot;&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|teilleistungen_fehlen&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Die gesamtnote eines Studierenden konnte nicht eingetragen werden, da nicht beide Teilnoten im System vermerkt sind. &lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|teilnote_eintragen(mat-nr., note)&lt;br /&gt;
|Systemoperation&lt;br /&gt;
|Ein Dozent trägt eine Teilleistung eines Studierenden für eine LV ins System ein.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|teilnote_eintragen_erfolgreich&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Ein Dozent hat erfogreich eine Teilnote eines Studierenden ins System eingetragen.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|termin_bereits_vorhanden&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Freier Blockprüfungstermin konnte nicht eingetragen werden, da bereits vorhanden.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|termin_eingetragen&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Ein freier Blockprüfungstermin wurde vom Verwaltungspersonal vermerkt.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|termin_nicht_möglich&lt;br /&gt;
|Systemereignis&lt;br /&gt;
|Ein Studierender konnte nicht für ein Blockprüfung angemeldet werden, da der angegebene Termin nicht möglich war.&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|Verwaltungspersonal&lt;br /&gt;
|ClassifierRole&lt;br /&gt;
|&lt;br /&gt;
|TimeLine&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Arbeitet_an&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Dozenten und Verwaltungspersonal interagieren jeweils an einem Dozenten_Terminal oder mit dem Verwaltungspersonal_Terminal mit dem System.&lt;br /&gt;
|Systemklassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|besucht&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Ein Studierender besucht die Website und interagiert so mit dem System.&lt;br /&gt;
|Systemklassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Dozent_Daten&lt;br /&gt;
|Klasse&lt;br /&gt;
|Die systeminterne Repräsentation eines Dozenten.&lt;br /&gt;
|Systemklassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Dozent_Terminal&lt;br /&gt;
|Klasse&lt;br /&gt;
|Ein Dozent arbeitet an einem Terminal und interagiert so mit dem System.&lt;br /&gt;
|Systemklassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Professor_Daten&lt;br /&gt;
|Klasse&lt;br /&gt;
|Die systeminterne Repräsentation eines Professors.&lt;br /&gt;
|Systemklassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Repräsentiert&lt;br /&gt;
|Assoziation&lt;br /&gt;
|Verknüpft außerhalb des Systems stehende Personen (Dozent, Professor, Studierender) mit ihren systeminternen Repräsentationen.&lt;br /&gt;
|Systemklassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Studierender_Daten&lt;br /&gt;
|Klasse&lt;br /&gt;
|Die systeminterne Repräsentation eines Studierenden.&lt;br /&gt;
|Systemklassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|Verwaltungspersonal_Terminal&lt;br /&gt;
|Klasse&lt;br /&gt;
|das Verwaltungspersonal arbeitet an einem Terminal und interagiert so mit dem System.&lt;br /&gt;
|Systemklassenmodell&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= LifeCycle =&lt;br /&gt;
&#039;&#039;&#039;Lifecycle&#039;&#039;&#039; StudiSoft =&lt;br /&gt;
:::Anmeldung* || Benotung* || Termineintragung*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anmeldung =	&lt;br /&gt;
:::LV-Anmeldung+ || Blockprüfungsanmeldung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
LV-Anmeldung =	&lt;br /&gt;
:::für_lv_anmelden ; (([Dateneingabe] ; #anmelden_erfolgreich) | #schon_angemeldet | #keine_plätze_frei )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dateneingabe =	&lt;br /&gt;
::: &amp;lt;nowiki&amp;gt;#daten_für_erste_anmeldung ; daten_eingeben&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Blockprüfungsanmeldung =&lt;br /&gt;
:::blockprüfung_anmelden ; ((#blockprüfungsanmeldung_erfolgreich ; #bestätigungsmail_geschickt) | #nicht_genügend_lvs_vorhanden | #termin_nicht_möglich)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benotung =&lt;br /&gt;
:::Teilbenotung | Gesamtbenotung | Eintragung_Blocknote&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Teilbenotung =	&lt;br /&gt;
:::teilnote_eintragen ; (#teilnote_eintragen_erfolgreich | #student_nicht_angemeldet)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gesamtbenotung =&lt;br /&gt;
:::gesamtnote_eintragen ; (#gesamtnote_eintragen_erfolgreich | #student_nicht_angemeldet | #teilleistungen_fehlen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eintragung_Blocknote =&lt;br /&gt;
:::blocknote_eintragen ; (#blocknote_eintragen_erfolgreich | #student_nicht_an_blockprüfung_angemeldet)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Termineintragung =&lt;br /&gt;
:::prüfungstermin_eingeben ; (#termin_eingetragen | #termin_bereits_vorhanden)&lt;br /&gt;
&lt;br /&gt;
= Operationsmodell=&lt;br /&gt;
Operation = Name der Operation&lt;br /&gt;
&lt;br /&gt;
Description = informelle Beschreibung&lt;br /&gt;
&lt;br /&gt;
Input = Eingabeparameter&lt;br /&gt;
&lt;br /&gt;
Reads = (nur) gelesene Objekte / Attribute&lt;br /&gt;
&lt;br /&gt;
Changes = (möglicherweise) geänderte&lt;br /&gt;
&lt;br /&gt;
Objekte / Attribute&lt;br /&gt;
&lt;br /&gt;
Sends = erzeugte Ausgabeereignisse&lt;br /&gt;
&lt;br /&gt;
Pre = Annahmen an den Vorzustand&lt;br /&gt;
&lt;br /&gt;
Post = Beziehung zwischen Vor- und Nachzustand&lt;br /&gt;
&lt;br /&gt;
== Blocknote einfügen (Björn)==&lt;br /&gt;
&lt;br /&gt;
== Prüfungstermin eingeben (Till)==&lt;br /&gt;
&lt;br /&gt;
== Teilnote eintrage (Jochen)==&lt;br /&gt;
&lt;br /&gt;
== für lv anmelden (Fabian)==&lt;br /&gt;
&lt;br /&gt;
== daten_eingeben (Marcel)==&lt;br /&gt;
Operation = daten_eingeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Description = Wenn der Studierende sich zum ersten Mal die LV in dem Fachgebiet anmeldet, wird er zusätzlich aufgefordert Name, Studiengang und Email anzugeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Input = name : String, studiengang : String, email : String&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reads = (nur) gelesene Objekte / Attribute&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Changes = (möglicherweise) geänderte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Objekte / Attribute&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sends = erzeugte Ausgabeereignisse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pre = Annahmen an den Vorzustand&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Post = Beziehung zwischen Vor- und Nachzustand&lt;br /&gt;
&lt;br /&gt;
== gesamtnote eintragen (Sven)==&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Diskussion:IBM_Eclipse&amp;diff=4795</id>
		<title>Diskussion:IBM Eclipse</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Diskussion:IBM_Eclipse&amp;diff=4795"/>
		<updated>2006-05-08T11:11:07Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;TODO:&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Screenshots&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Es geht um eine GUI. Eine rein verbale Beschreibung ist zu abstrakt und abschreckend; könnten die Eclipse-Fans vielleicht ein paar Screenshots hinzufügen, die die relevanten Sachen zeigen?&lt;br /&gt;
* &#039;&#039;&#039;Details&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Ein paar Sachen könnten besser erklärt werden.&lt;br /&gt;
* &#039;&#039;&#039;Struktur&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Ganze Sätze mit mehr Zusammenhang wären schön.&lt;br /&gt;
* &#039;&#039;&#039;Verweise&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Zumindest die obskureren Fachbegriffe sollten mit URLs von Definitionen etc. versehen werden. (Z. B. VM oder JPDA.)&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Estar|estar]] 22:28, 18. Apr 2005 (CEST)&lt;br /&gt;
* &#039;&#039;&#039;Im CS-Netz&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Wie man Eclipse im CS-Netz startet.&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
	<entry>
		<id>https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7206</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="https://wiki.stageing.freitagsrunde.org/index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7206"/>
		<updated>2006-04-05T11:11:30Z</updated>

		<summary type="html">&lt;p&gt;130.149.17.39: /* Selber Deklarationen und Definitionen durchführen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
* Das gleiche Thema im Buch [http://www.galileocomputing.de/openbook/javainsel5/javainsel02_002.htm#Rxx747java02002040000A91F032100 Java ist auch eine Insel]&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;8 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;
== 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 hierfür den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus.&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 und Namen ==&lt;br /&gt;
Wieso haben wir die Code-Beispiele nach den geschweiften Klammern eingerückt und die Variablen so benannt, wie wir es taten 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;
Überlege dir, was das folgende Code-Fragment macht.&lt;br /&gt;
Führe es aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&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;
 &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, die uns eine double-Zahl kleiner&lt;br /&gt;
         * als 1.0, aber groesser oder gleich 0 liefert.&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;
== if-else-Konstrukt ==&lt;br /&gt;
Überlege dir, was das folgende Code-Fragment macht.&lt;br /&gt;
Führe es aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&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;
 &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;
== Mehrere if-Bedingungen ==&lt;br /&gt;
Überlege dir, was das folgende Code-Fragment macht.&lt;br /&gt;
Führe es aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&lt;br /&gt;
&lt;br /&gt;
Was macht das Programm für verschiedene Werte von &#039;&#039;wert&#039;&#039;?. &lt;br /&gt;
&lt;br /&gt;
Welche If-Abfragen sind unnötig, weil man die Ausgaben in else-Zweige von bereits vorhandenen schreiben könnte?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class If_Uebung3 {    &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;
= while =&lt;br /&gt;
== Einfache Schleife ==&lt;br /&gt;
Schreibe eine Schleife die unendlich oft &amp;quot;Hallo Welt!&amp;quot; ausgibt.&lt;br /&gt;
&lt;br /&gt;
== Begrenzte Schleifen ==&lt;br /&gt;
* Schreibe eine for-Schleife, die 10 mal &amp;quot;Hallo Welt!!&amp;quot; ausgibt.&lt;br /&gt;
* Verändere diese Schleife, so dass sie abwechselnd &amp;quot;Hallo Welt!&amp;quot; und &amp;quot;Ich bin im Javakurs!&amp;quot; ausgibt&lt;br /&gt;
** Es gibt zwei Möglichkeiten das zu realisieren - finde die andere.&lt;br /&gt;
&lt;br /&gt;
== einfache while-Schleife ==&lt;br /&gt;
Überlege dir, was das folgende Code-Fragment macht. Welche Zahlen werden ausgegeben?&lt;br /&gt;
Führe es aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;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;
= for =&lt;br /&gt;
== for-Schleifen zum Zählen ==&lt;br /&gt;
Überlege dir, was das folgende Code-Fragment macht. Welche Zahlen werden ausgegeben?&lt;br /&gt;
Führe es aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
public class For_Uebung1 {&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;
= Methoden =&lt;br /&gt;
== Argumente ==&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;
		ausgabe(1, &amp;quot;Martin&amp;quot;);&lt;br /&gt;
		ausgabe(&amp;quot;Arthur&amp;quot;, 2);&lt;br /&gt;
		ausgabe(3, &amp;quot;Florian&amp;quot;);&lt;br /&gt;
		ausgabe(&amp;quot;Robert&amp;quot;, 4);&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;
* Überlege was dieses Beispiel ausgibt.&lt;br /&gt;
* Probiere es aus und erkläre den Unterschied. (Wenn Fehler auftreten, erkläre wieso)&lt;br /&gt;
* Erkläre das einem Tutor&lt;br /&gt;
&lt;br /&gt;
== Was tut das? ==&lt;br /&gt;
Überlege dir, was das folgenden Code-Fragmente machen. Welche Zahlen werden ausgegeben?&lt;br /&gt;
Führe sie aus und vergleiche mit deinen Erwartungen. &lt;br /&gt;
&lt;br /&gt;
(Kopiere den Beispiel-Code in eine Datei, kompiliere sie und führe sie aus)&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;
&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;
&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;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Selbst einige Methoden schreiben! ==&lt;br /&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;
** 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;
** 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;
= 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;br /&gt;
&lt;br /&gt;
= Klassen =&lt;br /&gt;
(todo)&lt;/div&gt;</summary>
		<author><name>130.149.17.39</name></author>
	</entry>
</feed>