Selbststudium OOP7 & ALG2 Auftrag

Ähnliche Dokumente
Selbststudium OOP Programmieren 1 - H1103 Felix Rohrer

Java Einführung Collections

JAVA KURS COLLECTION

Studentische Lösung zum Übungsblatt Nr. 7

Java Schulung. Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen. Prof. Dr. Nikolaus Wulff

6 Speicherorganisation

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays

Schnittstellen, Stack und Queue

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

java.util. Sebastian Draack Department Informations- und Elektrotechnik Department Informations- und Elektrotechnik JAVA Collection-API

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einstieg in die Informatik mit Java

Selbststudium OOP4 Auftrag

JAVA für Nichtinformatiker - Probeklausur -

Programmierkurs Java

Objektorientierte Programmierung

Programmierkurs Java

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Einführung in die Programmierung für Wirtschaftsinformatik

Java I Vorlesung 6 Referenz-Datentypen

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004)

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays)

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Einstieg in die Informatik mit Java

Java-Schulung Grundlagen

Vorkurs Informatik WiSe 16/17

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

II.3.1 Rekursive Algorithmen - 1 -

public class SternchenRechteckGefuellt {

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Algorithmen und Datenstrukturen

AuD-Tafelübung T-B5b

Programmieren-Tutorium Nr. 10 bei Martin Thoma

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

JAVA - Methoden

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

1 Abstrakte Klassen, finale Klassen und Interfaces

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Einführung in die Programmierung

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Java-Implementierung der Priority-Queue und des Huffman-Algorithmus Effiziente Algorithmen SS12 Übung 4 Aufgabe 5 Johannes Hein

Objektorientierte Programmierung

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Softwareentwicklung Dokumentation mit JavaDoc

Programmieren I. Kapitel 5. Kontrollfluss

4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java)

JAVA Kommentieren mit Javadoc

Rekursion. Was heißt "rekursiv" Page 1. Eine Methode m() heißt rekursiv, wenn sie sich selbst aufruft. Beispiel: Berechnung der Fakultät (n!

Programmieren I + II Regeln der Code-Formatierung

Kasparov versus Deep Blue. Till Tantau. Institut für Theoretische Informatik Universität zu Lübeck

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Wie entwerfe ich ein Programm?

Binärbäume. Prof. Dr. E. Ehses,

Programmieren in Java

Software-Engineering Software-Management

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Grundlagen der Informatik Generische Klassen

Gebundene Typparameter

Musterlösung Stand: 5. Februar 2009

Java Generics & Collections

Neue Features in C# 2.0

Java I Vorlesung Collections

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

SWE1 / Übung 2 ( )

1 Polymorphie (Vielgestaltigkeit)

Richard Bubel & Martin Hentschel

MB2-ALG, SS15 Seite 1 Hauptklausur, geschrieben am

Informatik ist viel mehr als Delphi-Programmierung!

Datenstrukturen in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

Institut fu r Informatik

Ein erstes Java-Programm

Klausur Grundlagen der Programmierung

Informatik II Musterlösung

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Objektorientierung (OO)

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Java Tipps für Lehrer. Table des matières. Einleitung

Transkript:

Selbststudium OOP7 & ALG2 Auftrag Kapitel 5.6 1. zu bearbeitende Aufgaben: 5.24 bis 5.30 5.24: Return Method Set<Map.Entry<K,V>> entryset() V get(object key) Set<K> keyset() V put(k key, V value) void putall(map<? extends K,? extends V> m) V remove(object key) Collection<V> values() Ja, er kann für beide Parameter verwendet werden. 5.25:.size() 5.26: import java.util.hashmap; HashMap Test @author Felix Rohrer @version 1.0 public class MapTester private HashMap<String, String> phonebook; Constructor for objects of class MapTester public MapTester() phonebook = new HashMap<String, String>(); phonebook.put("felix Rohrer (Home)", "+41 41 123 45 67"); phonebook.put("felix Rohrer (Mobile)", "+41 79 123 45 67"); Add a new Entry to the PhoneBook @param Name, Number public void enternumber(string name, String number) phonebook.put(name, number); Get a Number @param Name @return Number public String lookupnumber(string name) return phonebook.get(name); 5.27: Der alte Eintrag wird überschrieben. PRG1_OOP7-ALG2_SS_LV.docx Seite 1 von 6 Lösungsvorschläge erstellt von Felix Rohrer, Tutor PRG1

5.28: Beide Werte werden in der HashMap gespeichert. 5.29: phonebook.containskey( Test ); phonebook.containskey(name); 5.30: Nichts, es wird null zurückgegeben. 2. Für welche Art von "Lookups" sind Maps ideal? Immer wenn Schlüssel-Wert Paare gespeichert werden müssen. Durch den Key können diese sehr schnell abgefragt werden. Kapitel 5.8 3. zu bearbeitende Aufgaben: 5.35 und 5.37 5.35: Es kann RegEx verwendet werden. http://download.oracle.com/javase/6/docs/api/java/util/regex/pattern.html mystring.split( : ); mystring.split( \t ); // tab mystring.split( \n ); // new line 5.37: In einem HashSet kann ein Element nur einmal vorkommen, jedoch ist die Reihenfolge im Vergleich zu einer ArrayList nicht sichergestellt. Kapitel 5.10 4. zu bearbeitende Aufgaben 5.46 bis 5.48. 5.46: done 5.47: @author @version @param @return Diese key-symbols werden in der Dokumentation speziell dargestellt. 5.48: http://download.oracle.com/javase/6/docs/technotes/tools/windows/javadoc.html#javadoctags PRG1_OOP7-ALG2_SS_LV.docx Seite 2 von 6 Lösungsvorschläge erstellt von Felix Rohrer, Tutor PRG1

5. Kommentieren Sie eines Ihrer eigenen Projekte (z.b. Balloon von OOP2) mit Hilfe von javadoc. Kapitel 5.13 6. zu bearbeitende Aufgabe 5.68 public static final double TOLERANCE = 0.001; private static final int PASSMARK = 40; public static final char HELPCOMMAND = 'h'; PRG1_OOP7-ALG2_SS_LV.docx Seite 3 von 6 Lösungsvorschläge erstellt von Felix Rohrer, Tutor PRG1

Algorithmen 7. Man rufe untenstehende Methode mit einem aktuellen Parameter auf. Während der Ausführung betrage die maximale Höhe des Call-Stacks 5. Wie oft wurde demzufolge die Methode coolmethod() insgesamt aufgerufen? public int coolmethod(int n) if (n >= 2) return (coolmethod(n-1) + coolmethod(n-2)); else return n; fünfzehnmal 8. Implementieren Sie den rekursiven Algorithmus zur Berechnung der Fakultät, d.h. eine Methode public long fak(long n), vgl. Folie 9. Beobachten Sie die Berechnung von fak(4) mit dem Debugger. Implementieren Sie den rekursiven Algorithmus zur Berechnung der Fakultät @author Felix Rohrer @version 1.0 public class Fakultaet Constructor for objects of class Fakultaet public Fakultaet() // nothing rekursiven Algorithmus zur Berechnung der Fakultät @param n Wert, für den die Fakultät berechnet wird (n>=0) @return n! public long fak(long n) if ((n == 0) (n == 1)) return 1; // Rekursionsbasis else return (n fak(n-1)); // Rekursionsvorschrift PRG1_OOP7-ALG2_SS_LV.docx Seite 4 von 6 Lösungsvorschläge erstellt von Felix Rohrer, Tutor PRG1

9. Implementieren Sie in Java rekursive Methoden, um ein Array vorwärts und rückwärts ausgeben zu können (vgl. Folien 29 und 30). Dokumentieren Sie die Methode mittels Javadoc. Implementieren Sie in Java rekursive Methoden, um ein Array vorwärts und rückwärts ausgeben zu können @author Felix Rohrer @version 1.0 public class RekArray private int[] myarray = 1,2,3,4,5,10,20,30,40,50,100; Constructor for objects of class RekArray public RekArray() // nothing PrintOut Array forward @param Array Array to print @param Index Current Index public void printforward(int[] a, int index) if (index <= (a.length - 1)) System.out.println("Index: " + index + ", Value: " + a[index]); printforward(a, index + 1); PrintOut Array backward @param Array Array to print @param Index Current Index public void printbackward(int[] a, int index) if (index >= 0) System.out.println("Index: " + index + ", Value: " + a[index]); printbackward(a, index - 1); DoIt Forward public void doitforward() System.out.println("doItForward()..."); printforward(myarray, 0); System.out.println("--------------------------------"); DoIt Backward public void doitbackward() System.out.println("doItBackward()..."); printbackward(myarray, myarray.length - 1); System.out.println("--------------------------------"); doitforward()... Index: 0, Value: 1 Index: 1, Value: 2 Index: 2, Value: 3 Index: 3, Value: 4 Index: 4, Value: 5 Index: 5, Value: 10 Index: 6, Value: 20 Index: 7, Value: 30 Index: 8, Value: 40 Index: 9, Value: 50 Index: 10, Value: 100 doitbackward()... Index: 10, Value: 100 Index: 9, Value: 50 Index: 8, Value: 40 Index: 7, Value: 30 Index: 6, Value: 20 Index: 5, Value: 10 Index: 4, Value: 5 Index: 3, Value: 4 Index: 2, Value: 3 Index: 1, Value: 2 Index: 0, Value: 1 PRG1_OOP7-ALG2_SS_LV.docx Seite 5 von 6 Lösungsvorschläge erstellt von Felix Rohrer, Tutor PRG1

10. Implementieren Sie eine rekursive Methode, welche die Summe aller Integer-Werte eines Arrays berechnet. Dokumentieren Sie die Methode mittels Javadoc. Calc Sum @param Array of Integer to sum up @return sum public long sum(int[] a, int index) if (index <= (a.length - 1)) return a[index] + sum(a, index + 1); else return 0; DoIt CalcSum public void doitcalcsum() long value; System.out.println("doItCalcSum()..."); value = sum(myarray, 0); System.out.println("Sum: " + value); System.out.println("--------------------------------"); doitcalcsum()... Sum: 265 -------------------------------- PRG1_OOP7-ALG2_SS_LV.docx Seite 6 von 6 Lösungsvorschläge erstellt von Felix Rohrer, Tutor PRG1