Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informatik II - Übung 01 Raphael Fischer (Folien basierend auf denen von Christian Beckel) fischrap@student.ethz.ch 01.03.2017.

Ähnliche Präsentationen


Präsentation zum Thema: "Informatik II - Übung 01 Raphael Fischer (Folien basierend auf denen von Christian Beckel) fischrap@student.ethz.ch 01.03.2017."—  Präsentation transkript:

1 Informatik II - Übung 01 Raphael Fischer (Folien basierend auf denen von Christian Beckel)

2 Wie sieht eine Übungsstunde aus?
Fragen aus der Vorlesung! Praktische Dinge: Demo, Eclipse Tipps & Tricks, Coding style, Debugging, Java-Features Besprechung Blatt n-1 (heute: n=1) Ausblick Blatt n und Theorierepetition Wichtig: Seid aktiv! Raphael Fischer

3 Abgabe der Übungen Abgabe per Codeboard bis Mittwoch, 13 Uhr
Falls Ihr den Code überhaupt nicht zum compilieren bringt: auskommentieren und Kommentar zuoberst Raphael Fischer

4 Java-Installation s/index.html J2SE – Java 2 Platform, Standard Edition Java SE 8 JDK (Java Development Kit): dieses Paket enthält auch das JRE (Java Runtime Environment) Test, ob JRE installiert ist (und Angabe der Version): java –version Test, ob JDK installiert ist (und Angabe der Version): javac –version Falls Probleme unter Windows: / /javac-not-working-in-windows-command-prompt Raphael Fischer

5 Java files .java files sind Quellcode
.class (Bytecode) files werden aus .java files von den Compiler erzeugt .jar files sind Bibliotheken Java source code Bytecode wird in einer virtuellen Machine (VM) interpretiert  Plattformunabhängigkeit (PC, Server, Mobiltelefon, Linux, Windows, etc..) Java bytecode Browser mit integrierter VM Betriebssystem mit VM VM in speziellen VLSI-chip Internet-PC Spiel-Konsole Mobiltelefon Waschmaschine Kreditkarte Raphael Fischer

6 Eclipse Raphael Fischer

7 files in D:\projects\u0 wurden automatisch hinzugefügt
Neues Java-Projekt Bsp.: Entpacken von u0.zip nach D:\projects\U00_G01 1 5 2 3 files in D:\projects\u0 wurden automatisch hinzugefügt 4 Raphael Fischer

8 JUnit 4 muss ausgewählt werden!
Neues Java-Projekt 6 8 7 JUnit 4 muss ausgewählt werden! 9 Raphael Fischer

9 Eclipse-View Run as Java Application
Java „perspective” für Java Entwicklung Editor Mit CTRL+SHIFT+F kann man autoformattieren Konsole Raphael Fischer

10 Debugging (lohnt sich!)
Debug „perspective” für Debugging Debug as Java Application Breakpoint (Double click) Konsole Raphael Fischer

11 Debugging (lohnt sich!)
Step into (F5) Step return (F7): verlasse aktuelle Funktion Step over (F6): Gehe zu nächster Zeile Raphael Fischer

12 Testing (lohnt sich ebenfalls!)
Click Run while Tests.java is open All tests passed Junit test methods Raphael Fischer

13 Mit ALT+SHIFT+J kann man Javadoc hinzufügen
Javadoc description Javadoc tab Raphael Fischer

14 Eclipse-Tipps “Save Actions” (Window  Preferences  Java  Editor  Save Actions) “Organize Imports”: Fügt automatisch nötige Imports hinzu “Format Source Code”: Führt automatisch Ctrl+shift+F aus ... Debugging Quick Fixes Raphael Fischer

15 Übungsblatt 0 Raphael Fischer

16 Übungsblatt 0 Aufgabe 1: HelloWorld.java Programm auf Kommandozeile kompilieren und ausführen (Muss in Ordner u0a1 sein) Aufgabe 2: Das erste Java-Programm Eclipse-Setup und (simple) Signum-Funktion Raphael Fischer

17 Übungsblatt 0 Aufgabe 3: Automatisiertes Testen
Setup von JUnit4 (Kommandozeile und in Eclipse), Tests für Signum-Funktion Aufgabe 4: Gerichtete Graphen 3 Kannen unterschiedlicher Größe (8l, 5l, 2l) Wein von einer Kanne in die andere Graph zeichnen, Zahl der nötigen Umschüttungen herausfinden Raphael Fischer

18 Aufgabe 4 Raphael Fischer

19 Aufgabe 4c) Maximale Anzahl von Umschüttungen: 6 (siehe Graph)
Mittlere Anzahl von Umschüttungen: Raphael Fischer

20 Übungsblatt 1 Raphael Fischer

21 Übungsblatt 1 Aufgabe 1: Altägyptische Multiplikation
Rekursiver Algorithmus für Berechnung von f(a,b) = a*b (a,b: positive ganze Zahlen) Raphael Fischer

22 Übungsblatt 1 Altägyptische Multiplikation: Induktionsbeweis:
IV: Für den Basisfall gilt: ∀ a∈ℕ: f(a,1) = a*1 IA: Sei b = n+1. Dann nehmen wir an dass gilt ∀ a∈ℕ, ∀ b∈ 1, …,𝑛 : f(a,b) = a*b IS: zu zeigen, falls die IA stimmt: f(a,b) = a*b: b gerade: f(a,b) = f(2a,b/2) = (IA!!) = 2a * b/2 b ungerade: f(a,b) = f(2a,(b-1)/2)+a = (IA!!) = a * b Raphael Fischer

23 Übungsblatt 1 Aufgabe 1: Altägyptische Multiplikation
a) Induktion über a (anstatt b) möglich? b) Terminiert der Algorithmus? Beweis? c) Nachdenken mit kleinstem Fall b=0 (anstatt b=1) Raphael Fischer

24 Übungsblatt 1 Aufgabe 2: Laufzeitkomplexität
Implementierung der AM gegeben. Aufrufe von gerade, verdopple, halbiere zählen Aufwandabschätzung einer einzigen Instanz von f(int a, int b) – Resultat soll ein Ausdruck von a und b sein Gesamtzahl aller Methodenaufrufe von f(int a, int b) unter Verwendung der Resultate aus Aufgabe b). Wichtig: Wie oft wird die Rekursion aufgerufen? Raphael Fischer

25 Übungsblatt 1 Aufgabe 3: Überprüfung von Benutzereingaben
Implementierung der AM gegeben Falsche Eingaben sollen Exceptions hervorrufen Fehler sollen mit Hilfe von UnitTests gefunden werden Einführung in JavaDoc (Hinweis, dass JavaDoc mit Eclipse ganz einfach ist: /** + Enter In mult Methode  throw new IllegalArgumentException(String message) Raphael Fischer

26 Danke Fragen?


Herunterladen ppt "Informatik II - Übung 01 Raphael Fischer (Folien basierend auf denen von Christian Beckel) fischrap@student.ethz.ch 01.03.2017."

Ähnliche Präsentationen


Google-Anzeigen