Institut für Informatik
|
|
- Babette Kalb
- vor 6 Jahren
- Abrufe
Transkript
1 Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 6 Prof. R. Westermann, A. Lehmann, R. Fraedrich, F. Reichl Anmerkung: Da viele Fragen zur Diskussion anregen sollen, sind die hier vorgestellten Antworten lediglich als Lösungsskizze zu verstehen. Objektorientierung II, Datenstrukturen I 6.1 (Ü) Wiederholung: Klassen und Objekte Anmerkung: Diese Aufgabe dient als Wiederholung der Grundlagen der objektorientierten Programmierung. Aufgabe 6.2 soll Ihr Wissen aus der letzten Übung anschließend praktisch vertiefen. Welche der folgenden Aussagen sind richtig, welche sind falsch? Verbessern Sie Falschaussagen! (a) Bei Objekten handelt es sich um konkrete Instanzen von Klassen. Beispielsweise wäre die Gattung Mensch eine Klasse und der Mensch Max Mustermann ein Objekt. (b) Klassenvariablen und -methoden werden in den Klassen, Objektvariablen und -methoden in den Objekten deklariert. (c) Mit Getter-Methoden werden neue Instanzen einer Klasse erzeugt. (d) Alle in Java vordefinierten Datentypen sind sogenannte primitive Datentypen, selbst erstellte Typen bezeichnet man als Klassen. (e) Die Werte von primitiven Typen werden direkt in den entsprechenden Variablen gespeichert, während im Fall von Klassen nur eine Referenz auf den Ort im Speicher, an dem sich das jeweilige Objekt befindet, in der Variable gespeichert ist. (f) Mit Hilfe der Sichtbarkeiten public (allgemein zugänglich) und private (gar nicht von außerhalb der Klasse zugänglich) lässt sich der Zugriff auf Variablen und Methoden von Klassen bzw. Objekten beschränken. (a) Richtig. (b) Falsch. Alle Variablen und Methoden werden in der Klasse deklariert, allerdings erfolgt der Zugriff je nach Typ, über die Klasse oder eine konkrete Instanz. (c) Falsch. Getter-Methoden sind eine Zugriffsmöglichkeit auf nach außen verborgene Eigenschaften eines Objekts. Zum Erstellen einer neuen Instanz wird ein Konstruktor verwendet. 1
2 (d) Falsch. In den Java-Bibliotheken sind unzählige Klassen vordefiniert (z.b. String). Primitive Datentypen sind lediglich klein geschriebene Typen (z.b. int, double, char, boolean). (e) Richtig. (f) Richtig. 6.2 (Ü) Adressbucheintrag Ein Kontakteintrag für einen Freund in einem Adressbuch kann durch eine einfache Klasse de.tum.ws2010.propra.blatt06.addressbook.friend beschrieben werden. Erstellen Sie eine solche Klasse, die den Vornamen, den Nachnamen und die adresse eines Freundes als private Attribute enthält. Im Konstruktor sollen diese 3 Angaben als Parameter übergeben werden. Man soll wie folgt auf die Eigenschaften der Klasse zugreifen können: (a) public String getfirstname() Liefert den Vornamen zurück. (b) public String getlastname() Liefert den Nachnamen zurück. (c) public String get address() Liefert die adresse zurück. (d) public boolean set address(string address) Setzt die adresse und gibt true zurück, wenn der übergebene String enthält. Wenn enthalten ist, soll die adresse nicht geändert und false zurückgegeben werden. (e) public String tostring() Liefert alle Informationen über einen Kontakt in einem String zurück. Implementieren Sie außerdem einen zusätzlichen Konstruktor, der lediglich Vor- und Nachname übergeben bekommt und die adresse als leeren String initialisiert. Wieso kann es sinnvoll sein, für Vor- und Nachname keine Setter zu implementieren, sondern diese ausschließlich im Konstruktor festzulegen? In einer späteren Aufgabe werden wir ein sortiertes Adressbuch implementieren. Für diese Sortierung ist es notwendig (und hinreichend), wenn man zu je zwei gegebenen Kontakten bestimmen kann, in welcher Reihenfolge sie im Adressbuch stehen sollten. Als Reihenfolge wählen wir die übliche Telefonbuchsortierung (zuerst Nachname, dann Vorname). Implementieren Sie hierzu die Methode public int compareto ( Friend c2) die für einen beispielhaften Aufruf c1.compareto(c2) eine negative Zahl, 0 oder eine positive Zahl zurückliefert je nachdem, ob c1 vor c2 einsortiert werden soll, die beiden Kontakte identisch sind oder c1 nach c2 einsortiert werden soll. Um Strings lexikographisch zu vergleichen, bedienen Sie sich der Objektmethode int compareto ( String anotherstring ) 2
3 der Klasse String. Lesen Sie sich dazu die entsprechende Beschreibung dieser Funktion in der Java API-Referenz durch: Siehe beiligende.java-files. 6.3 (Ü) Fragen zu Listen (a) Wie sieht eine einfach verkettete Liste aus? (b) Man kann eine Klasse List entweder mit Hilfe eines Arrays oder mit Hilfe einer verketteten Liste implementieren. Diskutieren Sie Vor- und Nachteile dieser beiden Herangehensweisen. (a) Eine mögliche Modellierung einer einfach verketteten Liste sehen Sie in Abbildung 1. private Element firstelement; class Element { //... private Element nextelement; class Element { //... private Element nextelement; class Element { //... private Element nextelement; null Abb. 1: Einfach verkettete Liste mit drei Elementen (Instanzen der Klasse Element) Sie benötigen hierbei außerdem eine umgebende Klasse SinglyLinkedList, die eine Referenz auf das erste Element der Liste enthält (in der Grafik ist dies durch private Element firstelement dargestellt) und die Methoden zum Hinzufügen, Entfernen und Suchen von Elementen bereitstellt. Im Falle einer leeren Liste enthielte die Variable firstelement entsprechend den Wert null. (b) Array: 3
4 Direkter Zugriff auf das i-te Element (+) Wenig Speicheroverhead, da keine Referenzen zwischen Elementen zur Verwaltung benötigt werden. (+) Fest beschränkte Kapazität (-) Verkettete Liste: Dynamische Größe (+) Einfaches Einfügen und Entfernen von Elementen an beliebiger Position (+) Ausschließlich sequentieller Zugriff (-) Erhöhter Speicheroverhead durch notwendige Referenzen zwischen Elementen zur Verwaltung (-) 6.4 (Ü) Listen Anmerkung: Diese Aufgabe dient als Vorbereitung auf Aufgabe 6.5. Wenn Sie das Konzept der verketteten Liste bereits gut verstanden haben, kann sie sehr schnell bearbeitet werden. Im Folgenden wird eine Möglichkeit vorgestellt, eine einfach verkettete Liste zu implementieren. Zunächst wird eine Klasse benötigt, die ein einzelnes Element der Liste speichert, in diesem Fall ein int. Weiterhin enthält die Klasse eine Referenz auf das nachfolgende Element. Der Wert null bedeutet, dass kein nachfolgendes Element existiert. class IntElement { public int value ; public IntElement next = null ; IntElement ( int i) { value = i; Die eigentliche Liste wird in der Klasse de.tum.ws2010.propra.blatt06.list.intsinglylinkedlist implementiert. Die Referenz auf erste Element der Liste wird in der Variable firstelement gespeichert. public class IntSinglyLinkedList { private IntElement firstelement = null ; public void add ( int v) { IntElement item = new IntElement ( v); item. next = firstelement ; firstelement = item ; 4
5 public boolean deleteelementatindex ( int i) { if ( firstelement == null ) { // Empty list. return false ; if (i == 0) { // Special case for the first item. firstelement = firstelement. next ; return true ; int counter = 0; IntElement curr = firstelement ; IntElement prev = null ; while ( curr!= null ) { if ( counter == i) { prev. next = curr. next ; return true ; ++ counter ; prev = curr ; curr = curr. next ; // No such item. return false ; public String tostring () { String result = ""; for ( IntElement curr = firstelement ; curr!= null ; curr = curr. next ) { result += curr. value ; if ( curr. next!= null ) { result += ", "; return "[" + result + "]"; public static void main ( String [] args ) { IntSinglyLinkedList list = new IntSinglyLinkedList (); list. add (1); list. add (2); list. add (8); System. out. println ( list ); list. deleteelementatindex ( 1); System. out. println ( list ); 5
6 Aufgaben: (a) Was ist die Ausgabe dieses Programmes? (b) Erklären Sie den Nutzen der Variable prev in der Methode boolean deleteelementatindex ( int i) (c) Wann gibt boolean deleteelementatindex ( int i) den boolschen Wert true zurück und wann false? (d) Erstellen Sie nun eine Objektmethode public boolean de lete AllO ccure nces Of ( int value ) die alle Vorkommen einer gegebenen Zahl value aus der Liste entfernt. (a) Die Ausgabe des Beispiels lautet: [8, 2, 1] [8, 1] (b) Die Referenz prev erfüllt beim Durchlaufen der Liste den Zweck, stets nicht nur auf das aktuell betrachtete, sondern auch auf das vorhergehende Element zugreifen zu können. Das ist wichtig, da dessen next-referenz beim Löschen eines Eintrags neu gesetzt werden muss. (c) Der Aufruf von deleteelementatindex(int i) liefert true zurück, wenn das Element am Index i gelöscht wurde (der erste gültige Index ist 0), andernfalls false. (d) Siehe beiliegende.java-files. 6.5 (Ü) Adressbuch als verkettete Liste Realisieren Sie nun ein Adressbuch mit Hilfe einer einfach verketteten Liste basierend auf den einzelnen Friend-Einträgen aus Aufgabe 6.2. Wenn Sie diese Aufgabe nicht vollständig gelöst haben, importieren Sie stattdessen de.tum.ws2010.propra.blatt06.solution.addressbook.friend die Klasse wird automatisch aus dem beiliegenden.jar-archiv geladen. Erstellen Sie nun die Klasse AddressBookItem, die eine Referenz auf eine Instanz von Friend und eine Referenz next auf den jeweils nächsten Adressbucheintrag enthält. Implementieren Sie eine neue Klasse ListAddressBook mit folgenden Methoden: (a) public int getnumentries() Zählt die Anzahl der Adressbucheinträge und gibt das Ergebnis zurück. (b) public boolean isfriend(friend f) Prüft, ob die übergebene Friend-Referenz bereits im Adressbuch vorhanden ist. (c) public void addfriend(friend f) Fügt einen Eintrag zu dem Adressbuch hinzu, falls dieser noch nicht vorhanden ist. 6
7 (d) public void deletefriend(friend f) Löscht den Eintrag f aus dem Adressbuch. Falls der Eintrag nicht existiert, soll eine Fehlermeldung ausgegeben werden. (e) public Friend[] getentries(string name) Sucht alle Adressbucheinträge, die name entweder als Vor- oder Nachnamen enthalten und gibt diese Einträge in einem Array mit der entsprechenden Länge zurück. Ist kein solcher Eintrag vorhanden, soll ein Array der Länge 0 zurückgegeben werden. (f) (Optional) public String tostring() Gibt alle Elemente der Liste konkateniert in einem String zurück. (g) (Optional) Schreiben Sie die Funktion addfriend(friend f) entsprechend um, so dass der neue Kontakt f so in die Liste der AddressBookItems eingefügt wird, dass diese immer aufsteigend gemäss der Methode Friend.compareTo(Friend otherfriend) sortiert ist. (h) (Optional) public void merge(listaddressbook addressbook) Fügt alle Kontakte aus dem gegebenen Adressbuch ein. Duplikate sollen übersprungen werden. Ausserdem soll das Adressbuch analog zur vorherigen Aufgabe sortiert bleiben. Testen Sie Ihre Liste mit geeigneten Ein- und Ausgaben. Siehe beiligende.java-files. 6.6 (H) Notenrechner (+++) Erstellen Sie einen Notenrechner für die Veranstaltungen in Ihrem Studium. Sie benötigen hierzu eine Klasse StudyEvent, die die Veranstaltungen kapselt. Jede Veranstaltung hat einen Titel, ECTS Punkte, Informationen über Ihre erreichte Note und das Semester (z.b. "WS2010"), in dem Sie in der Veranstaltung geprüft wurden. Überlegen Sie sich, welche Objekt-Variablen die Klasse benötigt und denken Sie daran diese vor dem Zugriff von außen zu schützen. Schreiben Sie zunächst die Klasse StudyEvent nach folgenden Vorgaben: (a) public StudyEvent(String title, int ects, String semester, double grade) Konstruktor, der eine Veranstaltungen (mit Titel und den dazugehörigen ECTS Punkten) mit einer bereits abgelegter Prüfung (mit der Note und dem entsprechenden Semester) erstellt. (b) public StudyEvent(String title, int ects) Konstruktor, der eine Veranstaltung nur mit Titel und ECTS Punkten anlegt, ohne dass eine Prüfung abgelegt wurde. Überlegen Sie sich, wie Sie die Note und das Prüfungsemester in diesem Fall initialisieren wollen. (c) public String gettitle() Gibt den Titel der Veranstaltung zurück. (d) public int getectscredits() Gibt die ECTS Punkte zurück. (e) public double getgrade() Gibt die gespeicherte Note zurück. (f) public String getsemester() Gibt das Semster zurück, in dem die Note erworben wurde. 7
8 (g) public void setexam(string semester, double grade) Setzt das Semester der Prüfung und die erreichte Note für die Veranstaltung. Prüfen Sie hier, ob es sich bei der übergebenen Note um einen regulären Wert (1.0, 1.3, 1.7,..., 3.7, 4.0, 5.0) handelt. Andernfalls soll die Note und das Semester unverändert bleiben. Stellen Sie außerdem sicher, dass die Note einer bereits bestandenen Veranstaltung nicht mehr verbessert werden kann. (h) public boolean passedexam() Gibt true zurück, wenn eine Prüfung in der Veranstaltung bereits abgelegt und bestanden wurde (Note 4,0), sonst wird false zurückgegeben. (i) public String tostring() Gibt alle relevanten Informationen über die Veranstaltung als String zurück. Implementieren Sie nun die Klasse GradeCalculator zur Berechnung vom Notendurchschnitt über beliebig viele Veranstaltungen. Überlegen Sie sich, mit welcher Datenstruktur Sie eine beliebige Anzahl von Veranstaltungen speichern können und implementieren Sie selbständig die dazu benötigte(n) Hilfsklasse(n). Die Klasse GradeCalculator soll nun folgende Methoden nach außen zur Verfügung stellen: (j) public static void addevent(studyevent event) Fügt eine neue Veranstaltung zu dem Notenrechner hinzu. (k) public static void listallevents() Listet alle Veranstaltungen mit Titel und ECTS auf. (l) public static void listallpassedevents() Listet alle Veranstaltungen mit Titel, Semester, Note und ECTS auf, die schon bestanden wurden. (m) public static double getfinalgrade() Berechnet die Endnote aus den bestandenen Veranstaltungen. Die Endnote berechnet sich aus der gewichteten Summe der Noten und ECTS Punkten. Gesamtnote = 1 n i=1 ects (note 1 ects 1 + note 2 ects note n ects n ) i (n) public static double getaveragesemestergrade(string semester) Berechnet den durch die ECTS gewichteten Notendurchschnitt für die bestandenen Prüfungen im angegebenen Semester. Bei der Ausführung der Methode soll außerdem eine solche Formatierung auf der Konsole ausgegeben werden: SS2004 -> 1.60 Die Durchschnittsnoten sollen auf zwei Stellen gerundet werden. Testen Sie Ihr Programm mit geeigneten Ein- und Ausgaben. Implementieren Sie gegebenfalls sinnvolle Hilfsfunktionen. Erstellen Sie alle benötigten Klassen im Package de.tum.ws2010.propra.blatt06.gradecalculator 8
9 Siehe beiligende.java-files. 9
Institut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Aufgabenblatt 4 Prof. R. Westermann, A. Lehmann,
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 4 Prof. R. Westermann, A. Lehmann, R.
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrPraktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14
Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuß, Henning Timm Übungsblatt 11
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrObjektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik
Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik Organisatorisches Im Web unter http://www.uni-ulm.de/psh Vorwissen Du kannst bereits Klassen als Typen mit statischen
MehrVariablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel
4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen
MehrProbeklausur: 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,
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrVerkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
MehrADT: Verkettete Listen
ADT: Verkettete Listen Abstrakter typ - Definition public class Bruch int zaehler, nenner; public Bruch(int zaehler, int nenner) this.zaehler = zaehler; this.nenner = nenner; Konstruktor zum Initialisieren
MehrAufgabe 1 (Programmanalyse, Punkte)
2 Aufgabe 1 (Programmanalyse, 8 + 6 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Schreiben Sie hierzu jeweils die ausgegebenen Zeichen hinter den Kommentar OUT:. public class
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
MehrInstitut fu r Informatik
Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013/14 Aufgabenblatt 4 25. November
Mehr3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.
MehrLehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt Objektorientierung
Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 08 12.12.2016 Objektorientierung Aufgabe 8.1. Verschiedenen Variablen Im Folgenden werden
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrInstitut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 5. Dezember 2016 Programmieren I 5. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
MehrPraxis der Programmierung
Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen
MehrALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
MehrHochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6
Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6 Datum, Uhrzeit: 24. 01. 2011, 10.30 Uhr Semester: IN1 Note:... Prüfer: Prof. Meixner Dauer: 60 Min. Hilfsmittel: keine Punkte:... Diese Prüfung
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 10: Mehr zu Arrays & Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Arrays und die Verwendung der ArrayList 2. Teil: Weitere Aspekte
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrEinführung in die Programmierung für NF MI. Übung 04
Einführung in die Programmierung für NF MI Übung 04 Inhalt Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 04 2 Arrays Arrays repräsentieren Reihungen von Objekten, z.b. Variablen
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
MehrAbgabe: (vor 12 Uhr)
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 7 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrVerkettete Listen. DVG Verkettete Listen 1
Verkettete Listen DVG2-03 - Verkettete Listen 1 Primitive typen Vorteile: werden direkt vom Prozessor unterstützt schneller Zugriff schnelle Verarbeitung Nachteile: kleine menge feste Struktur unflexibel
MehrÜbungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit
Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
MehrNachholklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415
Nachholklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415 Alexander Bazo 10. April 2015 Allgemeine Hinweise 1. Die Bearbeitungszeit beträgt 60 Minuten. Sie könne
MehrJAVA KURS COLLECTION
JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrEinführung in die Programmierung für NF MI. Übung 07
Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
MehrProblem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe
Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrC++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
MehrProbeklausur Informatik 2 Sommersemester 2013
Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrInstitut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. April 2013 Programmieren II 10. Übungsblatt Hinweis: Insgesamt werden in diesem Semester fünf
MehrII. 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
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
Mehr7.0 Arbeiten mit Objekten und Klassen
252-0027 Einführung in die Programmierung I 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved.
MehrWiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung
Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 06: Arrays Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Arrays Motivation und Eigenschaften Deklaration, Erzeugung und Initialisierung
MehrJava Einführung Klassendefinitionen
Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse
MehrSilke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch
MehrProgrammierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und
Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und 17.6.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrMethoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrUniversität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer
Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.
MehrII. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
MehrEinführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe
Ludwig-Maximilians-Universität München München, 04.12.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrOrganisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50
Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine
MehrOrganisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr
Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
MehrUmsetzung einer Klassenkarte in einer Programmiersprache
Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,
MehrSchein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock.
Schein-/Bachelorklausur Teil 2 am 13.02.2007 Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock. Alle Studiengänge außer Bachelor melden sich über die Lehrstuhlwebseite
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
MehrADT: Java Collections und ArrayList
ADT: Java Collections und ArrayList Überblick der Klassen Object File Collections Map List Set ArrayList LinkedList SortedSet HashSet SortedSet Methode ArrayList Klasse I Beschreibung void add(int position,
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 10
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Übungsblatt Nr. 10 Aufgabe 20: Code Verständnis Löse diese Aufgabe selbständig als Vorbereitung zur Übung auf dem Papier. a) Gib
MehrSilke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
Mehr1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
MehrAufgaben NF 11; Seite 1
Aufgabe Ref 1: Gegeben ist die Klasse Schueler public class Schueler { private String name, vorname, kurs; // Konstruktor public Schueler(String n, String vn, String k) { name=n; vorname=vn; kurs=k; public
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) ArrayList 0 1 2 Obj0 Obj1 size() - 1 15.12.2014 CuP - VO 2 Auer 1 ArrayList import java.util.arraylist; ArrayList buchliste; buchliste = new ArrayList();
MehrListen. M. Jakob. 20. September Gymnasium Pegnitz
Listen M. Jakob Gymnasium Pegnitz 20. September 2015 Inhaltsverzeichnis 1 Hinführung: Wartenschlangen (6 Std.) 2 Grundprinzip von Listen Rekursion (10 Std.) 3 Die einfach verkettete Liste als Kompositum
Mehr7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
MehrFunktionen nur wenn dann
Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative
MehrListen. M. Jakob. Gymnasium Pegnitz. 20. September Hinführung: Wartenschlangen. Grundprinzip von Listen Rekursion
M. Jakob Gymnasium Pegnitz 20. September 2015 Inhaltsverzeichnis Grundprinzip von Rekursion (10 Std.) Die einfach verkettete Liste als Kompositum (10 Std.) Klasse LISTENELEMENT? Entwurfsmuster Kompositum
MehrKlassen als Datenstrukturen
Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrFakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6
WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Einführung in die strukturierte Programmierung Teil 5 Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile
MehrAlgorithmen und Datenstrukturen
Übung 3: Die generische Klasse BinärerSuchbaum in Java 1 Datenelemente der Klasse BinaererSuchbaum Das einzige Datenelelement in dieser Klasse ist die Wurzel vom Typ BinaerBaumknoten. Die Klasse BinaerBaumknoten
MehrTechnische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl
Name: Vorname: Matr. Nr.: Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl Zwischenklausur zu Einführung in die Informatik I Hinweis: In dieser Zwischenklausur
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen
MehrTag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)
Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration
MehrInformatik Abitur Bayern 2017 / II - Lösung
Informatik Abitur Bayern 2017 / II - Lösung Autoren: Wolf (1) Wagner (2) Scharnagl (3-5) 1a 5 1b Diese Methode vergleicht den Namen des Interpreten eines jeden Elements der Liste mit dem gegebenen Namen.
Mehr