Hier ein einfaches Beispiel für das for each Schleifen-Konstrukt in Java:
public class ForEachExample { public static void main(String[] args) { int[] feld = new int[] { 1,2,3,4 }; for ( int eintrag : feld ) { System.out.println( eintrag ); } } }Tags: Blatt 7
12 Dec 08 Wiederholung: Arrays
Eine kurze Übersicht der wichtigsten Array-Befehle:
Deklarieren einer Array-Referenz/Variable:
int[] integerArray; // allgemein: // T[] tArray; // T kann selbst wieder vom Typ Array sein, also T := U[] usw..Erstellen eines neuen Array-Objektes:
integerArray = new int[5]; // Erstellen eines neuen Array-Objektes: integerArray = new int[5]; // geht leider nicht!!! // integerArray = new int[3] { 3, 1, 4 }; // oder: integerArray = new int[] { 3, 1, 4, 1, 5, 6, 9 }; // wo ist der Fehler (Achtung: Scherzfrage)Zugriff auf ein Element in einem Array
System.out.println( integerArray[0] + "," + integerArray[1] + integerArray[2] + integerArray[3] + " ist ca. \pi" ); // Zuweisen eines Wertes analog: integerArray[5] = 9; integerArray[6] = 2; // besser, eh?Abfragen der Länge eines Arrays:
// mit .length System.out.println( "\pi auf " + integerArray.length + " - 1 Stellen genau:" ); // man indiziert mit int Variablen dynamisch: System.out.print( "\pi ~ " + integerArray[0] + "," ); // wir fangen jetzt ab der ersten Nachkommastelle an (also 2. Element im Array) for( int i = 1 ; i < integerArray.length ; i++ ) { System.out.print( integerArray[i] ); } System.out.println(); [/sourcecode]</pre> Überprüfung auf Gleichheit: <pre> // wie bei Strings mit .equals int[] arrayA = new int[] {1, 2, 3, 3}; int[] arrayB = new int[] {3, 2, 1}; int[] arrayC = new int[] {1, 2, 3, 4}; System.out.println( arrayA.equals( arrayA ) ); // true System.out.println( arrayA.equals( arrayB ) ); // false System.out.println( arrayA.equals( arrayC ) ); // falseCode: ArrayExample.java
Tags: Blatt 7
05 Dec 08 Blatt 6 Folien
Anbei ein paar (die wichtigesten) Folien von der heutigen Übung.
(more…)05 Dec 08 Blatt 6, Aufgabe 3e
Hier noch eine etwas elegantere Lösung zur Aufgabe 3e:
// save as fib.java public class fib { static public int fib(int n) { int f_old = 1, f_current = 0; for( int i = 0 ; i < n ; i++ ) { int f_old_old = f_old; f_old = f_current; f_current = f_old_old + f_old; } return f_current; } static public void main( String[] args ) { // small test for( int i = 0 ; i < 10 ; i++ ) { System.out.println( fib(i) ); } } } [/sourcecode]Tags: Blatt 6, Fibonacci-Folge, iterativer Ansatz
05 Dec 08 Blatt 6, Aufgabe 1
Hier zuerst einmal das Grundgerüst aus dem Übungsblatt:
import fjava.Seq; import static fjava.Seq.*; @SuppressWarnings("unchecked") public class Program { static <T> void printSeq(Seq<T> s) { System.out.print(s); } public static void main(String[] args) { printSeq(cons(1,2,3,4)); } }Ich habe auch ein paar Batch-Dateien zusammengeschrieben um das Leben leichter zu machen – zumindest für die, die auch Windows benutzen:
compile.bat führt einfach den javac-Befehl aus dem Übungsblatt aus. Zum Beispiel: compile Program.java.
run.bat führt den java-Befehl aus: run Program.startCmd.bat startet Cmd (sowas wie xterm für Windows) im Verzeichnis, in dem sich die Datei befindet – das erspart einem herumnavigieren in der Shell.
setupPath.bat kann man benutzen, wenn die Shell javac/java nicht findet. Möglicherweise muss man den Pfad in der Datei anpassen (einfach mal in Notepad öffnen und sich anschauen..).
Tags: Blatt 6
14 Nov 08 Tutoraufgabe 4d)
Hallo,
anbei die Lösung für die Teilaufgabe d). Die Teilaufgabe c) ergibt ist nur eine Vereinfachung davon. Die Idee für die c) kann man leicht sehen, wenn man die Lösung auf einer der leeren Karten laufen lässt. Aber bevor Ihr es laufen lasst, versucht selbst daraufzukommen.
BTW was ich jetzt noch gehört habe, ist die Aufgabe, die letzte ihrer Art für’s erste, deswegen ist es auch nicht so schlimm, das wir nicht wirklich damit durch gekommen sind. Aber es lohnt sich trotzdem noch ein wenig damit herumzuspielen um besser mit if-else-Konstrukten vertraut zu werden.
Grüße,
AndreasTags: Übungsblatt 4