Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe...

27
Informatik II ¨ Ubung 1 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rosmannek, David Sidler, Thilo Weghorn FS 2017 1

Transcript of Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe...

Page 1: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Informatik II

Ubung 1

Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, MaxRosmannek, David Sidler, Thilo Weghorn

FS 2017

1

Page 2: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Heutiges Programm

1 Ablauf der Übungen

2 Wiederholung der wichtigsten Begriffe

2

Page 3: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

AblaufMo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So

Ausgabe Vorbesprechung Abgabe Nachbesprechung

V VÜ Ü

Übungsblattausgabe zur Vorlesung (online).Vorbesprechung am folgenden Donnerstag. Möglichkeit, Fragen zur Vorlesungzu stellen!Bearbeitung der Übung bis spätestens am Dienstag (23:59) darauf.Nachbesprechung der Übung am Donnerstag. Feeback zu den Abgaben (auchonline) innerhalb einer Woche nach Nachbesprechung.

3

Page 4: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Abgabe mit codeboard

Account erstellenEinloggenÜbungen lösen und einschicken

4

Page 5: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Codeboard @ETH

Codeboard besteht aus zwei unabhängigen Systemen, diemiteinander kommunizieren:

Das ETH Abgabesystem:Ermöglicht es uns, ihre Aufgabenzu bewerten

Die Online IDE: DieProgrammierumgebung

User

ETH Abgabesystemhttp://codeboard.ethz.ch

Login mit ETH Credentials

Codeboard.iohttp://codeboard.io

Login mit Codeboard.io Credentials

5

Page 6: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

CodeboardCodeboard ist eine Online-IDE: Programmieren im Browser!

Falls vorhanden, bringenSie ihren Laptop/Tablet/...mit in den Unterricht.

Sie können direkt in derVorlesung Beispieleausprobieren, ohne dassSie irgendwelche Toolsinstallieren müssen.

6

Page 7: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Codeboard @ETH

Codeboard besteht aus zwei unabhängigen Systemen, diemiteinander kommunizieren:

Das ETH Abgabesystem:Ermöglicht es uns, ihre Aufgabenzu bewerten

Die Online IDE: DieProgrammierumgebung

User

ETH Abgabesystemhttp://codeboard.ethz.ch

Login mit ETH Credentials

Codeboard.iohttp://codeboard.io

Login mit Codeboard.io Credentials

7

Page 8: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Codeboard

Codeboard.io RegistrierungGehen Sie auf http://codeboard.io und erstellen Sie dort einKonto, bleiben Sie am besten eingeloggt.

Einschreibung in ÜbungsgruppenGehen Sie auf http://codeboard.ethz.ch/ifbaug2 undschreiben Sie sich dort in eine Übungsgruppe ein.

8

Page 9: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Codeboard.io RegistrierungFalls Sie noch keinen Codeboard.io Account haben ...

Wir verwenden die Online IDECodeboard.io

Erstellen Sie dort einenAccount, um Ihren Fortschrittabzuspeichern und späterSubmissions anzuschauenAnmeldedaten können beliebiggewählt werden! Verwenden Sienicht das ETH Passwort.

9

Page 10: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Codeboard.io RegistrierungFalls Sie noch keinen Codeboard.io Account haben ...

Wir verwenden die Online IDECodeboard.ioErstellen Sie dort einenAccount, um Ihren Fortschrittabzuspeichern und späterSubmissions anzuschauen

Anmeldedaten können beliebiggewählt werden! Verwenden Sienicht das ETH Passwort.

9

Page 11: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Codeboard.io RegistrierungFalls Sie noch keinen Codeboard.io Account haben ...

Wir verwenden die Online IDECodeboard.ioErstellen Sie dort einenAccount, um Ihren Fortschrittabzuspeichern und späterSubmissions anzuschauenAnmeldedaten können beliebiggewählt werden! Verwenden Sienicht das ETH Passwort.

9

Page 12: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Codeboard.io LoginFalls Sie schon einen Account haben, loggen Sie sich ein:

10

Page 13: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Einschreibung in Ubungsgruppen - IBesuchen Sie http://codeboard.ethz.ch/ifbaug2

Loggen Sie sich mit Ihrem nethz Account ein.

11

Page 14: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Einschreibung in Ubungsgruppen - IISchreiben Sie sich in diesem Dialog in eine Übungsgruppe ein.

12

Page 15: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Die erste UbungSie sind nun eingeschrieben und die erste Übung ist geladen.Folgen Sie den Anweisungen in der gelben Box. Das Übungsblattauf der Kurshomepage enthält weitere Anweisungen undErklärungen.

13

Page 16: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Die erste Ubung - Codeboard.io Login

Falls Sie diese Nachricht sehen, klicken Sie auf Sign in now undmelden Sie sich dort mit ihrem Codeboard.io Account ein.

14

Page 17: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Die erste Ubung - Fortschritt speichern!

Achtung! Speichern Sie ihrenFortschritt regelmässig ab. Sokönnen Sie jederzeit an einem an-deren Ort weiterarbeiten.

15

Page 18: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Algorithmus

Algorithmus: wohldefinierte Berechnungsvorschrift, welche ausEingabedaten (input) Ausgabedaten (output) berechnet.

16

Page 19: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Beispielproblem

Input : Eine Folge von n Zahlen (a1, a2, . . . , an)

Output : Eine Permutation (a′1, a′2, . . . , a

′n) der Folge (ai)1≤i≤n, so dass

a′1 ≤ a′2 ≤ · · · ≤ a′n

Mögliche Eingaben(1, 7, 3), (15, 13, 12,−0.5), (1) . . .

Jedes Beispiel erzeugt eine Probleminstanz.

17

Page 20: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Beispielproblem

Input : Eine Folge von n Zahlen (a1, a2, . . . , an)Output : Eine Permutation (a′1, a

′2, . . . , a

′n) der Folge (ai)1≤i≤n, so dass

a′1 ≤ a′2 ≤ · · · ≤ a′n

Mögliche Eingaben(1, 7, 3), (15, 13, 12,−0.5), (1) . . .

Jedes Beispiel erzeugt eine Probleminstanz.

17

Page 21: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Beispielproblem

Input : Eine Folge von n Zahlen (a1, a2, . . . , an)Output : Eine Permutation (a′1, a

′2, . . . , a

′n) der Folge (ai)1≤i≤n, so dass

a′1 ≤ a′2 ≤ · · · ≤ a′n

Mögliche Eingaben(1, 7, 3), (15, 13, 12,−0.5), (1) . . .

Jedes Beispiel erzeugt eine Probleminstanz.

17

Page 22: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Beispielproblem

Input : Eine Folge von n Zahlen (a1, a2, . . . , an)Output : Eine Permutation (a′1, a

′2, . . . , a

′n) der Folge (ai)1≤i≤n, so dass

a′1 ≤ a′2 ≤ · · · ≤ a′n

Mögliche Eingaben(1, 7, 3), (15, 13, 12,−0.5), (1) . . .

Jedes Beispiel erzeugt eine Probleminstanz.

17

Page 23: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Euklidischer Algorithmus: Java vs. Pascal

public class Euclidean {

public static void main(String[] args){int a = 24;int b = 20;while (b != 0) {

int h = a % b; // modulo!a = b;b = h;

}System.out.println("ggt(24,20)=" + a);

}}

program Euklid;var a, b, h: integer ;begin

a := 24;b := 20;while b <> 0 do begin

h := a mod b;a := b;b := h;

end;writeln( ’ggt(24,20)=’,a :5);

end.

18

Page 24: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Mit einer Funktion (Methode)public class Euclidean {

// PRE: a, b >= 0// POST: gibt GGT(a,b) zurueckstatic 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));}

}19

Page 25: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Mit Eingabe

import java.util.Scanner;

public class Euclidean {

static int ggt(int a, int b){ ... } // wie oben

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));

}}

20

Page 26: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Zeichenketten (Strings)Strings sind Objekte in Java.

Zuweisung eines Stringliterals:String hello = "Hallo Leute";

Stringlänge:int len = hello.length();

Elementzugriff1

char c = hello.charAt(5);

VerkettungString helloLong = hello + ". Alles wird gut.";1Nur lesend. Strings sind unveränderlich

21

Page 27: Informatik II Ubung 1 - lec.inf.ethz.ch · Ablauf Mo Di Mi Do Fr Sa So Mo Di Mi Do Fr Sa So Ausgabe Vorbesprechung Abgabe Nachbesprechung V Ü V Ü Übungsblattausgabe zur Vorlesung

Fragen oder Anregungen?

22