Informatik II Übung 04
|
|
|
- Norbert Schmid
- vor 9 Jahren
- Abrufe
Transkript
1 Informatik II Übung 04 Michael Baumann n.ethz.ch/~mbauman
2 Ablauf 1) Nachbesprechung Serie 3 2) Stacks 3) Vorbesprechung Serie 4 4) Bytecode und Assembler 2
3 Ablauf 1) Nachbesprechung Serie 3 2) Stacks 3) Vorbesprechung Serie 4 4) Bytecode und Assembler 3
4 Serie 3 4
5 Serie 3 Aufgabe 1 public static String decrypt(string s) { StringBuffer buf = new StringBuffer(""); for(int i = 0; i < s.length(); ++i) { buf.append((char)(s.charat(i) - 3)); return buf.tostring(); Encrypt: 4092 ms, decrypt: 42 ms (mein PC) Bei encrypt wird bei jeder Änderung der ganze String kopiert Strings sind dafür schneller bei lesenden Zugriffen z. B. suchen 5
6 Serie 3 Aufgabe 2 a): X2 : Var: ~. (~X1 ): ~(X1 OR ~X 2 ): (X2 ) OR (~X 1 OR X 2 ): Clause: ( Var ) b) OR (X1 OR X 2 ) AND (~X 1 ): Expr: (X1 ) AND (~X 1 OR ~X 2 ) AND (X 2 ): Clause AND Clause 6
7 Serie 3 Aufgabe 2 a): X2 : nicht erzeugbar Var: ~. (~X1 ): ~(X1 OR ~X 2 ): (X2 ) OR (~X 1 OR X 2 ): Clause: ( Var ) b) OR (X1 OR X 2 ) AND (~X 1 ): Expr: (X1 ) AND (~X 1 OR ~X 2 ) AND (X 2 ): Clause AND Clause 7
8 Serie 3 Aufgabe 2 a): X2 : nicht erzeugbar Var: ~. (~X1 ): erzeugbar ~(X1 OR ~X 2 ): (X2 ) OR (~X 1 OR X 2 ): Clause: ( Var ) b) OR (X1 OR X 2 ) AND (~X 1 ): Expr: (X1 ) AND (~X 1 OR ~X 2 ) AND (X 2 ): Clause AND Clause 8
9 Serie 3 Aufgabe 2 a): X2 : nicht erzeugbar Var: ~. (~X1 ): erzeugbar ~(X1 OR ~X 2 ): nicht erzeugbar (X2 ) OR (~X 1 OR X 2 ): Clause: ( Var ) b) OR (X1 OR X 2 ) AND (~X 1 ): Expr: (X1 ) AND (~X 1 OR ~X 2 ) AND (X 2 ): Clause AND Clause 9
10 Serie 3 Aufgabe 2 a): X2 : nicht erzeugbar Var: ~. (~X1 ): erzeugbar ~(X1 OR ~X 2 ): nicht erzeugbar (X2 ) OR (~X 1 OR X 2 ): nicht erzeugbar b) (X1 OR X 2 ) AND (~X 1 ): (X1 ) AND (~X 1 OR ~X 2 ) AND (X 2 ): Expr: Clause: Clause AND ( Var OR Clause ) 10
11 Serie 3 Aufgabe 2 a): X2 : nicht erzeugbar Var: ~. (~X1 ): erzeugbar ~(X1 OR ~X 2 ): nicht erzeugbar (X2 ) OR (~X 1 OR X 2 ): nicht erzeugbar b) (X1 OR X 2 ) AND (~X 1 ): erzeugbar (X1 ) AND (~X 1 OR ~X 2 ) AND (X 2 ): erzeugbar Expr: Clause: Clause AND ( Var OR Clause ) 11
12 Serie 3 Aufgabe 3 Warum nicht in Knoten? 12
13 Serie 3 Aufgabe 3 b) public class KD { // string parsing public static void parse(string kd) throws ParseException; // parse helpers (entity parsing) private static int parsetree(string kd, int position) throws ParseException; private static int parsesubtree(string kd, int position) throws ParseException; private static int parsenode(string kd, int position) throws ParseException; // atomic helpers (single character parsing) private static boolean checkchar(char expected, String kd, int position); 13
14 Serie 3 Aufgabe 3 b) public static void parse(string kd) throws ParseException { int offset = parsetree(kd, 0); if(offset!= kd.length()) { throw new ParseException("and the tree dies suddenly", offset); 14
15 Serie 3 Aufgabe 3 b) public static boolean checkchar(char c, String kd, int position) { if (position < kd.length()) return kd.charat(position) == c; return false; 15
16 Serie 3 Aufgabe 3 b) private static int parsetree(string kd, int position) throws ParseException { if(checkchar('-', kd, position)) { return position + 1; Baum Baum Node ( Unterbaum ) 16
17 Serie 3 Aufgabe 3 b) private static int parsetree(string kd, int position) throws ParseException { if(checkchar('-', kd, position)) { return position + 1; position = parsenode(kd, position); Baum return position; Baum Node ( Unterbaum ) 17
18 Serie 3 Aufgabe 3 b) private static int parsetree(string kd, int position) throws ParseException { if(checkchar('-', kd, position)) { return position + 1; position = parsenode(kd, position); if(checkchar('(', kd, position)) { if(!checkchar(')', kd, position)) throw new ParseException("expected ')'", position); position++; return position; Baum Baum Node ( Unterbaum ) 18
19 Serie 3 Aufgabe 3 b) private static int parsetree(string kd, int position) throws ParseException { if(checkchar('-', kd, position)) { return position + 1; position = parsenode(kd, position); if(checkchar('(', kd, position)) { position++; position = parsesubtree(kd, position); if(!checkchar(')', kd, position)) throw new ParseException("expected ')'", position); position++; return position; Baum Baum Node ( Unterbaum ) 19
20 Serie 3 Aufgabe 3 b) private static int parsesubtree(string kd, int position) throws ParseException { position = parsetree(kd, position); return position; parsechildren() Nachfolger Baum, 20
21 Serie 3 Aufgabe 3 b) private static int parsesubtree(string kd, int position) throws ParseException { position = parsetree(kd, position); while (checkchar(',', kd, position)) { position += 1; position = parsetree(kd, position); return position; parsechildren() Nachfolger Baum, 21
22 Serie 3 Aufgabe 3 b) private static int parsenode(string kd, int position) throws ParseException { if (position >= kd.length()) throw new ParseException("Expected a node", position); char c = kd.charat(position); if (Character.isUpperCase(c)) return position + 1; else throw new ParseException(String.format( "'%c' is not a valid node name", c), position); 22
23 Demo: Debugging mit Eclipse 23
24 Stacks 24
25 Stacks: Theorie Stack = Stapel Nur auf oberstes Element Zugriff LIFO Beispiele Funktionsstack (siehe Aufgabe 3 und TI1 im 3. Semester) Klammerung 25
26 Beispiel: Klammercheck public static boolean check(string s) { Stack<Character> stack = new Stack<Character>(); for(int i = 0; i < s.length(); i++) { switch(s.charat(i)) { case '(': stack.push('('); break; case ')': if(stack.isempty()) { return false; if(stack.pop()!= '(') { return false; break; return stack.isempty(); 26
27 Serie 3 27
28 Aufgabe 1 Konstruktor Array mit gegebener Kapazität initialisieren tostring() Format: [i0, i1,, i(n-1)] StringBuffer: buf.append( earp ); 28
29 Aufgabe 1 grow() Kapazität verdoppeln, kopieren Arrays.copyOf(...) push(), pop(), empty() Falls nötig grow aufrufen peek() Oberstes Element zurückgeben aber nicht entfernen size() Aktuelle Grösse capacity() Wie viele Elemente passen hinein? 29
30 Aufgabe 2 Ackermann-Funktion Wächst extrem schnell: A(3, 3) = 61 Wilhelm Ackermann ( , Deutchland) A(4, 2) Sinn: Die theoretischen Informatiker findens cool :) 30
31 Aufgabe 2 b) Pseudocode Nicht sprachspezifisch Alles erlaubt, so lange man es versteht selbsterklärend 31
32 Aufgabe 2 b) Pseudocode Bitte kein Brainfuck ( > [< >-]<++.>++++++[< >-]< >++++[<---- >-]<-.>++[<+++ >-]< >++[<--- >-]<--.>+++ [<++++ >-]<+++.>++++[<---- >-]<--.>++[<+++ >-]<++.> [< >-]<---.> [< >-]<+.>+++[<+++ >-]<+. +.> [< >-]<---.> [< >-]< >+++[<--- >-]<.> [< >-]<-----.> [< >-]< >++[<--- >-]<--.--.>+++[<+++ >-]<.>+++[<---- >-]<-.>+++[<++++ >-]< >+++[<---- >-]<---.> [< >-]<-----.> [< >-]<+++++.>+++[<++++ >-]< >+++[<---- >-]<---.>+++[<++++ >-]<+.>+++[<--- >-]<.>+++[<+++ >-]<+.>++++[<---- >-]< > [< >-]<-----.>++++++[< >-]< >++ +++[< >-]< >++[<--- >-]<--.>+++[<+++ >-]<++.>++++[<---- >-]<-.>+++[<++++ >-]< >+++[<++++ >-]< >++++[<---- >-]< > [< >-]<-.>+++[<---- >-]<.> [< >-]<+++++.>+++[<+++ >-]< >++[<--- >-]< >+++[<---- >-]<.-.>+++[<+++>-]<.> [< >-]< > [< >-]< >++[<--->-]<-.--.> [< >-]<-----.> [< >-]<++.>++++[<++++ >-]< >+++[<++++ >-]<+++.>+++ +[<---- >-]< >++++[<++++ >-]<+.>++++[<----- >-]<-.>+++[<++++ >-]<+.> [< >-]<-.> [< >-]<++++.>+++++[<+++++>-]<++++.>++++[<---- >-]<.-.>+++[<++++ >-]<+.> [< >-]< >++++++[< >-]<+ ++.>++++++[< >-]<++++.>++++[<---- >-]<.>++[<+++ >-]<+..>++[<--->-]<-.>+++[<++++ >-]<+.> [< >-]<-.> [< >-]<++++.>++[<--- >-]<--.> [< >-]<-----.>++++[<++++ >-]<+.>++[<+++ >-]< >+ ++[<---- >-]<--.>++++++[< >-]<.>++++++[< >-]< > [< >-]<-----.> [< >-]<++.>++ +++[<+++++ >-]< >++++[<---->-]< > [< >-]<-----.> [< >-]< >+++ [<---- >-]<--.>+++[<+++ >-]<.>+++[<---- >-]<--.> [< >-]<----.> [< >-]<+++++.>+++[<---- >-]<.>++ +[<++++ >-]<+.>+++[<--- >-]< >+++[<---- >-]<.>+++[<+++ >-]<++.> [< >-]<----.> [< >-]<+.>++++[<+++++ >-]<.>++++[<---- >-]< > [< >-]<.>+++++[<++++++>-]<++++.>++++++[< >-]< >++++[<---- >-]<-.>++[<+++ >-]< >++[<--- >-]<--.> [< >-]<----.> [< >-]<+.>++ [<+++ >-]<++.> [< >-]< >+++[<---- >-]<.>+++++[< >-]<++++.>++++++[< >-]< >++++[<---- >-]<-.>++[<+++ >-]< >++[<--- >-]<--.> [< >-]< >+++[<--- >-]<-.> [< >-]< >+ ++[<--- >-]<--.+.>+++[<++++ >-]<+.> [< >-]<-.>+++++[< >-]< >++++++[<
33 Aufgabe 2 c) Ackermann: N 2 N Braucht zwei Argumente, gibt ein Resultat zurück Die Argumente sind immer zuoberst auf dem Stack Was, wenn nur noch eine Zahl auf dem Stack liegt? Stack stack = new Stack(); stack.push(4); stack.push(7); while(stack.size()!= 1) {... Benutzt Stack aus A1 oder (falls ihr A1 nicht geschafft habt) java.util.stack<integer> 33
34 Aufgabe 3 Vergleich C / C++ Java C wird für eine bestimmte Architektur kompiliert und kann dort direkt ausgeführt werden Java wird zu Bytecode kompiliert Dieser wird von der Java Virtual Machine interpretiert 34
35 Aufgabe 3: Beispiel: C++ int function(int a, int b) { return a + b; int main() { printf("%d\n", function(1, 2)); return 0; 35
36 Aufgabe 3: Beispiel Assember (Linux) <function>: 0: 55 push %rbp 1: e5 mov %rsp,%rbp 4: 89 7d fc mov %edi,-0x4(%rbp) 7: f8 mov %esi,-0x8(%rbp) a: 8b 45 f8 mov -0x8(%rbp),%eax d: 8b 55 fc mov -0x4(%rbp),%edx 10: 01 d0 add %edx,%eax 12: 5d pop %rbp 13: c3 retq <main>: 14: 55 push %rbp 15: e5 mov %rsp,%rbp 18: be mov $0x2,%esi 1d: bf mov $0x1,%edi 22: e callq 27 <main+0x13> 27: 89 c6 mov %eax,%esi 29: bf mov $0x0,%edi 2e: b mov $0x0,%eax 33: e callq 38 <main+0x24> 38: b mov $0x0,%eax 3d: 5d pop %rbp 3e: c3 retq 36
37 Aufgabe 3: Beispiel Assember (AVR) <function>: 0: cf 93 push r28 2: df 93 push r29 4: 00 d0 rcall.+0 ; 0x6 <function+0x6> 6: cd b7 in r28, 0x3d ; 61 8: de b7 in r29, 0x3e ; 62 a: std Y+1, r24 ; 0x01 c: 6a 83 std Y+2, r22 ; 0x02 e: ldd r25, Y+1 ; 0x01 10: 8a 81 ldd r24, Y+2 ; 0x02 12: 89 0f add r24, r25 14: 0f 90 pop r0 16: 0f 90 pop r0 18: df 91 pop r29 1a: cf 91 pop r28 1c: ret e <main>: 1e: cf 93 push r28 20: df 93 push r29 22: cd b7 in r28, 0x3d ; 61 24: de b7 in r29, 0x3e ; : 62 e0 ldi r22, 0x02 ; 2 28: 81 e0 ldi r24, 0x01 ; 1 2a: 00 d0 rcall.+0 ; 0x2c <main+0xe> 2c: 88 2f mov r24, r24 2e: 90 e0 ldi r25, 0x00 ; 0 30: 29 2f mov r18, r25 32: 2f 93 push r18 34: 8f 93 push r24 36: 80 e0 ldi r24, 0x00 ; 0 38: 90 e0 ldi r25, 0x00 ; 0 3a: 89 2f mov r24, r25 3c: 8f 93 push r24 3e: 80 e0 ldi r24, 0x00 ; 0 40: 90 e0 ldi r25, 0x00 ; 0 42: 8f 93 push r24 44: 00 d0 rcall.+0 ; 0x46 <main+0x28> 46: 0f 90 pop r0 48: 0f 90 pop r0 4a: 0f 90 pop r0 4c: 0f 90 pop r0 4e: 80 e0 ldi r24, 0x00 ; 0 50: 90 e0 ldi r25, 0x00 ; 0 52: df 91 pop r29 54: cf 91 pop r28 56: ret 37
38 Aufgabe 3: Vergleich Java public class Bytecode { public static int function(int a, int b) { return a + b; public static void main(string[] args) { System.out.println(function(1, 2)); 38
39 Aufgabe 3: Java Bytecode public class Bytecode { public Bytecode(); Code: 0: aload_0 1: invokespecial #8 // Method java/lang/object."<init>":()v 4: return public static int function(int, int); Code: 0: iload_0 1: iload_1 2: iadd 3: ireturn public static void main(java.lang.string[]); Code: 0: getstatic #21 // Field java/lang/system.out:ljava/io/printstream; 3: iconst_1 4: iconst_2 5: invokestatic #27 // Method function:(ii)i 8: invokevirtual #29 // Method java/io/printstream.println:(i)v 11: return 39
40 Aufgabe 3 Versucht, den Bytecode zu verstehen Wie funktioniert Rekursion intern auf dem Prozessor? Ausführung: javac JavaTip.java //compiler java JavaTip //run javap c private JavaTip //disassembler Oder einfach Class File ins Eclipse reinziehen 40
41 Happy Hasensuchen! 41
Praktikum Compilerbau Sitzung 9 Java Bytecode
Praktikum Compilerbau Sitzung 9 Java Bytecode Prof. Dr.-Ing. Gregor Snelting Matthias Braun und Sebastian Buchwald IPD Snelting, Lehrstuhl für Programmierparadigmen KIT Universität des Landes Baden-Württemberg
1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)
Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende
II.1.1. Erste Schritte - 1 -
! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am
Java-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.
Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens
Primitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein ([email protected]) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. [email protected]. [email protected].
1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack [email protected] Klaas Boesche [email protected] Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache
Grundlagen zur nebenläufigen Programmierung in Java
Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei
Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe
Java: Eine Übersicht Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe Allgemeines Objektorientiert Syntaxfamilie von C/C++ Statisch getypt Entwickelt von Sun Microsystems class
Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
Programmentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein ([email protected].
Java Crashkurs Kim-Manuel Klein ([email protected]) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollsttukturen - 1 - 3. Anweisungen und Kontrollstrukturen
1.2 Attribute und Methoden Aufbau einer Java-Klasse:
Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){
HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen.
HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen OOPM, Ralf Lämmel (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 562 Motivation abstrakter
Informatik II. /* c) Baumstruktur in einen String schreiben und zurueckgeben */ public String tostring() {
Universität Augsburg, Institut für Informatik Sommersemester 2006 Prof. Dr. Werner Kießling 08. Juni. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Cloneable Tree.java Informatik II
Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions
try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des
Große Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 [email protected] http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
Java für C++ Programmierer
Java für C++ Programmierer Alexander Bernauer [email protected] Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?
Einführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
Einführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems
13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung
Informatik II. PVK Part1 Severin Wischmann [email protected] n.ethz.ch/~wiseveri
Informatik II PVK Part1 Severin Wischmann [email protected] n.ethz.ch/~wiseveri KAUM JAVA Kaum Java Viel Zeit wird für Java-spezifisches Wissen benützt Wenig wichtig für Prüfung Letztjähriger Assistent
Vorkurs Informatik WiSe 15/16
Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan
J.5 Die Java Virtual Machine
Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class
Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff
Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.
Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
Datenbankanwendungsprogrammierung Crashkurs Java
Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung
Tutorium Java Ein Überblick. Helge Janicke
Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren
1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden
Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");
Einstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
Aufgabenblatt Nr. 5 Generizität und TicTacToe
Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung
Probeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
Kontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel
Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String
Erster Kontakt mit Java und Pseudocode
Erster Kontakt mit Java und Pseudocode CoMa-Übung II TU Berlin 23.10.2013 CoMa-Übung II (TU Berlin) Erster Kontakt mit Java und Pseudocode 23.10.2013 1 / 27 Themen der Übung 1 Java auf meinem Rechner 2
public class SternchenRechteckGefuellt {
Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und
Musterlösungen zur Klausur Informatik 3
Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus
Probeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou ([email protected]) 22./23. Oktober 2015
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou ([email protected]) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse
Java: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
Verteilte Systeme CS5001
Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,
JAVA - Methoden
Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können
Java Virtual Machine (JVM) Übersicht
Java Virtual Machine (JVM) Alan Dingwall [email protected] Übersicht Was ist die Java Virtual Machine DasClass File Format Aufbau der JVM Kompilation.java.class Fazit Quellennachweise Was ist die JVM Abstrakter
Vorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm
Speicherstrukturen. Aufgabe 1-1: Fragen zu FAT (File Allocation Table) Aufgabe 1-2: Datensätze variabler Länge. Kind.java:
Institut für Datenbanken und Informationssysteme Prof. Dr. M. Reichert, M. Predeschly, J. Kolb Lösung für Übungsblatt 1 Aufgabe 1-1: Fragen zu FAT (File Allocation Table) 1. Im Bootsektor der Festplatte
Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung
Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung [email protected] 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben
Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.
Hochschule Harz Programmierung1 Tutorial 11: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Sortieren und generische Klassen Versuchsziele Kenntnisse
Programmdokumentation
Programmdokumentation Der 1. Abgabe am 29.10.1998 über das 1. und 2. Programm INHALTSVERZEICHNIS: 1 ERSTES PROGRAMM: RECHNUNGSERSTELLUNG... 2 1.1 MODULARISIERUNG UND DATENSTRUKTUR... 2 1.1.1 Grundidee:
Software-Engineering Software-Management
Software-Engineering Software-Management 12.3 Unit-Tests mit JUnit - Wissen, was der Sourcecode macht! Lösung Prof. Dr. Rolf Dornberger Software-Engineering: 12.3 Unit-Tests mit JUnit 30.04.2006 1 12.3
1. Der Einstieg in Java. Was heißt Programmieren?
1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung
Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
Übung zur Vorlesung Einführung in Software Engineering
Übung zur Vorlesung Einführung in Software Engineering Wintersemester 2012/13, Richard Bubel und Martin Hentschel Übungsblatt 5: Testen Abgabeformat: Reichen Sie Ihre Lösung per SVN als eine PDF-Datei
(06 - Anwendungen von Stapeln und Schlangen)
Vorlesung Algorithmen und Datenstrukturen (06 - Anwendungen von Stapeln und Schlangen) Prof. Dr. Susanne Albers Lineare Listen (1) Lineare Anordnung von Elementen eines Grundtyps (elementarer Datentyp
Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
Programmieren in Java
Programmieren in Java Fehlerbehandlung und Ein- und Ausgabe Titel der Präsentation 2 Fehler = Exceptions? Die Exception- bzw. Ausnahmebehandlung in Java ist eine spezielle Form der Fehlerbehandlung Typischerweise
Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung
Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des
Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen
Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere
Binärbäume. Prof. Dr. E. Ehses, 2014 1
Binärbäume Grundbegriffe der Graphentheorie Bäume und Ihre Anwendungen Unterschiedliche Darstellungen von Bäumen und Binärbäumen Binärbäume in Java Rekursive Traversierung von Binärbäumen Ebenenweise Traversierung
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
im Rahmen des Seminars - Programmiersprachen Markus Nestvogel
C# im Rahmen des Seminars - Programmiersprachen Markus Nestvogel 2 Gliederung 1. Einführung 2. Microsoft.NET 3. C# 3 1 Einführung objektorientierte Programmiersprache für Microsoft.NET entwickelt Konkurrenz
Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel
Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel Übungsblatt 10 - Lösungshilfe Aufgabe 1. CRC-Karten (7 Punkte) Es geht um die Modellierung der folgenden Bibliotheks-Anwendung:
Programmierung. Programme, Compiler, virtuelle Maschinen, Java
Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i
Programmierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1
Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen
Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.
Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden
Eclipse 3.0 (Windows)
Eclipse Seite 1 Eclipse 3.0 (Windows) 1. Eclipse installieren Eclipse kann man von der Webseite http://www.eclipse.org/downloads/index.php herunterladen. Eclipse ist für Windows, Mac und Linux erhältlich.
IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken
IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken Im Folgenden finden Sie jeweils die korrekte Antwort zu den im Buch abgedruckten Prüfungsfragen, soweit die Antworten in Textform
II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
Übungen Informatik I. JAVA - Einführung. elga Gabler, Holger Vogelsang, Christian Pape. Übungen Informatik 1 Folie 1
Übungen Informatik I JAVA - Einführung Übungen Informatik 1 Folie 1 Warum Java? Java ist derzeit die Programmiersprache für das Internet. Java ist ein Programmierkonzept der Zukunft. Objekt-orientierte
Grundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
Lösungsvorschläge. zu den Aufgaben im Kapitel 4
Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere
Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR
Rainer Stropek cubido Baumschule Expression Trees in C#, CLR und DLR Inhalt Als Anwendungsentwickler kommt man selten mit Expression Trees in Berührung. Sie sind ein Implementierungsdetail von LINQ. Ihre
Buffer Overflow 1c) Angriffsstring: TTTTTTTTTTTTTTTT (16x) Beachte: Padding GCC-Compiler Zusatz: gcc O2 verhindert hier den Angriff (Code Optimierung)
Buffer Overflow 1c) 1 char passok='f'; 2 char password[8]; 3 printf( Passwort: ); 4 gets(password); 5 if(!strcmp(password, daspassw )){passok = 'T';} 6 if(passok=='t'){printf( %s, Willkommen! );} 7 else
1. Der Einstieg in Java
1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen
Karlsruher Institut für Technologie
Karlsruher Institut für Technologie Lehrstuhl für Programmierparadigmen Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting Übungsleiter: Matthias Braun Lösung zu Übungsblatt
Beispiel: DB-Mock (1/7)
Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau
Software Engineering I
Software I Übungsblatt 1 + 2 Claas Pinkernell Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Welche Werkzeuge? Programmiersprache Java Integrierte Entwicklungsumgebung Eclipse
TCP/IP Programmierung. C# TimeServer Java6 TimeClient
TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7
Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003
Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik
Vergleich verschiedener OO-Programmiersprachen
Vergleich verschiedener OO-Programmiersprachen - Schnellumstieg in 15 Minuten - C++ Java Visual C++ C# Programmbeispiel in Visual C++, C#, Java und C++ Dr. Ehlert, Juni 2012 1 Inhaltsverzeichnis 1. Problemstellung
Java Programmierung auf der Konsole / unter Eclipse
Fakultät Informatik, HFU Brückenkurs Programmieren 1 Java Programmierung auf der Konsole / unter Eclipse Allgemeine Begriffe Programmiersprache: künstliche Sprache zur Notation von Programmen Programm:
Rekursion. Was heißt "rekursiv" Page 1. Eine Methode m() heißt rekursiv, wenn sie sich selbst aufruft. Beispiel: Berechnung der Fakultät (n!
Rekursion Was heißt "rekursiv" Eine Methode m() heißt rekursiv, wenn sie sich selbst aufruft m() { m(); direkt rekursiv m() { n() { m(); indirekt rekursiv Beispiel: Berechnung der Fakultät (n!) n! = 1
Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A.
»Programmieren«, WS 006/007 Nino Simunic ([email protected]) Übungsblatt 4 Aufgabe 1 OOP In dieser Aufgabe sollen Sie Autos als Klasse Car modellieren. Die Eigenschaften auf attributiver Ebene sind:
Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden
Exceptions Fehler die bei der Programmerstellung passieren können teilweise vom Compiler erkannt werden int a; double b=10; a = 10 * b; System.out.println(a); Fehler die während der Programmausführung
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
Java für Anfänger Teil 1: Intro. Programmierkurs 11.-15.10.2010 Manfred Jackel
Java für Anfänger Teil 1: Intro Programmierkurs 11.-15.10.2010 Manfred Jackel 1 1. Handwerkszeug Eclipse Workbench mit Java-Compiler Java Runtime Environment Notwendige Software Java Runtime Environment
