<?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=192.168.23.119</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=192.168.23.119"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/192.168.23.119"/>
	<updated>2026-11-03T00:10:46Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7204</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7204"/>
		<updated>2006-04-05T10:01:14Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Selbst einige Methoden schreiben! */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
&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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7203</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7203"/>
		<updated>2006-04-05T09:59:27Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Selbst einige Methoden schreiben! */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7202</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7202"/>
		<updated>2006-04-05T09:52:28Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Selbst einige Methoden schreiben! */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7201</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7201"/>
		<updated>2006-04-05T09:50:20Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Selbst einige Methoden schreiben! */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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 inerhalb 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 bieden ü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;, die 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;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7199</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7199"/>
		<updated>2006-04-05T09:39:29Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Selbst einige Methoden schreiben! */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
&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 inerhalb 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 bieden ü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;, die 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;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7197</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7197"/>
		<updated>2006-04-05T09:35:29Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Selbst einige Methoden schreiben! */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
== 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 inerhalb 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 bieden ü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;, die 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;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7195</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7195"/>
		<updated>2006-04-05T09:31:44Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Selbst einige Methoden schreiben! */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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 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;
== 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 inerhalb 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 bieden ü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;, die 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;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7194</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7194"/>
		<updated>2006-04-05T09:26:02Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Selbst einige Methoden schreiben! */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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 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;
== 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 inerhalb 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 bieden ü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;
# test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7193</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7193"/>
		<updated>2006-04-05T09:22:46Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: &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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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 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;
== 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 inerhalb 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 bieden ü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;
&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7190</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7190"/>
		<updated>2006-04-05T09:14:14Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Selbst einige Methoden schreiben! */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&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 inerhalb 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 Ihalt der Variable auf dem Bildschirm aus&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7189</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7189"/>
		<updated>2006-04-05T09:09:38Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Tue selbst etwas! */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&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;&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7188</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7188"/>
		<updated>2006-04-05T08:36:26Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Was tut das? */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&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;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7187</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7187"/>
		<updated>2006-04-05T08:36:13Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* einfache while-Schleife */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&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;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7186</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7186"/>
		<updated>2006-04-05T08:35:57Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* for-Schleifen zum Zählen */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&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;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7185</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7185"/>
		<updated>2006-04-05T08:35:31Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Mehrere if-Bedingungen */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&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;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7184</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7184"/>
		<updated>2006-04-05T08:35:13Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* if-else-Konstrukt */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&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;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7183</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7183"/>
		<updated>2006-04-05T08:34:55Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Einfache if-Bedingung */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&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;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7182</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7182"/>
		<updated>2006-04-05T08:34:27Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Zuweisung an Variablen */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&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;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7181</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7181"/>
		<updated>2006-04-05T08:24:17Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Was tut das? */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&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;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben, einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste, um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbietet. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7178</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7178"/>
		<updated>2006-04-05T08:16:27Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Was tut das? */&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;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&lt;br /&gt;
== Was tut das? ==&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;
//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;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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 abzuspeichern 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 getter und setter 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 private und public ploetzlich?!&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das relativ einfach. Die Daten haben wir private 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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7174</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7174"/>
		<updated>2006-04-05T08:14:40Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Was tut das? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
== Variablendeklaration und Initialisierung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int aWholeNumber;&lt;br /&gt;
		double notAWholeNumber;&lt;br /&gt;
		String aString;&lt;br /&gt;
&lt;br /&gt;
		aWholeNumber = 0;&lt;br /&gt;
		notAWholeNumber = 0.0;&lt;br /&gt;
		aString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(aWholeNumber);&lt;br /&gt;
		System.out.println(notAWholeNumber);&lt;br /&gt;
		System.out.println(aString);&lt;br /&gt;
&lt;br /&gt;
		int anotherWholeNumber = 0;&lt;br /&gt;
		double anotherNotSoWholeNumber = 0;&lt;br /&gt;
		String anotherString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(anotherWholeNumber);&lt;br /&gt;
		System.out.println(anotherNotSoWholeNumber);&lt;br /&gt;
		System.out.println(anotherString);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; definiert?&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; initialisiert?&lt;br /&gt;
Beantworte diese Fragen auch für die Variablen: &#039;&#039;notAWholeNumber&#039;&#039;, &#039;&#039;aString&#039;&#039;, &#039;&#039;anotherWholeNumber&#039;&#039;, &#039;&#039;anotherNotSoWholeNumber&#039;&#039;, &#039;&#039;anotherString&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erkläre deine Meinung einem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		// deklariere eine Variable &amp;quot;birnen&amp;quot;  vom Typ int&lt;br /&gt;
		&lt;br /&gt;
		// weise ihr den Wert drei zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// addiere fünf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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;
= 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;
= while =&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;
= Methoden =&lt;br /&gt;
== Was tut das? ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
//file: Methoden1.java&lt;br /&gt;
class Methoden1 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( gibMirNeZahl() );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static double gibMirNeZahl() {&lt;br /&gt;
        return 15.3;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
//file: Methoden2.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden3.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
        System.out.println( mathematik(1, 5) );&lt;br /&gt;
        System.out.println( mathematik(3, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden4.java&lt;br /&gt;
class Methoden4 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        int eineZahl = 2;&lt;br /&gt;
        System.out.println( mathematik(4, eineZahl) );&lt;br /&gt;
        eineZahl = 5;&lt;br /&gt;
        System.out.println( mathematik(2, eineZahl) );&lt;br /&gt;
        System.out.println( mathematik(eineZahl, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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 abzuspeichern 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 getter und setter 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 private und public ploetzlich?!&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das relativ einfach. Die Daten haben wir private 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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7169</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7169"/>
		<updated>2006-04-05T08:10:11Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* einfache while-Schleife */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
== Variablendeklaration und Initialisierung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int aWholeNumber;&lt;br /&gt;
		double notAWholeNumber;&lt;br /&gt;
		String aString;&lt;br /&gt;
&lt;br /&gt;
		aWholeNumber = 0;&lt;br /&gt;
		notAWholeNumber = 0.0;&lt;br /&gt;
		aString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(aWholeNumber);&lt;br /&gt;
		System.out.println(notAWholeNumber);&lt;br /&gt;
		System.out.println(aString);&lt;br /&gt;
&lt;br /&gt;
		int anotherWholeNumber = 0;&lt;br /&gt;
		double anotherNotSoWholeNumber = 0;&lt;br /&gt;
		String anotherString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(anotherWholeNumber);&lt;br /&gt;
		System.out.println(anotherNotSoWholeNumber);&lt;br /&gt;
		System.out.println(anotherString);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; definiert?&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; initialisiert?&lt;br /&gt;
Beantworte diese Fragen auch für die Variablen: &#039;&#039;notAWholeNumber&#039;&#039;, &#039;&#039;aString&#039;&#039;, &#039;&#039;anotherWholeNumber&#039;&#039;, &#039;&#039;anotherNotSoWholeNumber&#039;&#039;, &#039;&#039;anotherString&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erkläre deine Meinung einem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		// deklariere eine Variable &amp;quot;birnen&amp;quot;  vom Typ int&lt;br /&gt;
		&lt;br /&gt;
		// weise ihr den Wert drei zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// addiere fünf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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, dass und eine double-Zahl, die kleiner&lt;br /&gt;
         * als 1.0 aber groesser oder gleich 0 ist.&lt;br /&gt;
         * Mit 6 multipliziert und um eins erhöht erhalten wir&lt;br /&gt;
         * Zahlen von 1.0 bis 6.99999...&lt;br /&gt;
         * Durch das Umwandeln in int werden die Nachkommastellen abgeschnitten&lt;br /&gt;
         * und wir erhalten ein int von 1 bis 6.&lt;br /&gt;
         */&lt;br /&gt;
        int wuerfelzahl = (int) (1 + (6 * Math.random()));&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Zur Kontrolle geben wir das Ergebnis aus &lt;br /&gt;
         */&lt;br /&gt;
        System.out.println(&amp;quot;Der Würfel hat &amp;quot; + wuerfelzahl + &amp;quot; ergeben.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Ist das Ergebnis groesser als 3 ?&lt;br /&gt;
         */&lt;br /&gt;
        if (wuerfelzahl &amp;gt; 3) {&lt;br /&gt;
            // Wenn ja gib diesen Text aus:&lt;br /&gt;
            System.out.println(&amp;quot;mehr als 3!&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 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;
= 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;
= while =&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;
= Methoden =&lt;br /&gt;
== Was tut das? ==&lt;br /&gt;
&lt;br /&gt;
//file: Methoden1.java&lt;br /&gt;
class Methoden1 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( gibMirNeZahl() );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static double gibMirNeZahl() {&lt;br /&gt;
        return 15.3;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden2.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden3.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
        System.out.println( mathematik(1, 5) );&lt;br /&gt;
        System.out.println( mathematik(3, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden4.java&lt;br /&gt;
class Methoden4 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        int eineZahl = 2;&lt;br /&gt;
        System.out.println( mathematik(4, eineZahl) );&lt;br /&gt;
        eineZahl = 5;&lt;br /&gt;
        System.out.println( mathematik(2, eineZahl) );&lt;br /&gt;
        System.out.println( mathematik(eineZahl, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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 abzuspeichern 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 getter und setter 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 private und public ploetzlich?!&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das relativ einfach. Die Daten haben wir private 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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7167</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7167"/>
		<updated>2006-04-05T08:09:05Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* einfache while-Schleife */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
== Variablendeklaration und Initialisierung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int aWholeNumber;&lt;br /&gt;
		double notAWholeNumber;&lt;br /&gt;
		String aString;&lt;br /&gt;
&lt;br /&gt;
		aWholeNumber = 0;&lt;br /&gt;
		notAWholeNumber = 0.0;&lt;br /&gt;
		aString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(aWholeNumber);&lt;br /&gt;
		System.out.println(notAWholeNumber);&lt;br /&gt;
		System.out.println(aString);&lt;br /&gt;
&lt;br /&gt;
		int anotherWholeNumber = 0;&lt;br /&gt;
		double anotherNotSoWholeNumber = 0;&lt;br /&gt;
		String anotherString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(anotherWholeNumber);&lt;br /&gt;
		System.out.println(anotherNotSoWholeNumber);&lt;br /&gt;
		System.out.println(anotherString);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; definiert?&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; initialisiert?&lt;br /&gt;
Beantworte diese Fragen auch für die Variablen: &#039;&#039;notAWholeNumber&#039;&#039;, &#039;&#039;aString&#039;&#039;, &#039;&#039;anotherWholeNumber&#039;&#039;, &#039;&#039;anotherNotSoWholeNumber&#039;&#039;, &#039;&#039;anotherString&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erkläre deine Meinung einem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		// deklariere eine Variable &amp;quot;birnen&amp;quot;  vom Typ int&lt;br /&gt;
		&lt;br /&gt;
		// weise ihr den Wert drei zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// addiere fünf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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 ==&lt;br /&gt;
Wieso haben wir das Beispiel  nach den geschweiften Klammern eingerückt und die Variablen so gestellt wie wir es gestellt haben und nicht so:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class _{static long _&lt;br /&gt;
(long __,long  ___) {&lt;br /&gt;
return __==0 ?___+ 1:&lt;br /&gt;
___==0?_(__-1,1):_(__&lt;br /&gt;
-1,_(__, ___-1)) ;  }&lt;br /&gt;
static  {int _=2 ,___&lt;br /&gt;
= 2;System.out.print(&lt;br /&gt;
&amp;quot;a(&amp;quot;+_+’,’+___+ &amp;quot;)=&amp;quot;+&lt;br /&gt;
_ (_,  ___) ) ;System&lt;br /&gt;
.exit(1);}}//(C) Ulli&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Etwas weniger Extrem, wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {public static void main&lt;br /&gt;
	(String [] ignored) {&lt;br /&gt;
	System.out.println(0); int zero = 0;&lt;br /&gt;
			System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
			System.out.&lt;br /&gt;
		println(whatsThis);&lt;br /&gt;
	whatsThis = one;		System.out.println(whatsThis)&lt;br /&gt;
;}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class b {&lt;br /&gt;
	public static void main(String [] i) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int a = 0;&lt;br /&gt;
		System.out.println(a);&lt;br /&gt;
		int b = 1;&lt;br /&gt;
		int c = a;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
		c = b;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Variablen mit verschiedenen Typen zuweisen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= if =&lt;br /&gt;
== Einfache if-Bedingung ==&lt;br /&gt;
Ü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, dass und eine double-Zahl, die kleiner&lt;br /&gt;
         * als 1.0 aber groesser oder gleich 0 ist.&lt;br /&gt;
         * Mit 6 multipliziert und um eins erhöht erhalten wir&lt;br /&gt;
         * Zahlen von 1.0 bis 6.99999...&lt;br /&gt;
         * Durch das Umwandeln in int werden die Nachkommastellen abgeschnitten&lt;br /&gt;
         * und wir erhalten ein int von 1 bis 6.&lt;br /&gt;
         */&lt;br /&gt;
        int wuerfelzahl = (int) (1 + (6 * Math.random()));&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Zur Kontrolle geben wir das Ergebnis aus &lt;br /&gt;
         */&lt;br /&gt;
        System.out.println(&amp;quot;Der Würfel hat &amp;quot; + wuerfelzahl + &amp;quot; ergeben.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Ist das Ergebnis groesser als 3 ?&lt;br /&gt;
         */&lt;br /&gt;
        if (wuerfelzahl &amp;gt; 3) {&lt;br /&gt;
            // Wenn ja gib diesen Text aus:&lt;br /&gt;
            System.out.println(&amp;quot;mehr als 3!&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 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;
= 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;
= while =&lt;br /&gt;
== einfache while-Schleife ==&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;
= Methoden =&lt;br /&gt;
== Was tut das? ==&lt;br /&gt;
&lt;br /&gt;
//file: Methoden1.java&lt;br /&gt;
class Methoden1 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( gibMirNeZahl() );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static double gibMirNeZahl() {&lt;br /&gt;
        return 15.3;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden2.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden3.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
        System.out.println( mathematik(1, 5) );&lt;br /&gt;
        System.out.println( mathematik(3, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden4.java&lt;br /&gt;
class Methoden4 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        int eineZahl = 2;&lt;br /&gt;
        System.out.println( mathematik(4, eineZahl) );&lt;br /&gt;
        eineZahl = 5;&lt;br /&gt;
        System.out.println( mathematik(2, eineZahl) );&lt;br /&gt;
        System.out.println( mathematik(eineZahl, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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 abzuspeichern 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 getter und setter 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 private und public ploetzlich?!&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das relativ einfach. Die Daten haben wir private 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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7165</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7165"/>
		<updated>2006-04-05T08:06:07Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Mehrere if-Bedingungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
== Variablendeklaration und Initialisierung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int aWholeNumber;&lt;br /&gt;
		double notAWholeNumber;&lt;br /&gt;
		String aString;&lt;br /&gt;
&lt;br /&gt;
		aWholeNumber = 0;&lt;br /&gt;
		notAWholeNumber = 0.0;&lt;br /&gt;
		aString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(aWholeNumber);&lt;br /&gt;
		System.out.println(notAWholeNumber);&lt;br /&gt;
		System.out.println(aString);&lt;br /&gt;
&lt;br /&gt;
		int anotherWholeNumber = 0;&lt;br /&gt;
		double anotherNotSoWholeNumber = 0;&lt;br /&gt;
		String anotherString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(anotherWholeNumber);&lt;br /&gt;
		System.out.println(anotherNotSoWholeNumber);&lt;br /&gt;
		System.out.println(anotherString);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; definiert?&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; initialisiert?&lt;br /&gt;
Beantworte diese Fragen auch für die Variablen: &#039;&#039;notAWholeNumber&#039;&#039;, &#039;&#039;aString&#039;&#039;, &#039;&#039;anotherWholeNumber&#039;&#039;, &#039;&#039;anotherNotSoWholeNumber&#039;&#039;, &#039;&#039;anotherString&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erkläre deine Meinung einem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		// deklariere eine Variable &amp;quot;birnen&amp;quot;  vom Typ int&lt;br /&gt;
		&lt;br /&gt;
		// weise ihr den Wert drei zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// addiere fünf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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 ==&lt;br /&gt;
Wieso haben wir das Beispiel  nach den geschweiften Klammern eingerückt und die Variablen so gestellt wie wir es gestellt haben und nicht so:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class _{static long _&lt;br /&gt;
(long __,long  ___) {&lt;br /&gt;
return __==0 ?___+ 1:&lt;br /&gt;
___==0?_(__-1,1):_(__&lt;br /&gt;
-1,_(__, ___-1)) ;  }&lt;br /&gt;
static  {int _=2 ,___&lt;br /&gt;
= 2;System.out.print(&lt;br /&gt;
&amp;quot;a(&amp;quot;+_+’,’+___+ &amp;quot;)=&amp;quot;+&lt;br /&gt;
_ (_,  ___) ) ;System&lt;br /&gt;
.exit(1);}}//(C) Ulli&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Etwas weniger Extrem, wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {public static void main&lt;br /&gt;
	(String [] ignored) {&lt;br /&gt;
	System.out.println(0); int zero = 0;&lt;br /&gt;
			System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
			System.out.&lt;br /&gt;
		println(whatsThis);&lt;br /&gt;
	whatsThis = one;		System.out.println(whatsThis)&lt;br /&gt;
;}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class b {&lt;br /&gt;
	public static void main(String [] i) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int a = 0;&lt;br /&gt;
		System.out.println(a);&lt;br /&gt;
		int b = 1;&lt;br /&gt;
		int c = a;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
		c = b;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Variablen mit verschiedenen Typen zuweisen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= if =&lt;br /&gt;
== Einfache if-Bedingung ==&lt;br /&gt;
Ü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, dass und eine double-Zahl, die kleiner&lt;br /&gt;
         * als 1.0 aber groesser oder gleich 0 ist.&lt;br /&gt;
         * Mit 6 multipliziert und um eins erhöht erhalten wir&lt;br /&gt;
         * Zahlen von 1.0 bis 6.99999...&lt;br /&gt;
         * Durch das Umwandeln in int werden die Nachkommastellen abgeschnitten&lt;br /&gt;
         * und wir erhalten ein int von 1 bis 6.&lt;br /&gt;
         */&lt;br /&gt;
        int wuerfelzahl = (int) (1 + (6 * Math.random()));&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Zur Kontrolle geben wir das Ergebnis aus &lt;br /&gt;
         */&lt;br /&gt;
        System.out.println(&amp;quot;Der Würfel hat &amp;quot; + wuerfelzahl + &amp;quot; ergeben.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Ist das Ergebnis groesser als 3 ?&lt;br /&gt;
         */&lt;br /&gt;
        if (wuerfelzahl &amp;gt; 3) {&lt;br /&gt;
            // Wenn ja gib diesen Text aus:&lt;br /&gt;
            System.out.println(&amp;quot;mehr als 3!&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 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;
= 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;
= while =&lt;br /&gt;
== einfache while-Schleife ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public class While_Uebung1 {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        int x=10;&lt;br /&gt;
        while (x&amp;gt;0){&lt;br /&gt;
            System.out.println(&amp;quot; x=&amp;quot; + x);  // Anhaengen von x an den String&lt;br /&gt;
            x=x-1;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Methoden =&lt;br /&gt;
== Was tut das? ==&lt;br /&gt;
&lt;br /&gt;
//file: Methoden1.java&lt;br /&gt;
class Methoden1 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( gibMirNeZahl() );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static double gibMirNeZahl() {&lt;br /&gt;
        return 15.3;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden2.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden3.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
        System.out.println( mathematik(1, 5) );&lt;br /&gt;
        System.out.println( mathematik(3, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden4.java&lt;br /&gt;
class Methoden4 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        int eineZahl = 2;&lt;br /&gt;
        System.out.println( mathematik(4, eineZahl) );&lt;br /&gt;
        eineZahl = 5;&lt;br /&gt;
        System.out.println( mathematik(2, eineZahl) );&lt;br /&gt;
        System.out.println( mathematik(eineZahl, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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 abzuspeichern 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 getter und setter 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 private und public ploetzlich?!&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das relativ einfach. Die Daten haben wir private 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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7164</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7164"/>
		<updated>2006-04-05T08:05:42Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* Einfache if-Bedingung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
== Variablendeklaration und Initialisierung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int aWholeNumber;&lt;br /&gt;
		double notAWholeNumber;&lt;br /&gt;
		String aString;&lt;br /&gt;
&lt;br /&gt;
		aWholeNumber = 0;&lt;br /&gt;
		notAWholeNumber = 0.0;&lt;br /&gt;
		aString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(aWholeNumber);&lt;br /&gt;
		System.out.println(notAWholeNumber);&lt;br /&gt;
		System.out.println(aString);&lt;br /&gt;
&lt;br /&gt;
		int anotherWholeNumber = 0;&lt;br /&gt;
		double anotherNotSoWholeNumber = 0;&lt;br /&gt;
		String anotherString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(anotherWholeNumber);&lt;br /&gt;
		System.out.println(anotherNotSoWholeNumber);&lt;br /&gt;
		System.out.println(anotherString);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; definiert?&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; initialisiert?&lt;br /&gt;
Beantworte diese Fragen auch für die Variablen: &#039;&#039;notAWholeNumber&#039;&#039;, &#039;&#039;aString&#039;&#039;, &#039;&#039;anotherWholeNumber&#039;&#039;, &#039;&#039;anotherNotSoWholeNumber&#039;&#039;, &#039;&#039;anotherString&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erkläre deine Meinung einem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		// deklariere eine Variable &amp;quot;birnen&amp;quot;  vom Typ int&lt;br /&gt;
		&lt;br /&gt;
		// weise ihr den Wert drei zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// addiere fünf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir, was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate: Kopiere 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 ==&lt;br /&gt;
Wieso haben wir das Beispiel  nach den geschweiften Klammern eingerückt und die Variablen so gestellt wie wir es gestellt haben und nicht so:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class _{static long _&lt;br /&gt;
(long __,long  ___) {&lt;br /&gt;
return __==0 ?___+ 1:&lt;br /&gt;
___==0?_(__-1,1):_(__&lt;br /&gt;
-1,_(__, ___-1)) ;  }&lt;br /&gt;
static  {int _=2 ,___&lt;br /&gt;
= 2;System.out.print(&lt;br /&gt;
&amp;quot;a(&amp;quot;+_+’,’+___+ &amp;quot;)=&amp;quot;+&lt;br /&gt;
_ (_,  ___) ) ;System&lt;br /&gt;
.exit(1);}}//(C) Ulli&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Etwas weniger Extrem, wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {public static void main&lt;br /&gt;
	(String [] ignored) {&lt;br /&gt;
	System.out.println(0); int zero = 0;&lt;br /&gt;
			System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
			System.out.&lt;br /&gt;
		println(whatsThis);&lt;br /&gt;
	whatsThis = one;		System.out.println(whatsThis)&lt;br /&gt;
;}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class b {&lt;br /&gt;
	public static void main(String [] i) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int a = 0;&lt;br /&gt;
		System.out.println(a);&lt;br /&gt;
		int b = 1;&lt;br /&gt;
		int c = a;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
		c = b;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Variablen mit verschiedenen Typen zuweisen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= if =&lt;br /&gt;
== Einfache if-Bedingung ==&lt;br /&gt;
Ü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, dass und eine double-Zahl, die kleiner&lt;br /&gt;
         * als 1.0 aber groesser oder gleich 0 ist.&lt;br /&gt;
         * Mit 6 multipliziert und um eins erhöht erhalten wir&lt;br /&gt;
         * Zahlen von 1.0 bis 6.99999...&lt;br /&gt;
         * Durch das Umwandeln in int werden die Nachkommastellen abgeschnitten&lt;br /&gt;
         * und wir erhalten ein int von 1 bis 6.&lt;br /&gt;
         */&lt;br /&gt;
        int wuerfelzahl = (int) (1 + (6 * Math.random()));&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Zur Kontrolle geben wir das Ergebnis aus &lt;br /&gt;
         */&lt;br /&gt;
        System.out.println(&amp;quot;Der Würfel hat &amp;quot; + wuerfelzahl + &amp;quot; ergeben.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Ist das Ergebnis groesser als 3 ?&lt;br /&gt;
         */&lt;br /&gt;
        if (wuerfelzahl &amp;gt; 3) {&lt;br /&gt;
            // Wenn ja gib diesen Text aus:&lt;br /&gt;
            System.out.println(&amp;quot;mehr als 3!&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 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üre 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;
= 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;
= while =&lt;br /&gt;
== einfache while-Schleife ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public class While_Uebung1 {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        int x=10;&lt;br /&gt;
        while (x&amp;gt;0){&lt;br /&gt;
            System.out.println(&amp;quot; x=&amp;quot; + x);  // Anhaengen von x an den String&lt;br /&gt;
            x=x-1;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Methoden =&lt;br /&gt;
== Was tut das? ==&lt;br /&gt;
&lt;br /&gt;
//file: Methoden1.java&lt;br /&gt;
class Methoden1 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( gibMirNeZahl() );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static double gibMirNeZahl() {&lt;br /&gt;
        return 15.3;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden2.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden3.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
        System.out.println( mathematik(1, 5) );&lt;br /&gt;
        System.out.println( mathematik(3, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden4.java&lt;br /&gt;
class Methoden4 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        int eineZahl = 2;&lt;br /&gt;
        System.out.println( mathematik(4, eineZahl) );&lt;br /&gt;
        eineZahl = 5;&lt;br /&gt;
        System.out.println( mathematik(2, eineZahl) );&lt;br /&gt;
        System.out.println( mathematik(eineZahl, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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 abzuspeichern 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 getter und setter 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 private und public ploetzlich?!&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das relativ einfach. Die Daten haben wir private 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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7162</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7162"/>
		<updated>2006-04-05T08:05:26Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* if-else-Konstrukt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
== Variablendeklaration und Initialisierung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int aWholeNumber;&lt;br /&gt;
		double notAWholeNumber;&lt;br /&gt;
		String aString;&lt;br /&gt;
&lt;br /&gt;
		aWholeNumber = 0;&lt;br /&gt;
		notAWholeNumber = 0.0;&lt;br /&gt;
		aString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(aWholeNumber);&lt;br /&gt;
		System.out.println(notAWholeNumber);&lt;br /&gt;
		System.out.println(aString);&lt;br /&gt;
&lt;br /&gt;
		int anotherWholeNumber = 0;&lt;br /&gt;
		double anotherNotSoWholeNumber = 0;&lt;br /&gt;
		String anotherString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(anotherWholeNumber);&lt;br /&gt;
		System.out.println(anotherNotSoWholeNumber);&lt;br /&gt;
		System.out.println(anotherString);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; definiert?&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; initialisiert?&lt;br /&gt;
Beantworte diese Fragen auch für die Variablen: &#039;&#039;notAWholeNumber&#039;&#039;, &#039;&#039;aString&#039;&#039;, &#039;&#039;anotherWholeNumber&#039;&#039;, &#039;&#039;anotherNotSoWholeNumber&#039;&#039;, &#039;&#039;anotherString&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erkläre deine Meinung einem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		// deklariere eine Variable &amp;quot;birnen&amp;quot;  vom Typ int&lt;br /&gt;
		&lt;br /&gt;
		// weise ihr den Wert drei zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// addiere fünf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate. (Kopiere den Beispiel-Code in eine Datei, Kompiliere sie und füre 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 ==&lt;br /&gt;
Wieso haben wir das Beispiel  nach den geschweiften Klammern eingerückt und die Variablen so gestellt wie wir es gestellt haben und nicht so:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class _{static long _&lt;br /&gt;
(long __,long  ___) {&lt;br /&gt;
return __==0 ?___+ 1:&lt;br /&gt;
___==0?_(__-1,1):_(__&lt;br /&gt;
-1,_(__, ___-1)) ;  }&lt;br /&gt;
static  {int _=2 ,___&lt;br /&gt;
= 2;System.out.print(&lt;br /&gt;
&amp;quot;a(&amp;quot;+_+’,’+___+ &amp;quot;)=&amp;quot;+&lt;br /&gt;
_ (_,  ___) ) ;System&lt;br /&gt;
.exit(1);}}//(C) Ulli&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Etwas weniger Extrem, wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {public static void main&lt;br /&gt;
	(String [] ignored) {&lt;br /&gt;
	System.out.println(0); int zero = 0;&lt;br /&gt;
			System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
			System.out.&lt;br /&gt;
		println(whatsThis);&lt;br /&gt;
	whatsThis = one;		System.out.println(whatsThis)&lt;br /&gt;
;}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class b {&lt;br /&gt;
	public static void main(String [] i) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int a = 0;&lt;br /&gt;
		System.out.println(a);&lt;br /&gt;
		int b = 1;&lt;br /&gt;
		int c = a;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
		c = b;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Variablen mit verschiedenen Typen zuweisen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= if =&lt;br /&gt;
== Einfache if-Bedingung ==&lt;br /&gt;
Ü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üre 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, dass und eine double-Zahl, die kleiner&lt;br /&gt;
         * als 1.0 aber groesser oder gleich 0 ist.&lt;br /&gt;
         * Mit 6 multipliziert und um eins erhöht erhalten wir&lt;br /&gt;
         * Zahlen von 1.0 bis 6.99999...&lt;br /&gt;
         * Durch das Umwandeln in int werden die Nachkommastellen abgeschnitten&lt;br /&gt;
         * und wir erhalten ein int von 1 bis 6.&lt;br /&gt;
         */&lt;br /&gt;
        int wuerfelzahl = (int) (1 + (6 * Math.random()));&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Zur Kontrolle geben wir das Ergebnis aus &lt;br /&gt;
         */&lt;br /&gt;
        System.out.println(&amp;quot;Der Würfel hat &amp;quot; + wuerfelzahl + &amp;quot; ergeben.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Ist das Ergebnis groesser als 3 ?&lt;br /&gt;
         */&lt;br /&gt;
        if (wuerfelzahl &amp;gt; 3) {&lt;br /&gt;
            // Wenn ja gib diesen Text aus:&lt;br /&gt;
            System.out.println(&amp;quot;mehr als 3!&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 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üre 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;
= 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;
= while =&lt;br /&gt;
== einfache while-Schleife ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public class While_Uebung1 {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        int x=10;&lt;br /&gt;
        while (x&amp;gt;0){&lt;br /&gt;
            System.out.println(&amp;quot; x=&amp;quot; + x);  // Anhaengen von x an den String&lt;br /&gt;
            x=x-1;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Methoden =&lt;br /&gt;
== Was tut das? ==&lt;br /&gt;
&lt;br /&gt;
//file: Methoden1.java&lt;br /&gt;
class Methoden1 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( gibMirNeZahl() );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static double gibMirNeZahl() {&lt;br /&gt;
        return 15.3;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden2.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden3.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
        System.out.println( mathematik(1, 5) );&lt;br /&gt;
        System.out.println( mathematik(3, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden4.java&lt;br /&gt;
class Methoden4 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        int eineZahl = 2;&lt;br /&gt;
        System.out.println( mathematik(4, eineZahl) );&lt;br /&gt;
        eineZahl = 5;&lt;br /&gt;
        System.out.println( mathematik(2, eineZahl) );&lt;br /&gt;
        System.out.println( mathematik(eineZahl, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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 abzuspeichern 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 getter und setter 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 private und public ploetzlich?!&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das relativ einfach. Die Daten haben wir private 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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7161</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7161"/>
		<updated>2006-04-05T08:04:56Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* for-Schleifen zum Zählen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
== Variablendeklaration und Initialisierung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int aWholeNumber;&lt;br /&gt;
		double notAWholeNumber;&lt;br /&gt;
		String aString;&lt;br /&gt;
&lt;br /&gt;
		aWholeNumber = 0;&lt;br /&gt;
		notAWholeNumber = 0.0;&lt;br /&gt;
		aString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(aWholeNumber);&lt;br /&gt;
		System.out.println(notAWholeNumber);&lt;br /&gt;
		System.out.println(aString);&lt;br /&gt;
&lt;br /&gt;
		int anotherWholeNumber = 0;&lt;br /&gt;
		double anotherNotSoWholeNumber = 0;&lt;br /&gt;
		String anotherString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(anotherWholeNumber);&lt;br /&gt;
		System.out.println(anotherNotSoWholeNumber);&lt;br /&gt;
		System.out.println(anotherString);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; definiert?&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; initialisiert?&lt;br /&gt;
Beantworte diese Fragen auch für die Variablen: &#039;&#039;notAWholeNumber&#039;&#039;, &#039;&#039;aString&#039;&#039;, &#039;&#039;anotherWholeNumber&#039;&#039;, &#039;&#039;anotherNotSoWholeNumber&#039;&#039;, &#039;&#039;anotherString&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erkläre deine Meinung einem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		// deklariere eine Variable &amp;quot;birnen&amp;quot;  vom Typ int&lt;br /&gt;
		&lt;br /&gt;
		// weise ihr den Wert drei zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// addiere fünf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate. (Kopiere den Beispiel-Code in eine Datei, Kompiliere sie und füre 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 ==&lt;br /&gt;
Wieso haben wir das Beispiel  nach den geschweiften Klammern eingerückt und die Variablen so gestellt wie wir es gestellt haben und nicht so:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class _{static long _&lt;br /&gt;
(long __,long  ___) {&lt;br /&gt;
return __==0 ?___+ 1:&lt;br /&gt;
___==0?_(__-1,1):_(__&lt;br /&gt;
-1,_(__, ___-1)) ;  }&lt;br /&gt;
static  {int _=2 ,___&lt;br /&gt;
= 2;System.out.print(&lt;br /&gt;
&amp;quot;a(&amp;quot;+_+’,’+___+ &amp;quot;)=&amp;quot;+&lt;br /&gt;
_ (_,  ___) ) ;System&lt;br /&gt;
.exit(1);}}//(C) Ulli&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Etwas weniger Extrem, wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {public static void main&lt;br /&gt;
	(String [] ignored) {&lt;br /&gt;
	System.out.println(0); int zero = 0;&lt;br /&gt;
			System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
			System.out.&lt;br /&gt;
		println(whatsThis);&lt;br /&gt;
	whatsThis = one;		System.out.println(whatsThis)&lt;br /&gt;
;}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class b {&lt;br /&gt;
	public static void main(String [] i) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int a = 0;&lt;br /&gt;
		System.out.println(a);&lt;br /&gt;
		int b = 1;&lt;br /&gt;
		int c = a;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
		c = b;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Variablen mit verschiedenen Typen zuweisen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= if =&lt;br /&gt;
== Einfache if-Bedingung ==&lt;br /&gt;
Ü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üre 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, dass und eine double-Zahl, die kleiner&lt;br /&gt;
         * als 1.0 aber groesser oder gleich 0 ist.&lt;br /&gt;
         * Mit 6 multipliziert und um eins erhöht erhalten wir&lt;br /&gt;
         * Zahlen von 1.0 bis 6.99999...&lt;br /&gt;
         * Durch das Umwandeln in int werden die Nachkommastellen abgeschnitten&lt;br /&gt;
         * und wir erhalten ein int von 1 bis 6.&lt;br /&gt;
         */&lt;br /&gt;
        int wuerfelzahl = (int) (1 + (6 * Math.random()));&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Zur Kontrolle geben wir das Ergebnis aus &lt;br /&gt;
         */&lt;br /&gt;
        System.out.println(&amp;quot;Der Würfel hat &amp;quot; + wuerfelzahl + &amp;quot; ergeben.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Ist das Ergebnis groesser als 3 ?&lt;br /&gt;
         */&lt;br /&gt;
        if (wuerfelzahl &amp;gt; 3) {&lt;br /&gt;
            // Wenn ja gib diesen Text aus:&lt;br /&gt;
            System.out.println(&amp;quot;mehr als 3!&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 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üre 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üre 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;
= 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;
= while =&lt;br /&gt;
== einfache while-Schleife ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public class While_Uebung1 {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        int x=10;&lt;br /&gt;
        while (x&amp;gt;0){&lt;br /&gt;
            System.out.println(&amp;quot; x=&amp;quot; + x);  // Anhaengen von x an den String&lt;br /&gt;
            x=x-1;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Methoden =&lt;br /&gt;
== Was tut das? ==&lt;br /&gt;
&lt;br /&gt;
//file: Methoden1.java&lt;br /&gt;
class Methoden1 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( gibMirNeZahl() );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static double gibMirNeZahl() {&lt;br /&gt;
        return 15.3;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden2.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden3.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
        System.out.println( mathematik(1, 5) );&lt;br /&gt;
        System.out.println( mathematik(3, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden4.java&lt;br /&gt;
class Methoden4 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        int eineZahl = 2;&lt;br /&gt;
        System.out.println( mathematik(4, eineZahl) );&lt;br /&gt;
        eineZahl = 5;&lt;br /&gt;
        System.out.println( mathematik(2, eineZahl) );&lt;br /&gt;
        System.out.println( mathematik(eineZahl, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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 abzuspeichern 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 getter und setter 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 private und public ploetzlich?!&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das relativ einfach. Die Daten haben wir private 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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7160</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7160"/>
		<updated>2006-04-05T08:03:53Z</updated>

		<summary type="html">&lt;p&gt;192.168.23.119: /* for-Schleifen zum Zählen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Variablen =&lt;br /&gt;
== Variablendeklaration und Initialisierung ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		int aWholeNumber;&lt;br /&gt;
		double notAWholeNumber;&lt;br /&gt;
		String aString;&lt;br /&gt;
&lt;br /&gt;
		aWholeNumber = 0;&lt;br /&gt;
		notAWholeNumber = 0.0;&lt;br /&gt;
		aString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(aWholeNumber);&lt;br /&gt;
		System.out.println(notAWholeNumber);&lt;br /&gt;
		System.out.println(aString);&lt;br /&gt;
&lt;br /&gt;
		int anotherWholeNumber = 0;&lt;br /&gt;
		double anotherNotSoWholeNumber = 0;&lt;br /&gt;
		String anotherString = &amp;quot;&amp;quot;;&lt;br /&gt;
		System.out.println(anotherWholeNumber);&lt;br /&gt;
		System.out.println(anotherNotSoWholeNumber);&lt;br /&gt;
		System.out.println(anotherString);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; definiert?&lt;br /&gt;
* An welcher Stelle im Programm wird die Variable &#039;&#039;aWholeNumber&#039;&#039; initialisiert?&lt;br /&gt;
Beantworte diese Fragen auch für die Variablen: &#039;&#039;notAWholeNumber&#039;&#039;, &#039;&#039;aString&#039;&#039;, &#039;&#039;anotherWholeNumber&#039;&#039;, &#039;&#039;anotherNotSoWholeNumber&#039;&#039;, &#039;&#039;anotherString&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erkläre deine Meinung einem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Selber Deklarationen und Definitionen durchführen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		// deklariere eine Variable &amp;quot;birnen&amp;quot;  vom Typ int&lt;br /&gt;
		&lt;br /&gt;
		// weise ihr den Wert drei zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// addiere fünf zu dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;7 erwartet: &amp;quot; + birnen);&lt;br /&gt;
		// deklariere eine Variable &amp;quot;aepfel&amp;quot; und weise ihr den Wert fünf zu&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;5 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
		// subtrahiere zwei von dem Wert&lt;br /&gt;
&lt;br /&gt;
//		System.out.println(&amp;quot;3 erwartet: &amp;quot; + aepfel);&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zuweisung an Variablen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int zero = 0;&lt;br /&gt;
		System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
		whatsThis = one;&lt;br /&gt;
		System.out.println(whatsThis);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Überlege dir was dieses Code-Fragment ausgeben würde.&lt;br /&gt;
Führe es aus und vergleiche die Resultate. (Kopiere den Beispiel-Code in eine Datei, Kompiliere sie und füre 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 ==&lt;br /&gt;
Wieso haben wir das Beispiel  nach den geschweiften Klammern eingerückt und die Variablen so gestellt wie wir es gestellt haben und nicht so:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class _{static long _&lt;br /&gt;
(long __,long  ___) {&lt;br /&gt;
return __==0 ?___+ 1:&lt;br /&gt;
___==0?_(__-1,1):_(__&lt;br /&gt;
-1,_(__, ___-1)) ;  }&lt;br /&gt;
static  {int _=2 ,___&lt;br /&gt;
= 2;System.out.print(&lt;br /&gt;
&amp;quot;a(&amp;quot;+_+’,’+___+ &amp;quot;)=&amp;quot;+&lt;br /&gt;
_ (_,  ___) ) ;System&lt;br /&gt;
.exit(1);}}//(C) Ulli&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Etwas weniger Extrem, wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Beispiel {public static void main&lt;br /&gt;
	(String [] ignored) {&lt;br /&gt;
	System.out.println(0); int zero = 0;&lt;br /&gt;
			System.out.println(zero);&lt;br /&gt;
		int one = 1;&lt;br /&gt;
		int whatsThis = zero;&lt;br /&gt;
			System.out.&lt;br /&gt;
		println(whatsThis);&lt;br /&gt;
	whatsThis = one;		System.out.println(whatsThis)&lt;br /&gt;
;}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
Wieso haben wir unser zweites Beispiel nicht so gestellt?&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class b {&lt;br /&gt;
	public static void main(String [] i) {&lt;br /&gt;
		System.out.println(0);&lt;br /&gt;
		int a = 0;&lt;br /&gt;
		System.out.println(a);&lt;br /&gt;
		int b = 1;&lt;br /&gt;
		int c = a;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
		c = b;&lt;br /&gt;
		System.out.println(c);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nenne mindestens einen Grund und erkläre ihn deinem Tutor.&lt;br /&gt;
&lt;br /&gt;
== Variablen mit verschiedenen Typen zuweisen ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	public static void main(String [] ignored) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= if =&lt;br /&gt;
== Einfache if-Bedingung ==&lt;br /&gt;
Ü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üre 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, dass und eine double-Zahl, die kleiner&lt;br /&gt;
         * als 1.0 aber groesser oder gleich 0 ist.&lt;br /&gt;
         * Mit 6 multipliziert und um eins erhöht erhalten wir&lt;br /&gt;
         * Zahlen von 1.0 bis 6.99999...&lt;br /&gt;
         * Durch das Umwandeln in int werden die Nachkommastellen abgeschnitten&lt;br /&gt;
         * und wir erhalten ein int von 1 bis 6.&lt;br /&gt;
         */&lt;br /&gt;
        int wuerfelzahl = (int) (1 + (6 * Math.random()));&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Zur Kontrolle geben wir das Ergebnis aus &lt;br /&gt;
         */&lt;br /&gt;
        System.out.println(&amp;quot;Der Würfel hat &amp;quot; + wuerfelzahl + &amp;quot; ergeben.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Ist das Ergebnis groesser als 3 ?&lt;br /&gt;
         */&lt;br /&gt;
        if (wuerfelzahl &amp;gt; 3) {&lt;br /&gt;
            // Wenn ja gib diesen Text aus:&lt;br /&gt;
            System.out.println(&amp;quot;mehr als 3!&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 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üre 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üre 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;
= 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üre 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;
= while =&lt;br /&gt;
== einfache while-Schleife ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public class While_Uebung1 {&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
&lt;br /&gt;
        int x=10;&lt;br /&gt;
        while (x&amp;gt;0){&lt;br /&gt;
            System.out.println(&amp;quot; x=&amp;quot; + x);  // Anhaengen von x an den String&lt;br /&gt;
            x=x-1;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Methoden =&lt;br /&gt;
== Was tut das? ==&lt;br /&gt;
&lt;br /&gt;
//file: Methoden1.java&lt;br /&gt;
class Methoden1 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( gibMirNeZahl() );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static double gibMirNeZahl() {&lt;br /&gt;
        return 15.3;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden2.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden3.java&lt;br /&gt;
class Methoden3 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        System.out.println( mathematik(1, 2) );&lt;br /&gt;
        System.out.println( mathematik(1, 5) );&lt;br /&gt;
        System.out.println( mathematik(3, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//file: Methoden4.java&lt;br /&gt;
class Methoden4 {&lt;br /&gt;
    public static void main (String[] arguments) {&lt;br /&gt;
        int eineZahl = 2;&lt;br /&gt;
        System.out.println( mathematik(4, eineZahl) );&lt;br /&gt;
        eineZahl = 5;&lt;br /&gt;
        System.out.println( mathematik(2, eineZahl) );&lt;br /&gt;
        System.out.println( mathematik(eineZahl, 4) );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static boolean mathematik(int argument1, int argument2) {&lt;br /&gt;
        return (argument1 + 5) &amp;lt; (argument2 * 2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
== Tue selbst etwas! ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Aufgabe ist eine Schritt-für-Schritt Anleitung. Sie soll euch die Möglickeit geben einmal genau angeleitet zu sehen, wie man an eine Aufgabe herangehen könnte.&lt;br /&gt;
&lt;br /&gt;
Zuerst stellen wir einen denkbaren Aufgabentext vor, der später ausreichen müsste um selbst ein Programm zu schreiben.&lt;br /&gt;
&lt;br /&gt;
Aufgabe: Erstelle ein Modul, das die mathematischen Operationen Addition, Subtraktion, und Potenzieren jeweils in einer Methode anbieten. Probiere deine Methoden in der main-Methode aus.&lt;br /&gt;
&lt;br /&gt;
//TODO: Schritt für Schritt Anleitung, wie, in welcher Reihenfolge und wo genau welche Methode implementiert werden soll. Voraussetzung: Verständnis von Schleifen. Rudimentäres Verständnis von Methoden.&lt;br /&gt;
&lt;br /&gt;
= Arrays (eindimensional und n-dimensional) =&lt;br /&gt;
== Eindimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[] meinArray1 = new int[5];&lt;br /&gt;
meinArray1[0] = 0;&lt;br /&gt;
meinArray1[1] = 1;&lt;br /&gt;
meinArray1[2] = 2;&lt;br /&gt;
meinArray1[3] = 3;&lt;br /&gt;
meinArray1[4] = 4;&lt;br /&gt;
&lt;br /&gt;
int[] meinArray2 = new int[3];&lt;br /&gt;
meinArray2[0] = 0;&lt;br /&gt;
meinArray2[1] = 1;&lt;br /&gt;
meinArray2[2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
1.1.&lt;br /&gt;
 System.out.println(meinArray1.length);&lt;br /&gt;
&lt;br /&gt;
1.2.&lt;br /&gt;
 System.out.println(meinArray2.length);&lt;br /&gt;
&lt;br /&gt;
1.3.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[1]);&lt;br /&gt;
&lt;br /&gt;
1.4.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[1]);&lt;br /&gt;
&lt;br /&gt;
1.5.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[4]);&lt;br /&gt;
&lt;br /&gt;
1.6.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[4]);&lt;br /&gt;
&lt;br /&gt;
1.7.&lt;br /&gt;
 System.out.println(meinArray1.length-1);&lt;br /&gt;
&lt;br /&gt;
1.8.&lt;br /&gt;
 System.out.println(meinArray2.length-1);&lt;br /&gt;
&lt;br /&gt;
1.9.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray1[0]);&lt;br /&gt;
&lt;br /&gt;
1.10.&lt;br /&gt;
 System.out.println(&amp;quot;Ergebnis:&amp;quot;+meinArray2[0]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zweidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][] meinArray3 = new int[2][3];&lt;br /&gt;
meinArray3[0][0] = 1;&lt;br /&gt;
meinArray3[1][1] = 2;&lt;br /&gt;
meinArray3[0][2] = 1;&lt;br /&gt;
meinArray3[1][0] = 2;&lt;br /&gt;
meinArray3[0][1] = 1;&lt;br /&gt;
meinArray3[1][2] = 2;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du Matrizen. Ihre Größe wird mit (n x m) angegeben. &lt;br /&gt;
&lt;br /&gt;
 System.out.println(meinArray3[0][0]+meinArray3[0][1]+meinArray3[0][2]);&lt;br /&gt;
 System.out.println(meinArray3[1][0]+meinArray3[1][1]+meinArray3[1][2]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dreidimensionale Arrays ==&lt;br /&gt;
Folgendes Array-Konstrukt wird initialisiert&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
int[][][] meinArray3D = new int[2][2][2];&lt;br /&gt;
meinArray3D[0][0][0] = 1;&lt;br /&gt;
meinArray3D[0][1][1] = 2;&lt;br /&gt;
meinArray3D[0][1][0] = 2;&lt;br /&gt;
meinArray3D[0][0][1] = 1;&lt;br /&gt;
&lt;br /&gt;
meinArray3D[1][0][0] = 3;&lt;br /&gt;
meinArray3D[1][1][1] = 4;&lt;br /&gt;
meinArray3D[1][1][0] = 4;&lt;br /&gt;
meinArray3D[1][0][1] = 3;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Was geben die folgenden &amp;quot;system.out.println&amp;quot; jeweils aus?&lt;br /&gt;
Vergleiche die Ausgabe mit Deinem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Tipp: Aus der Mathematik kennst Du mehrdimensionale Obejekte. &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
System.out.println(meinArray3D[0][0][0]+meinArray3D[0][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[0][1][0]+meinArray3D[0][1][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][0][0]+meinArray3D[1][0][1]);&lt;br /&gt;
System.out.println(meinArray3D[1][1][0]+meinArray3D[1][1][1]);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;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 abzuspeichern 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 getter und setter 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 private und public ploetzlich?!&lt;br /&gt;
&lt;br /&gt;
Eigentlich ist das relativ einfach. Die Daten haben wir private 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;/div&gt;</summary>
		<author><name>192.168.23.119</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7159</id>
		<title>Javakurs2006/Uebungsaufgaben</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2006/Uebungsaufgaben&amp;diff=7159"/>
		<updated>2006-04-05T08:01:37Z</updated>

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

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

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

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

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

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

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

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

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