![Page 1: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/1.jpg)
Informatik II
Felix FriedrichVorlesung am D-BAUG der ETH Zürich
FS 2016
1
![Page 2: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/2.jpg)
W i l l k o m m e n
zur Vorlesung Informatik II !
am D-BAUG der ETH Zürich.
Ort und Zeit:
Montag 12:45– 14:30, HIL E3.
Pause 13:30 – 13:45, leichte Verschiebung möglich
Vorlesungshomepage http://lec.inf.ethz.ch/baug/informatik2/2016/
2
![Page 3: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/3.jpg)
Team
Dozent Felix Friedrich
Chefassistent David Sidler
Assistenten Giuseppe Accaputo
Andrin Kasper
Marko Pichler
Tobias Verhulst
3
![Page 4: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/4.jpg)
1. EINFÜHRUNG
Überblick, der universelle Computer (Turing Maschine), Euklidischer Algorithmus, Erstes Java Programm, Java Klassen, Pascal Java, der Euklidische Algorithmus in Java
4
![Page 5: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/5.jpg)
Ziel der Vorlesung
Hauptziel: Problemlösen mit dem Computer
Hilfsmittel
Objektorientierte Programmiersprache (Java)
Tools wie Matlab und Datenbanken
Methodik
Kernthemen: Objektorientiertes Programmieren, Datenstrukturen, Algorithmen und Komplexität, Datenbanken
Fallstudien: Interessante Probleme aus der Informatik und angrenzenden Gebieten
5
![Page 6: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/6.jpg)
Warum Java?
Sehr weit verbreitete moderne Sprache, funktioniert auf sehr vielen Systemen
Portabilität durch Zwischensprache
Verbietet einige typische Fehler
Gute Datenbankanbindung
6
![Page 7: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/7.jpg)
Ziel der heutigen Vorlesung
Einführung: Computermodell und Algorithmus
Prozedurales Programmieren mit Java, Pascal Java
7
![Page 8: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/8.jpg)
Der universelle Computer
Eine geniale Idee: Universelle Turing Maschine (Alan Turing, 1936)
8
Interner Zustand
Kontrolleinheit
Lese- / Schreibkopf
Festprogramm-Computer
Folge von Symbolen auf Ein- und Ausgabeband
Programmcode Eingabe Ausgabex
«Symbol lesen»«Symbol überschreiben»«Nach links»«Nach rechts»
Alan Turing
htt
p:/
/en
.wik
ipe
dia
.org
/wik
i/A
lan_
Tu
rin
g
![Page 9: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/9.jpg)
Realisierungen
Z1 – Konrad Zuse (1938)ENIAC – Von Neumann (1945)
9
htt
p:/
/co
mm
on
s.w
ikim
ed
ia.o
rg/w
iki/F
ile:J
oh
n_vo
n_
Neum
ann
.jp
g
John von Neumann
Konrad Zuse
/htt
p:/
/ww
w.h
s.u
ni-
ha
mb
urg
.de
/DE
/GN
T/h
h/b
iog
r/zu
se
.htm
Prozessor - CPU
Rechenwerk ALU Steuerwerk
BUS
Speicher Ein-/Ausgabe
Von Neumann Architektur
![Page 10: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/10.jpg)
Universelles Rechenmodell
Zutaten der Von Neumann Architektur
Hauptspeicher (RAM) für Programme und Daten
Prozessor (CPU) zur Verarbeitung der Programme und Daten
I/O Komponenten zur Kommunikation mit der Aussenwelt
10
![Page 11: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/11.jpg)
Ältester nichttrivialer AlgorithmusEuklidischer Algorithmus (3. Jh v. Chr.) Grösster gemeinsamer Teiler
Annahme: a>0, b>0.
Solange 𝑏 ≠ 0
Wenn a > b
dann 𝑎 ← 𝑎 − 𝑏
Sonst
𝑏 ← 𝑏 − 𝑎
Ergebnis = a.
2/22/2016 11
a b a b a b a b a b
1 2 3 4 5
![Page 12: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/12.jpg)
Live Demo: Turing Maschine
12
0 1 2 3 4 5 6 7 8 9
Speicher Register
![Page 13: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/13.jpg)
Euklid in der Box
0 1 2 3 4 5 6 7 8 9
[8] Links
[9] Rechts
L=0?stop
R>L?nach 6
L-R[8]
nach 0R-L[9]
nach 0 (b) (a)
2/22/2016 13
Speicher
Register
Links Rechts Solange 𝑏 ≠ 0Wenn a > b
dann 𝑎 ← 𝑎 − 𝑏Sonst
𝑏 ← 𝑏 − 𝑎
![Page 14: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/14.jpg)
Geschwindigkeit
In der mittleren Zeit, die der Schall von mir zu
Ihnen unterwegs ist...
arbeitet ein heutiger Desktop-PC
mehr als 100 Millionen Instruktionen ab.
14
30 m
ෝ= mehr als 100.000.000 Instruktionen
![Page 15: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/15.jpg)
Java
Basiert auf einer virtuellen Maschine, (mit Von-Neumann Architektur)
Programmcode wird in Zwischencode übersetzt,
Zwischencode läuft in "simulierter" Rechnerumgebung. Interpretation des Zwischencodes durch einen sog. Interpreter
Optimierung: JIT (Just-In-Time) Kompilation von häufig benutztem Code. virtuelle Maschine physikalische Maschine
Folgerung und erklärtes Ziel von Java
Portabilität (Write Once Run Anywhere)
15
xyz.class
MyProg.java
MyProg.class
Compiler
Interpreter/
JIT Compiler
![Page 16: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/16.jpg)
ORGANISATORISCHES
16
![Page 17: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/17.jpg)
Übungen
17
Übungszeiten / Orte
Gruppeneinteilung selbstständig via Webseite
E-Mail mit Link nur nach Belegung dieser Vorlesung in myStudies
Genau eine E-Mail mit personalisiertem Link Link behalten !
Donnerstag
12:45 – 14:30 Giuseppe Accaputo HIT F 31.1
Marko Pichler HIT F 12
Andrin Kasper HIT F 13
14:45– 16:30 Tobias Verhulst HCI D4
![Page 18: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/18.jpg)
Übungen Ablauf
Übungsblattausgabe zur Vorlesung.
Vorbesprechung der Übung am Donnerstag der selben Woche
Abgabe der Übung spätestens eine Woche später (Dienstag 23:59). Abgabe via Autograder oder per email an den Assistenten.
Nachbesprechung der Übung am Donnerstag darauf. Korrektur der Abgaben innerhalb einer Woche nach Nachbesprechung.
18
Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So
Ausgabe
V
Nachbesprechung
VÜ Ü
Vorbesprechung
Späteste
Abgabe
![Page 19: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/19.jpg)
Zu den Übungen
Seit HS 2013 für Prüfungszulassung kein Testat mehr erforderlich.
Bearbeitung der wöchentlichen Übungsserien ist freiwillig, wird aber dringend empfohlen!
19
![Page 20: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/20.jpg)
Autograder
In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt.
Vorgehen:
- Erstellen eines Programmes mit Hauptklasse "Main" gemäss Problemstellung
- Einreichen des Programmes beim judge (webseite).
- Link auf dem Übungsblatt und Vorlesungshomepage
Judge prüft, ob Ihr Code bei Vorliegen einer bestimmten Eingabe die richtige Ausgabe (innerhalb einer vorgegebenen Maximalzeit) erzeugt.
2/22/2016 20
![Page 21: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/21.jpg)
Autograder
2/22/2016 21
![Page 22: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/22.jpg)
Autograder
2/22/2016 22
Resultate
• Richtige Ausgabe
• Falsche Ausgabe
• Übersetzungsproblem (Compilation failed)
• Laufzeitproblem (Exception u.ä.)
• Timeout
Sie können jederzeit neu einreichen bis alles funktioniert
![Page 23: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/23.jpg)
Unser Angebot !
Eine spezielle Programmierübung. Punkte dieser Übungen werden als Bonus für die Note der Basisprüfung mitgenommen.
Termin: Vorr. in der 10. Woche. Zwei Wochen Bearbeitungszeit.
Maximal erreichbarer Bonus: 1/4 einer Note.
Wir behalten uns mündliche Prüfgespräche für die geleisteten Übungen vor.
2/22/2016 23
![Page 24: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/24.jpg)
Tipps
Üben Sie!
Wenn Sie zu zweit an Übungen arbeiten, stellen Sie Gleichverteilung des aktiven Parts sicher.
Lassen Sie sich nicht frustrieren. Schlafen Sie eine Nacht, wenn Sie nicht vorwärtskommen.
Holen Sie sich Hilfe, wenn Sie nicht vorwärtskommen.
Üben Sie!
24
![Page 25: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/25.jpg)
Computerarbeitsplätze
In den Computerräumen des D BAUG ist die nötige Software (Java + Eclipse) installiert, genauso auch im Hauptgebäude im Zentrum.
Falls Sie auf Ihrem eigenen Rechner arbeiten möchten: Installationsanweisung für Java / Eclipse auf dem ersten Übungsblatt
Bringen Sie Ihren Computerdoch bitte zur ersten Übungsstunde mit.
25
![Page 26: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/26.jpg)
Literatur
Robert Sedgewick, Kevin Wayne, Einführung in die Programmierung mit Java. Pearson, 2011
Thomas Ottmann, Peter Widmayer, Algorithmen und Datenstrukturen, Springer pdf derzeit auch als download bei Springer
Kemper, Eickler: Datenbanksysteme: Eine Einführung. Oldenbourg Verlag, 9. Auflage, 2013.
Weitere online-Referenzen auf der Vorlesungshomepage.
26
![Page 27: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/27.jpg)
Relevantes für die Prüfung
Prüfungsstoff für die Endprüfung schliesst ein
• Vorlesungsinhalt und
• Übungsinhalte.
Prüfung (120 min) ist schriftlich.
Zugelassene Hilfsmittel: keine
Programmierkenntnisse sind Minimalvoraussetzung zum Lösen der Prüfung.
27
![Page 28: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/28.jpg)
In Ihrem und unserem Interesse ...
Bitte melden sie frühzeitig, wenn Sie Probleme sehen, wenn Ihnen
die Vorlesung zu schnell, zu schwierig, zu .... ist
die Übungen nicht machbar sind ...
Sie sich nicht gut betreut fühlen ...
Kurz: wenn Ihnen irgendetwas auf dem Herzen liegt
28
wichtig !
![Page 29: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/29.jpg)
JAVA
2/22/2016 29
![Page 30: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/30.jpg)
Erstes Pascal Programm
PROGRAM Hello;
BEGIN
Write(‘Hello World.’);
END.
Aufruf: Hello
30
![Page 31: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/31.jpg)
Erstes Java Programm
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World.");
}
}
Aufruf: java Hello
31
class: ein Programm
Anweisung: ein Kommando, welches auszuführen ist
Methode: Eine (benannte) Folgevon Anweisungen
Ein Funktionsaufruf einer Methode(Prozedur) einer anderen Klasse
![Page 32: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/32.jpg)
Java Klassen
Java-Programm besteht aus mindestens einer Klasse.
Ein Java-Programm hat eine Klasse mit main-Funktion (Methode). Diese spielt die Rolle des Programmrumpfes bei Pascal
public class Test{
// potentiell weiterer Code und Daten
public static void main(String[] args) {
...
}
}
32
![Page 33: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/33.jpg)
Prozedurale Programmierung mit Java
Pascal Java
Deklarationen, Ausdrücke und Anweisungen: separate Tabelle
Programm Klasse mit public static void main
Prozedur static Methode in dieser Klasse
Globale Variablen static Variablen in dieser Klasse
Records Klassen (Achtung: Referenzsemantik*)
Arrays Arrays (Achtung: Referenzsemantik*)
Var-Parameter es gibt in Java kein Pass-by-Reference!
33
*wird noch erklärt
![Page 34: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/34.jpg)
Ein Java-Programm entsteht
Programm schreiben [z.B. im eclipse editor]
Quellcode
Programm compilieren [z.B. in der eclipse IDE]
Quellcode wird zu Bytecode übersetzt
Passiert in der eclipse IDE permanent im Hintergrund
Ausführen [z.B. in der IDE oder an der Kommandozeile]
Bytecode wird interpretiert und teilweise zu Maschinencode übersetzt und ausgeführt
2/22/2016 34
![Page 35: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/35.jpg)
Der Euklidische Algorithmus in Java
public class Euclidean {
public static void main(String[] args){
int a = 24;
int b = 20;
while (b != 0) {
if (a>b)
a = a - b;
else
b = b - a;
}
System.out.println("ggt(24,20)= " + a);
}
}
2/22/2016 35
Variablen müssen vor Gebrauch deklariertwerden. Aber: keine separate Deklarations-sequenz wie bei Pascal nötig.
Bedingungen stehen bei if und while immer in runden Klammern.
Blöcke werden durch geschweifte Klammerngekennzeichnet
![Page 36: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/36.jpg)
Verhalten eines Programmes
Zur Compilationszeit:
• vom Compiler akzeptiertes Programm – syntaktisch korrekt*
• Compiler Fehler – manchmal nicht einfach zu verstehen
Zur Laufzeit:
• korrektes Resultat
• inkorrektes Resultat
• Programmabsturz
• Programm terminiert nicht
2/22/2016 36*Compiler prüfen auch einen Teil der Semantik
![Page 37: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/37.jpg)
Der Euklidische Algorithmus in Java
public class Euclidean {
public static void main(String[] args){
int a = 24;
int b = 20;
while (b != 0) {
if (a>b)
a = a - b;
else
b = b - a;
}
System.out.println("ggt(24,20)=" + a);
}
}
2/22/2016 37
![Page 38: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/38.jpg)
Der Euklidische Algorithmus in Java
public class Euclidean {
public static void main(String[] args){
int a = 24;
int b = 20;
while (b != 0) {
if (a>b)
a = a % b;
else
b = b % a;
}
System.out.println("ggt(24,20)=" + a);
}
}
2/22/2016 38
while (b != 0) {int h = a % b;a = b;b = h;
}
![Page 39: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/39.jpg)
Vergleich mit Pascalpublic class Euclidean {
public static void main(String[] args){
int a = 24;int b = 20;while (b != 0) {
int h = a % b;a = b;b = h;
}System.out.println("ggt(24,20)= " + a);
}}
2/22/2016 39
program Euklid;
var a, b, rest: integer;
begina := 24;b := 20;while b <> 0 do begin
Rest:=a mod b;a:=b;b:=rest;
end;
writeln(‘ggt(24,20)=’,a:5);
end.
![Page 40: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/40.jpg)
Euklid in einer Funktion (Methode)
public class Euclidean {
// PRE: a, b >= 0// POST: gibt GGT(a,b) zurückstatic int ggt(int a, int b){
while (b != 0) {int h = a % b;a = b;b = h;
}return a;
}
public static void main(String[] args){System.out.println("ggt(24,20)= " + ggt(24,20));
}}
2/22/2016 40
![Page 41: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/41.jpg)
Ein- und Ausgabe
Ausgabe via System.out mit
System.out.print(...);
System.out.println(...);
Eingabe via System.in mit Scanner
Scanner input = new Scanner(System.in);
String s = input.next();
int i = input.nextInt();
benötigt import java.util.Scanner;
2/22/2016 41
![Page 42: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/42.jpg)
Euklidischer Algorithmus mit Eingabe
import java.util.Scanner;
public class Euclidean {static int ggt(int a, int b){
while (b != 0) {int h = a % b;a = b;b = h;
}return a;
}
public static void main(String[] args){
Scanner input = new Scanner(System.in);int a = input.nextInt();int b = input.nextInt();System.out.println("ggt(" + a + "," + b + ")= " + ggt(a,b));
}}
2/22/2016 42
![Page 43: Felix Friedrich - ETH Z...Autograder In den Übungen wird ein Tool ("DOM Judge") zur automatischen Bewertung Ihrer Lösung eingesetzt. Vorgehen: - Erstellen eines Programmes mit Hauptklasse](https://reader034.vdocuments.site/reader034/viewer/2022050518/5fa26a85c914c35d5c70511f/html5/thumbnails/43.jpg)
Zeichenketten (Strings)
Strings sind Objekte in Java.
Zuweisung eines Stringliterals:
String hello = "Hallo Leute";
Stringlänge:
int len = hello.length();
Elementzugriff
char c = hello.charAt(5);
Verkettung
String helloLong = hello + ". Alles wird gut.";
2/22/2016 43
int length(): Funktionalität des Typs String, hier bezogen auf die Instanz hello.