hue07 December 9, 2016

Größe: px
Ab Seite anzeigen:

Download "hue07 December 9, 2016"

Transkript

1 hue07 December 9, 2016 YOUR ANSWER HERE 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern Tragen Sie Ihre Matrikelnummern und -Adressen zeilenweise in die Zelle oberhalb dieser Zelle ein. Achten Sie dabei streng auf die Formatierung, denn die Auswertung erfolgt automatisch. Benutzen Sie keine Leerzeilen. Zwischen Matrikelnummer und -Adresse muss genau ein Leerzeichen stehen; sonst keine Leerzeichen, Tabs, Spiegelstriche, oder ähnliches in einer Zeile. Wir empfehlen dringend die Benutzung der Uni-Paderborn -Adressen! Format: MatrikelNummer -Adresse MatrikelNummer2 -Adresse2 z.b.: teststudent@mail.upb.de teststudent2@mail.upb.de vorname.nachname@mail.upb.de Hinweis: Das sieht nicht nach separaten Zeilen aus, wenn Sie die Markdownzelle anzeigen lassen. Das ist egal; wichtig ist Formatierung der Eingabe. 1.2 Abgabe mit Gruppenaccount Die Abgabe muss mit Ihrem Gruppenaccount erfolgen (gp1_16_... ), den Sie in der Präsenzübung erhalten haben! Abgaben, die über Ihren Einzelaccount erfolgen, werden ignoriert. 1.3 Abgabe: Submit Es reicht nicht, nur das Übungsblatt zu verändern. Sie müssen unter Assignments auf Submit clicken (oder entsprechend über die Kommandozeile), für das entsprechende Übungsblatt! (Wenn Sie Blatt 7 abgeben wolllen hilft es nicht, bei Blatt 1 auf Submit zu drücken!) Für Details siehe Beschreibung Abgabeprozess. 1

2 1.4 Dateinamen Geben Sie Ihre Lösung in der vom Server erhaltenen Datei hue07.ipynb ab (nicht umbenennen, keine Kopie erstellen, keine anderen Dateien in das Verzeichnis legen, auch nicht Dateiname hue7.ipynb!). Sonst kann eine Bewertung nicht stattfinden. 1.5 Struktur des Notebooks Fügen Sie keine Zellen hinzu und löschen Sie keine Zellen. Ändern Sie nicht den Typ einer Zelle. Geben Sie Lösungen nur in den Lösungszellen ab. Änderungen in den anderen Zellen werden nach Abgabe automatisch rückgängig gemacht. 1.6 Code-Zellen Entfernen Sie die Zeilen mit Inhalt aus den Zellen, in die Sie Ihre Lösungen schreiben. Ersetzen Sie diese Zeilen durch Ihre eigene Lösungen. 1.7 Nie input Benutzen Sie niemals die Funktion input(). Das verhindert die automatische Auswertung Ihrer Abgabe und führt zu 0 Punkten für das gesamte Blatt! 1.8 Kommentare Kommentieren Sie Code-Abgaben! Insbesondere muss jede Funktion (Klasse, Methode,... ) einen docstring haben! Bei fehlendem docstring werden automatisch Punkte abgezogen! 2 Abgabetermin: um 23:59 Uhr 3 Aufgabe 1: String-API Diese Aufgabe lässt sich eventuell einfacher mithilfe der Python-Dokumentation lösen: a) Schreiben Sie eine Funktion s_verbinder(l,z), welche eine Liste mit Strings l zu einem einzigen String verbindet und diesen zurückgibt, wobei zwischen die einzelnen Listenelemente jeweils das der Funktion übergebene Zeichen z eingefügt werden soll. Behandeln Sie Randfälle (leere Liste, leeres Zeichen) sinnvoll (siehe Tests)! In [ ]: def s_verbinder(l,z): assert(s_verbinder(['1','2','3','4'], '-') == ' ') assert(s_verbinder(['a','b','c','d'], '') == 'abcd') assert(s_verbinder([], '') == '') assert(s_verbinder([], 'x') == '') 2

3 3.2 b) Schreiben Sie eine Funktion s_suche(s1,s2), welche den niedrigsten Index zurückgibt, bei dem der String s2 in s1 auftaucht. Ist s2 nicht in s1 enthalten, soll die Funktion -1 zurückgeben. Behandeln Sie Randfälle (siehe Tests, insbesondere Suche nach leerem String) sinnvoll! In [ ]: def s_suche(s1,s2): assert(s_suche('grundlagen der Programmierung', 'der') == 11) assert(s_suche('grundlagen der Programmierung', 'r') == 1) assert(s_suche('', 'P') == -1) assert(s_suche('grundlagen der Programmierung', 'X') == -1) assert(s_suche('grundlagen der Programmierung', '') == 0) 3.3 c) Schreiben Sie eine Funktion split_3(s), welche einen string s an dem ersten Index i aufteilt, an welcher ein Punkt (. ) vorkommt. Es soll ein Triple (s_links, i, s_rechts) zurückgegeben werden, wobei s_links der Teilstring von s ist, welcher alle Zeichen links von s[i] enthält und s_rechts der Teilstring von s ist, welcher alle Zeichen rechts von s[i] enthält. Falls der übergebene String keinen Punkt enthält, soll ein leeres Tupel zurückgegeben werden. In [ ]: def split_3(s): assert(split_3('dies ist ein Satz. Dies ist noch ein Satz.') == ('Dies ist assert(split_3('ein Satz ohne Punkt') == ()) 4 Aufgabe 2: Objektorientierung Betrachten Sie für diese Aufgabe die gegebene Klasse Patient. In [ ]: class Patient: Realisiert einen Patienten Klassenvariable, die die Anzahl der erstellten Patienten zählen soll anz_patienten = 0 def init (self, name, alter, privat_patient): Konstruktor Args: name: Name des Patienten (str) alter: Alter des Patienten (int) 3

4 privat_patient: True, falls der Patient ein Privatpatient ist, self.name = name self.alter = alter self.privat_patient = privat_patient def get_name(self): Liefert den Namen des Patienten Returns: str Name des Patienten return self.name def get_alter(s): Liefert das Alter des Patienten Returns: int Alter des Patienten return s.alter def is_privat_patient(self): Liefert True, falls der Patient ein Privatpatient ist, ansonsten Returns: bool True, falls der Patient ein Privatpatient ist, ansonsten F return self.privat_patient def eq (self, p): Vergleicht den Patient self mit dem Patient p auf Basis ihrer At return self.name == p.name and self.alter == p.alter 4.1 a) Erläutern Sie zunächst den Unterschied der Operationen == und is anhand der Klasse Patient. Was passiert, wenn zwei Objekte der Klasse Patient miteinander verglichen werden? YOUR ANSWER HERE Weisen Sie dann den beiden gegebenen Variablen p1 und p2 Objekte der Klasse Patient zu, sodass p1 == p2 gilt, jedoch nicht p1 is p2. In [ ]: p1 = None # None durch entsprechende Belegung ersetzen! p2 = None # None durch entsprechende Belegung ersetzen! assert(isinstance(p1, Patient)) 4

5 assert(isinstance(p2, Patient)) assert(p1 == p2) assert(not p2 is p1) 4.2 b) Wie Sie sehen, heißt der erste Parameter der Methode get_alter() nicht self. Würde das folgende Programm einen Fehler erzeugen? Wenn ja, an welcher Stelle und warum; wenn nein, erklären Sie warum nicht? p1 = Patient("Max Meier", 26, False) print(p1.get_alter()) Hinweis: Ein simples Copy-Paste einer Fehlermeldung reicht für eine Beschreibung des Fehlers nicht aus. YOUR ANSWER HERE 4.3 c) Angenommen, die obige Klasse Patient würde nicht die oben definierte Methode init enthalten. Würde das folgende Programm einen Fehler erzeugen? Wenn ja, an welcher Stelle und warum; wenn nein, erklären Sie warum nicht? p1 = Patient() print(p1.get_name()) Hinweis: Ein simples Copy-Paste einer Fehlermeldung reicht für eine Beschreibung des Fehlers nicht aus. YOUR ANSWER HERE 5 Aufgabe 3: Vektoren In dieser Aufgabe sollen Sie eine Klasse Vector implementieren. Diese soll Objekte in Anlehnung an mathematische Vektoren repräsentieren. Ein Vektor v besteht (in dieser Aufgabe) aus n einzelnen Zahlen, also v = (v 0,..., v n 1 ). Die Dimension n kann hier eine beliebige Zahl aus den natürlichen Zahlen N = {1, 2, 3,...} sein. Die Klasse Vector soll für ein Objekt v = (v 0,..., v n 1 ) die folgenden (Objekt-)Methoden bereitstellen: - Einen Konstruktor, welcher über optionale Parameter verfügt: die Dimension n und eine Liste von Integers vec. Falls beide Parameter angegeben sind, können Sie davon ausgehen, dass n == len(vec) gilt. - setitem (v, i, val): Ersetzt das Element v i des Vektors v mit dem Wert val. Sie können davon ausgehen, dass i immer kleiner als die Dimension des Vektors ist. - getitem (v, i): Gibt das Element v i des Vektors v zurück. Falls i größer oder gleich der Dimension n des Vektors ist, so soll None zurückgegeben werden. Sobald Sie die Methoden setitem (v, i, val) und getitem (v, i) implementiert haben, sollten Sie auf die einzelnen Vektorelemente mittels Indizierung zugreifen können (siehe Tests). Sie können dies für die Implementierung der folgenden Methoden benutzen: add(v, a): Verändert den Vektor v = (v 0,..., v n 1 ) indem der übergebene Vektor a = (a 0,..., a n 1 ) zu v addiert wird. 5

6 difference(v, a): Subtrahiert den Vektor a = (a 0,..., a n 1 ) von dem Vektor v = (v 0,..., v n 1 ) und liefert das Ergebnis als neuen Vektor s = (v 0 a 0,..., v n 1 a n 1 ) zurück. Die beiden Vektoren v und a sollen dabei nicht verändert werden. dot(v, w): Berechnet das Vektorprodukt von Vektor v = (v 0,..., v n 1 ) und dem übergebenen Vektor w = (w 0,..., w n 1 ) und liefert das Ergebnis ( n 1 i=0 v i w i ) zurück. norm(v): Berechnet die Norm ( zurück. n 1 i=0 v2 i ) des Vektors v = (v 0,..., v n 1 ) und liefert diese Für die Methoden add, difference und dot können Sie davon ausgehen, dass beide Vektoren immer dieselbe Länge haben. Es ist Ihnen selbstverständlich erlaubt, zusätzliche Hilfsmethoden (wie z.b. str ) zu implementieren, um Ihren Code besser auf Fehler überprüfen zu können. In [ ]: class Vector: # Konstruktor-Test: v0 = Vector(n=2) assert(v0[0] == 0) # Zugriff hier mittels Indizierung! assert(v0[1] == 0) v1 = Vector(n=2, vec=[1,2]) assert(v1[0] == 1) assert(v1[1] == 2) assert(v1[2] == None) v2 = Vector(vec=[1,2]) assert(v2[0] == 1) assert(v2[1] == 2) # Ersetze ein Element von v2: v2[0] = 2 assert(v2[0] == 2) a = Vector(vec = [1, 2, 3]) b = Vector(vec = [3, 4, 5]) a.add(b) # Addiere b zu a assert(a[0] == 4) assert(a[1] == 6) assert(a[2] == 8) # b unverändert: assert(b[0] == 3) assert(b[1] == 4) assert(b[2] == 5) 6

7 a = Vector(vec = [1, 2, 3]) b = Vector(vec = [3, 4, 5]) s = a.difference(b) # Berechne die Differenz a-b und speichere den neuen Ve assert(s[0] == -2) assert(s[1] == -2) assert(s[2] == -2) # a, b unverändert: assert(a[0] == 1) assert(a[1] == 2) assert(a[2] == 3) assert(b[0] == 3) assert(b[1] == 4) assert(b[2] == 5) a = Vector(vec = [1, 2, 3]) b = Vector(vec = [3, 4, 5]) dot = a.dot(b) # Berechne das Vektorprodukt und speichere dies in dot assert(dot == 26) # a, b unverändert: assert(a[0] == 1) assert(a[1] == 2) assert(a[2] == 3) assert(b[0] == 3) assert(b[1] == 4) assert(b[2] == 5) a = Vector(vec = [1, 2, 3]) norm = a.norm() # Berechne die Norm und speichere diese in norm assert(norm == (14**0.5)) # a unverändert: assert(a[0] == 1) assert(a[1] == 2) assert(a[2] == 3) 6 Aufgabe 4: PAUL In dieser Aufgabe sollen Sie eine einfache Version von PAUL implementieren. Das System soll aus 3 Klassen bestehen: Student, Vorlesung und Paul. Die Klasse Student ist Ihnen bereits gegeben (siehe untere Codezelle). Ihre Aufgabe ist nun, die Klassen Vorlesung und Paul zu vervollständigen. Die Anforderungen an die Klassen sowie Tests sind in den jeweiligen Teilaufgaben gegeben. 7

8 In [ ]: class Student: Diese Klasse modelliert einen Studenten mit Attributen mat_nr und na 6.1 a) def init (self, mat_nr, name): Konstruktor Args: mat_nr: Matrikelnummer des Studenten (int) name: Name des Studenten (str) self.mat_nr = mat_nr self.name = name def get_mat_nr(self): Get-Methode für das Matrikelnummer-Attribut Returns: int Matrikelnummer des Studenten return self.mat_nr def get_name(self): Get-Methode für das Name-Attribut Returns: str Namen des Studenten return self.name def str (self): String-Repräsentation eines Studenten Returns: str Matrikelnummer und name des Studenten return str(self.mat_nr) + " " + self.name Erstellen Sie eine Klasse Vorlesung, welche über die folgenden Methoden verfügt: Einen Kontruktor, welcher die ID der Vorlesung (int), sowie den Namen der Vorlesung (str) übergeben bekommt. get_id: Gibt die ID der Vorlesung zurück. get_name: Gibt den Namen der Vorlesung zurück. add_student: Registriert den übergebenen Studenten in der Vorlesung. has_student: Gibt True zurück, falls sich ein Student mit der übergebenen Matrikelnummer in der Vorlesung registriert hat, ansonsten False. Sie dürfen davon ausgehen, dass sich 8

9 jeder Student nur einmal für ein und dieselbe Vorlesung registriert. add_grade: Setzt die Note des Studenten mit der übergebenen Matrikelnummer auf die übergebene Note. Sollte der Student bereits eine Note haben, so wird diese überschrieben. Wenn der Student nicht in der Vorlesung registriert ist, soll keine Aktion ausgeführt werden. get_grade: Liefert die Note für diese Vorlesung, welche der Student mit der übergebenen Matrikelnummer erhalten hat. Falls die Matrikelnummer nicht in der Vorlesung registriert ist, soll -1 zurückgegeben werden. Ist der Student zwar registriert, hat aber noch keine Note erhalten, wird None zurückgegeben. In [ ]: class Vorlesung: # Erstelle Studenten: studenten = [Student( , "Ralf B"), Student( , "Jessica W"), Stu Student( , "Andrea B"), Student( , "Sebastian A"), # Erstelle Vorlesung: gp1 = Vorlesung(1, "Grundlagen der Programmierung 1") assert(gp1.get_id() == 1) assert(gp1.get_name() == "Grundlagen der Programmierung 1") # Füge Studenten zur Vorlesung hinzu: for s in studenten: gp1.add_student(s.get_mat_nr()) for s in studenten: assert(gp1.has_student(s.get_mat_nr())) # Verteile Noten: gp1.add_grade(studenten[0].get_mat_nr(), 1.0) gp1.add_grade(studenten[1].get_mat_nr(), 1.3) gp1.add_grade(studenten[2].get_mat_nr(), 3.0) gp1.add_grade(studenten[3].get_mat_nr(), 2.7) gp1.add_grade(studenten[4].get_mat_nr(), 1.3) assert(gp1.get_grade(studenten[0].get_mat_nr()) == 1.0) assert(gp1.get_grade(studenten[1].get_mat_nr()) == 1.3) assert(gp1.get_grade(studenten[2].get_mat_nr()) == 3.0) assert(gp1.get_grade(studenten[3].get_mat_nr()) == 2.7) assert(gp1.get_grade(studenten[4].get_mat_nr()) == 1.3) assert(gp1.get_grade(studenten[5].get_mat_nr()) == None) # hat noch keine N # Ein nicht in der Vorlesung registrierter Student will eine Note haben: gp1.add_grade( , 1.0) assert(gp1.get_grade( ) == -1) # Matrikelnummer nicht im Kurs vorhand 9

10 6.2 b) Ergänzen Sie nun die Klasse PAUL, welche über die folgenden Methoden verfügt: - add_vorlesung: Erstellt eine neue Vorlesung mit dem übergebenen Namen im System und liefert die ID der Vorlesung zurück. Die ID der Vorlesung ist gleich der Anzahl der bisherigen Aufrufe von add_vorlesung + 1, d.h. beim ersten Aufruf wird die ID 1 zurückgegeben (siehe Tests). - add_student: Erstellt einen neuen Studenten mit dem übergebenen Namen im System und liefert dessen Matrikelnummer zurück. Die Matrikelnummer des Studenten ist gleich der Anzahl der bisherigen Aufrufe von add_student + 1, d.h. beim ersten Aufruf wird die Matrikelnummer 1 zurückgegeben (siehe Tests). - registriere_in_vorlesung: Fügt den Studenten mit der übergebenen Matrikelnummer der Vorlesung mit der übergebenen ID hinzu. Sie können davon ausgehen, dass registriere_student_in_vorlesung niemals mehrfach für ein Paar (matr_nr, v_id) aufgerufen wird. - get_studenten_in_vorlesung: Liefert eine Liste, welche alle Matrikelnummern enthält, die in der Vorlesung mit der übergebenen ID registriert sind. Falls das System keine Vorlesung mit der übergebenen ID enthält, soll None zurückgegeben werden. - get_vorlesung: Liefert die Vorlesung mit der übergebenen ID als Objekt der Klasse Vorlesung. Ist keine solche Vorlesung im System gespeichert, soll None zurückgegeben werden. - get_student: Liefert den Studenten mit der übergebenen Matrikelnummer als Objekt der Klasse Student. Ist kein solcher Student im System gespeichert, soll None zurückgegeben werden. - get_grades_for_student: Liefert ein Dictionary mit allen Vorlesungen, in welcher der übergebene Student registriert ist und die entsprechenden Noten, die der Student für die Vorlesung erhalten hat. Eine beispielhafte Anwendung können Sie an den gegebenen Tests ablesen. In [ ]: class Paul: # Erstelle System: paul = Paul() # Füge Vorlesungen und Studenten hinzu: gp1_id = paul.add_vorlesung("grundlagen der Programmierung 1") mod_id = paul.add_vorlesung("modellierung") assert(gp1_id == 1) assert(mod_id == 2) matrikelnummern = [paul.add_student("ralf B"),paul.add_student("Jessica W" assert(matrikelnummern[0] == 1 and matrikelnummern[1] == 2 and matrikelnumm assert(paul.get_student(matrikelnummern[0]).get_name() == 'Ralf B') assert(paul.get_student(matrikelnummern[1]).get_name() == 'Jessica W') assert(paul.get_student(matrikelnummern[2]).get_name() == 'Philipp K') # Registriere Studenten in Vorlesung: paul.registriere_in_vorlesung(matrikelnummern[0], 1) paul.registriere_in_vorlesung(matrikelnummern[1], 1) paul.registriere_in_vorlesung(matrikelnummern[2], 1) 10

11 paul.registriere_in_vorlesung(matrikelnummern[0], 2) paul.registriere_in_vorlesung(matrikelnummern[1], 2) paul.registriere_in_vorlesung(matrikelnummern[2], 2) assert(1 in paul.get_studenten_in_vorlesung(1)) assert(2 in paul.get_studenten_in_vorlesung(1)) assert(3 in paul.get_studenten_in_vorlesung(1)) assert(1 in paul.get_studenten_in_vorlesung(2)) assert(2 in paul.get_studenten_in_vorlesung(2)) assert(3 in paul.get_studenten_in_vorlesung(2)) # Füge Noten hinzu: paul.get_vorlesung(1).add_grade(matrikelnummern[0], 3.0) paul.get_vorlesung(1).add_grade(matrikelnummern[1], 1.3) paul.get_vorlesung(1).add_grade(matrikelnummern[2], 2.0) paul.get_vorlesung(2).add_grade(matrikelnummern[0], 5.0) paul.get_vorlesung(2).add_grade(matrikelnummern[1], 2.3) assert(paul.get_grades_for_student(matrikelnummern[0]) == {'Grundlagen der assert(paul.get_grades_for_student(matrikelnummern[1]) == {'Grundlagen der assert(paul.get_grades_for_student(matrikelnummern[2]) == {'Grundlagen der # Alle Dokumentationen vorhanden? # Aufgabe 1 assert(s_verbinder. doc!= None) assert(s_suche. doc!= None) assert(split_3. doc!= None) # Aufgabe 3 assert(vector. doc!= None) assert(vector. init. doc!= None) assert(vector. setitem. doc!= None) assert(vector. getitem. doc!= None) assert(vector.add. doc!= None) assert(vector.difference. doc!= None) assert(vector.dot. doc!= None) assert(vector.norm. doc!= None) # Aufgabe 4 assert(vorlesung. doc!= None) assert(vorlesung. init. doc!= None) assert(vorlesung.get_id. doc!= None) assert(vorlesung.get_name. doc!= None) assert(vorlesung.add_student. doc!= None) 11

12 assert(vorlesung.has_student. doc!= None) assert(vorlesung.add_grade. doc!= None) assert(vorlesung.get_grade. doc!= None) assert(paul. doc!= None) assert(paul.add_vorlesung. doc!= None) assert(paul.add_student. doc!= None) assert(paul.registriere_in_vorlesung. doc!= None) assert(paul.get_studenten_in_vorlesung. doc!= None) assert(paul.get_vorlesung. doc!= None) assert(paul.get_grades_for_student. doc!= None) 12

hue06 December 2, 2016

hue06 December 2, 2016 hue06 December 2, 2016 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern

Mehr

hue13 January 30, 2017

hue13 January 30, 2017 hue13 January 30, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern

Mehr

hue12 January 24, 2017

hue12 January 24, 2017 hue12 January 24, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern

Mehr

hue04 November 18, 2016

hue04 November 18, 2016 hue04 November 18, 2016 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern

Mehr

hue10 January 15, 2017

hue10 January 15, 2017 hue10 January 15, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern

Mehr

hue05 November 25, 2016

hue05 November 25, 2016 hue05 November 25, 2016 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern

Mehr

hue08 December 16, 2016

hue08 December 16, 2016 hue08 December 16, 2016 YOUR ANSWER HERE 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung

Mehr

hue03 November 11, 2016

hue03 November 11, 2016 hue03 November 11, 2016 Bitte tragen Sie Ihre Matrikelnummern und E-Mail-Adressen zeilenweise in die Zelle oberhalb dieser Zelle ein. Beachten Sie: Die Abgabe muss mit Ihrem Gruppenaccount erfolgen, den

Mehr

<br > <br >

<br > <br > YOUR ANSWER HERE Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung (http://groups.uni-paderborn.de/fgkarl/lehre/ws1617/gp1/hue/gp1-zue0.pdf)

Mehr

1 Berechnung von Summen (ca = 10 Punkte)

1 Berechnung von Summen (ca = 10 Punkte) Einführung in die wissenschaftliche Programmierung Klausur 26.02.2013 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Berechnung von Summen (ca. 5 + 4 + 1 = 10 Punkte) Gegeben sind natürliche

Mehr

pue08 December 9, 2016

pue08 December 9, 2016 pue08 December 9, 2016 1 Aufgabe 1: Ein einfaches Zeichenprogramm 1.1 a) Erstellen Sie eine Klasse Square mit den folgenden Eigenschaften: Objektvariablen: - width: Seitenlänge (default: 0) - color: Füllfarbe

Mehr

pue02 October 28, 2016

pue02 October 28, 2016 pue02 October 28, 2016 Generell gilt: Bei Fragen wenden Sie sich bitte an Ihren Tutor 1 Aufgabe 1 1.1 a) Python im Notebook Die nächste Zelle ist nicht vom Typ Markdown sondern Code, in ihr steht Quellcode

Mehr

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 23. Januar 2017

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 23. Januar 2017 Familienname: Vorname: Matrikelnummer: Aufgabe 1 (3 Punkte): Aufgabe 2 (1 Punkt): Aufgabe 3 (2 Punkte): Aufgabe 4 (4 Punkte): Aufgabe 5 (2 Punkte): Aufgabe 6 (2 Punkte): Aufgabe 7 (4 Punkte): Aufgabe 8

Mehr

pue09 December 16, 2016

pue09 December 16, 2016 pue09 December 16, 2016 1 Aufgabe 1: Zeichenprogramm revisited Betrachten Sie die folgende Implementierung des Zeichenprogramms aus PÜ8 (Anmerkung: Kommentare und Docstrings wurden hier bewusst weggelassen,

Mehr

Programmierung für Mathematik HS10

Programmierung für Mathematik HS10 Department of Informatics software evolution & architecture lab Programmierung für Mathematik HS10 Übung 5 1 Aufgabe: Eclipse IDE 11 Lernziele 1 Die Entwicklungsumgebung Eclipse kennen lernen 12 Aufgabenstellung

Mehr

Übung Programmierung WS 2007/08 - Blatt 6

Übung Programmierung WS 2007/08 - Blatt 6 RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK 2 RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.

Mehr

3.3 Entwurf von Datentypen

3.3 Entwurf von Datentypen 3.3 Entwurf von Datentypen Durch das Erzeugen von Datentypen entwickelt der Programmierer eine eigene Sprache, mit der über die Daten gesprochen werden kann. Deshalb muss man beim Entwickeln einer Idee

Mehr

Informatik I: Einführung in die Programmierung. Übungsblatt 3. Abgabe: Freitag, 15. November 2013, 18:00 Uhr

Informatik I: Einführung in die Programmierung. Übungsblatt 3. Abgabe: Freitag, 15. November 2013, 18:00 Uhr Informatik I: Einführung in die Programmierung Prof. Dr. Bernhard Nebel Dr. Christian Becker-Asano, Dr. Stefan Wölfl Wintersemester 2013/2014 Universität Freiburg Institut für Informatik Übungsblatt 3

Mehr

pue13 January 28, 2017

pue13 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

Mehr

Aufgabe 1. Implementieren Sie die beiden Klassen Möbelstück und Behälter. Diese sollen Folgendes können: Möbelstück:

Aufgabe 1. Implementieren Sie die beiden Klassen Möbelstück und Behälter. Diese sollen Folgendes können: Möbelstück: Aufgabe 1 Implementieren Sie die beiden Klassen Möbelstück und Behälter. Diese sollen Folgendes können: Möbelstück: Ein Möbelstück hat einen Preis, einen Modellnamen und einen Hersteller Das Möbelstück

Mehr

Institut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt

Institut 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

Mehr

Programmierung für Mathematik HS10

Programmierung für Mathematik HS10 Department of Informatics software evolution & architecture lab Programmierung für Mathematik HS0 Übung Aufgabe: Calculator Fortsetzung. Lernziele. Probleme mit Integer-Rechnung kennenlernen und Lösungen

Mehr

1 Stückweise konstante Funktionen (ca =10 Punkte)

1 Stückweise konstante Funktionen (ca =10 Punkte) Einführung in die wissenschaftliche Programmierung Klausur Seite 1/5 Name, Vorname, Unterschrift: Matrikelnummer: 1 Stückweise konstante Funktionen (ca. 4+2+4=10 Punkte) In dieser Aufgabe soll eine Klasse

Mehr

Übungsblatt 1. Java Vorkurs (WS 2017)

Übungsblatt 1. Java Vorkurs (WS 2017) Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die

Mehr

Aufgabe 1 ZUFÄLLIGES ENGLISCH. »Programmieren«, WS 2006/2007. Nino Simunic M.A.

Aufgabe 1 ZUFÄLLIGES ENGLISCH. »Programmieren«, WS 2006/2007. Nino Simunic M.A. »Programmieren«, WS 2006/2007 Nino Simunic (nino.simunic@uni-due.de) Übungsblatt 5 Aufgabe 1 ZUFÄLLIGES ENGLISCH Der folgende Quelltext zeigt Ihnen, wie man Zufallszahlen erzeugen kann. Dazu benötigt wird

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Zwei Arten von Attributen. Klassenvariablen. Introspektion. getattr(object_instance, string)

Zwei Arten von Attributen. Klassenvariablen. Introspektion. getattr(object_instance, string) Zwei Arten von Attributen Klassenvariablen Die Daten, die von einem Objekt gespeichert werden und keine Methoden sind, heißen Attribute. Es gibt zwei Arten: Instanzattribute ( = Instanzvariablen): Variable,

Mehr

Zwei Arten von Attributen

Zwei Arten von Attributen Zwei Arten von Attributen Die Daten, die von einem Objekt gespeichert werden und keine Methoden sind, heißen Attribute. Es gibt zwei Arten: Instanzattribute ( = Instanzvariablen): Variable, die einer bestimmten

Mehr

Wissenschaftliches Rechnen

Wissenschaftliches Rechnen Institut für Numerische und Angewandte Mathematik 11.04.2012 FB Mathematik und Informatik der Universität Münster Prof. Dr. Christian Engwer, Dipl. Math. Dipl. Inf. Sebastian Westerheide Übung zur Vorlesung

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut 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

Mehr

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1 IT I: Heute Klasse Object equals, hashcode, tostring HashSet 14.11.2017 IT I - VO 6 1 Wissensüberprüfung Wie ruft man statische Methode auf? Gegeben Klasse Fix mit statischer Methode static boolean foxi(string

Mehr

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Über diesen Kurs 2. Der Python Interpreter 3. Python Scripte 4. Grundlagen der Sprache 5. Das erste Programm 6. Operatoren

Mehr

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4 Lutz Oettershagen Jurij Kuzmic Dortmund, den 8. November 2018 Übung zur Vorlesung EidP (WS 2018/19) Blatt 4 Block gelb Es können 4 Punkte erreicht werden. Abgabedatum: 15. November 2018, 2:59 Uhr Hinweise

Mehr

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1 IT I: Heute Klasse Object equals, hashcode, tostring HashSet 13.11.2018 IT I - VO 6 1 Organisatorisches Wissensüberprüfung gleich im Anschluss an die VO UE heute schon früher (ab 11:45) heute beide UE-Gruppen

Mehr

Institut für Informatik

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 Lösungsblatt 6 Prof. R. Westermann, A. Lehmann, R.

Mehr

Einführung in die Uni-Rechnerstruktur / Jupyter Alexander Setzer Grundlagen der Programmierung 1

Einführung in die Uni-Rechnerstruktur / Jupyter Alexander Setzer Grundlagen der Programmierung 1 Einführung in die Uni-Rechnerstruktur / Jupyter Alexander Setzer Grundlagen der Programmierung 1 Mit Folien von Bastian Cramer, Michael Opdenacker und Dietmar Guhe Pingo-ID für diesen Kurs: 961672 Ziele

Mehr

Schriftliche Prüfung zur Computergestützten Mathematik zur Linearen Algebra (PO 2014: Erste Klausur / PO 2008: Klausur)

Schriftliche Prüfung zur Computergestützten Mathematik zur Linearen Algebra (PO 2014: Erste Klausur / PO 2008: Klausur) MATHEMATISCHES INSTITUT PROF. DR. CHRISTIANE HELZEL PAWEL BUCHMÜLLER 18. FEBRUAR 2016 Schriftliche Prüfung zur Computergestützten Mathematik zur Linearen Algebra (PO 2014: Erste Klausur / PO 2008: Klausur)

Mehr

Tutoraufgabe 1 (Auswertungsstrategie):

Tutoraufgabe 1 (Auswertungsstrategie): Prof. aa Dr. M. Müller C. Aschermann, J. Hensel, J. Protze, P. Reble Allgemeine ˆ Die Hausaufgaben sollen in Gruppen von je 3 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet werden.

Mehr

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit

Mehr

Institut für Programmierung und Reaktive Systeme 24. April Programmieren II. 10. Übungsblatt

Institut für Programmierung und Reaktive Systeme 24. April Programmieren II. 10. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 24. April 2018 Programmieren II 10. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern

Mehr

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11 C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen

Mehr

Informatik - Übungsstunde

Informatik - Übungsstunde Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 12-23.05.2018 Lernziele Klassen Dynamic Memory Jonas Lauener (ETH Zürich) Informatik - Übung Woche 12 2 / 20 Structs

Mehr

Visuelle Kryptographie. Anwendung von Zufallszahlen

Visuelle Kryptographie. Anwendung von Zufallszahlen Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,

Mehr

Objektorientierung II

Objektorientierung II 9Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 09 19.12.2016 Objektorientierung II Aufgabe 9.1. Modellierung - Geometrische Figuren

Mehr

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Scriptcharakter 2. Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren 3.

Mehr

pue06 November 25, 2016

pue06 November 25, 2016 pue06 November 25, 2016 1 Aufgabe 1 Schreiben Sie Funktionen, die die folgenden Anforderungen erreichen. Nutzen Sie dabei jeweils entweder eine for oder eine while Schleife und begründen Ihre Wahl. Überlegen

Mehr

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6.

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6. Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom 31.5. bis zum 4.6.2010 (KW 22) Organisatorisches Diese Woche führen wir Methoden ein und behandeln

Mehr

Lernteam OOP3 SW Programmieren 1 - H1103 Felix Rohrer

Lernteam OOP3 SW Programmieren 1 - H1103 Felix Rohrer Aufgabe 1: Datentypen und Typecasting Geben Sie das Ergebnis für folgende mathematischen Ausdrücke im entsprechenden Datentyp in Java an. Beachten Sie hierzu die Folie 14 der Präsentation. Hinweis: Bei

Mehr

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 25. Jänner 2016

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 25. Jänner 2016 Familienname: Vorname: Matrikelnummer: Aufgabe 1 (3 Punkte): Aufgabe 2 (4 Punkte): Aufgabe 3 (2 Punkte): Aufgabe 4 (2 Punkte): Aufgabe 5 (2 Punkte): Aufgabe 6 (1 Punkte): Aufgabe 7 (3 Punkte): Aufgabe

Mehr

Institut für Informatik und Angewandte Kognitionswissenschaften

Institut für Informatik und Angewandte Kognitionswissenschaften Grundlegende Programmiertechniken (»Programmierung«), WS 2007/2008 Übungsblatt 5 Präsenzaufgaben: 11, 12, 13 Hausaufgabe: 14 Aufgabe 11 STRING- UND OBJEKT-VERGLEICH String s1 = new String("Test String");

Mehr

C++ Teil 10. Sven Groß. 17. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Dez / 14

C++ Teil 10. Sven Groß. 17. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Dez / 14 C++ Teil 10 Sven Groß IGPM, RWTH Aachen 17. Dez 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 10 17. Dez 2014 1 / 14 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente

Mehr

Informatik 2 für Regenerative Energien

Informatik 2 für Regenerative Energien Informatik 2 für Regenerative Energien Klausur vom 5. Juli 2013 Jörn Loviscach Versionsstand: 13. Juli 2013, 18:12 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Lars Hupel, Lars Noschinski, Dr. Jasmin Blanchette Wintersemester 2013/14 Wiederholungsklausur 24. März 2014 Einführung

Mehr

Die Klasse java.lang.object. Thorsten Treffer

Die Klasse java.lang.object. Thorsten Treffer Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:

Mehr

Datenstrukturen und Algorithmen. Vorlesung 5

Datenstrukturen und Algorithmen. Vorlesung 5 Datenstrukturen und Algorithmen Vorlesung 5 Inhaltsverzeichnis Vorige Woche: Sortierte Listen Zyrkuläre Listen Verkettete Listen auf Arrays Heute betrachten wir: Skip Listen ADT Set ADT Map Iterator ADT

Mehr

Dies ist eine Probeklausur, die keine formalen Schlüsse auf die Form, die Struktur oder den Inhalt der endgültigen Klausur zulässt.

Dies ist eine Probeklausur, die keine formalen Schlüsse auf die Form, die Struktur oder den Inhalt der endgültigen Klausur zulässt. Thema: Grundlagen Programmierung Dozent: Prof. Dr. Stephan Kleuker Seitennummer: Seite 1 von 12 Studiengang: Informatik Technische Informatik Studiensemester: 1 Datum: 26.11.2018 Bearbeitungszeit: 120

Mehr

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut Mathematisches Institut mselva@math.uni-koeln.de 24 März 2009 Übungen zur Numerik 1 Vorlesung Übungen praktische Aufgaben Webseite: (Anmeldung, Übungsblätter) http://www.mi.uni-koeln.de/~mselva/numerik1.php

Mehr

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17 C++ Teil 9 Sven Groß 17. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 9 17. Juni 2016 1 / 17 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente Methoden / Elementfunktionen

Mehr

PYTHON. 06 Objektorientierung II

PYTHON. 06 Objektorientierung II PYTHON 06 Objektorientierung II Wiederholung Was bisher geschah Objektorientierung Objekte haben Eigenschaften Objekte haben Methoden Objekte werden nach einem bestimmten Bauplan erzeugt: die Klassen sind

Mehr

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+

Mehr

1 Bizz Buzz Woof (ca =18 Punkte) def read file(file_in): fp = open(file_in, r ) l = fp.read() fp.close() return l

1 Bizz Buzz Woof (ca =18 Punkte) def read file(file_in): fp = open(file_in, r ) l = fp.read() fp.close() return l Einführung in die wissenschaftliche Programmierung Klausur 1. März 2010 Seite 1/7 Name, Vorname, Unterschrift: Matrikelnummer: 1 Bizz Buzz Woof (ca. 3+9+6=18 Punkte) In dieser Aufgabe sollen Zahlen codiert

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Teil VI. Objektorientierte Programmierung

Teil VI. Objektorientierte Programmierung Teil VI Objektorientierte Programmierung IN8008, Wintersemester 2015/2016 125 Was ist ein Objekt? IN8008, Wintersemester 2015/2016 126 Was ist ein Objekt? Ein Auto Eine Katze Ein Stuhl... IN8008, Wintersemester

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Klausur 1. August 2008 1. Dynamische Datenstrukturen und objektorientierte Programmierung (45 Punkte) Gegeben sei eine Datenstruktur mit folgendem Aufbau struct lelem { int w;

Mehr

Tutoraufgabe 1 (Überladen von Methoden):

Tutoraufgabe 1 (Überladen von Methoden): Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung

Mehr

Softwareentwicklung II (IB) Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Softwareentwicklung II (IB) Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Softwareentwicklung II (IB) Blatt 2 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.04.2018 08:07 Abgabe der Aufgabe auf diesem Blatt: bis 02.05.18, 08:00 Uhr durch Pushen

Mehr

Übungsblatt 4. Java Vorkurs (WS 2015)

Übungsblatt 4. Java Vorkurs (WS 2015) Übungsblatt 4 Java Vorkurs (WS 2015) Aufgabe 1 Übungsblock In dieser Aufgabe soll ein kleines Programm zur verwaltung von Studenten erstellt werden. Gehe davon aus, dass nicht mehr 100 Studenten durch

Mehr

1 Autorennen ( = 11 Punkte)

1 Autorennen ( = 11 Punkte) Einführung in die wissenschaftliche Programmierung Klausur 11.02.2016 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Autorennen (3 + 3.5 + 4.5 = 11 Punkte) Eine Physikerin beobachtet die Geschwindigkeit

Mehr

Schriftlicher Test zu C++ (90 Minuten) VU Einführung ins Programmieren für TM. 22. Juni 2012

Schriftlicher Test zu C++ (90 Minuten) VU Einführung ins Programmieren für TM. 22. Juni 2012 Familienname: Vorname: Matrikelnummer: Aufgabe 1 (4 Punkte): Aufgabe 2 (1 Punkte): Aufgabe 3 (1 Punkte): Aufgabe 4 (3 Punkte): Aufgabe 5 (4 Punkte): Aufgabe 6 (5 Punkte): Aufgabe 7 (2 Punkte): Aufgabe

Mehr

Probeklausur. Musterlösung

Probeklausur. Musterlösung Programmierkurs Probeklausur Dr. Steffen Müthing Abgabe 08. Februar 2019 IWR, Universität Heidelberg ipk-exercises:2018-ws-55-gc187ae0 Allgemeine Hinweise: Probeklausur Dieses Übungsblatt wird nicht bewertet.

Mehr

Institut für Informatik

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,

Mehr

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik

Objektorientierung. 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

Mehr

Informatik 1 MaVt FS Übung 10

Informatik 1 MaVt FS Übung 10 Informatik 1 MaVt FS 2010 Übung 10 Claudia Kuster ckuster@inf.ethz.ch Mittwoch 13-15h HG E 27 http://graphics.ethz.ch/~ckuster/teaching/mavt_info1_2010.html Vorlesung Objektorientierte Programmierung Konstruktoren

Mehr

Python für Linguisten

Python für Linguisten Python für Linguisten Dozentin: Wiebke Petersen & Co-Dozentin: Esther Seyarth 3. Foliensatz Funktionsdenitionen Petersen & Seyarth Python 1 Wiederholung: Funktionsaufruf Python bringt einige vordenierte

Mehr

Testklausur 2 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Testklausur 2 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten Matrikelnummer: Punkte: Testklausur 2 zur Vorlesung Modellierung und Programmierung I Dr. Monika Meiler Zeit: 60 Minuten Bemerkungen: Jedes Blatt ist mit der Matrikelnummer zu versehen. Jede Aufgabe ist

Mehr

Übungen zu Computeranwendung und Programmierung WS 18/19. Quer durch den Krautgarten dieses Semesters...

Übungen zu Computeranwendung und Programmierung WS 18/19. Quer durch den Krautgarten dieses Semesters... 17 01 01 Übungen zu Computeranwendung und Programmierung WS 18/19 Übungseinheit 14. - 18. Jänner 2019 Themen: Quer durch den Krautgarten dieses Semesters... Aufgabe 1 Schreiben Sie die Klasse KumulativeMaxima

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 08: Mehr zu Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Wiederholung Heutige Agenda Verwendung der ArrayList 2. Teil: Weitere Aspekte der OO

Mehr

a) Für das vorgegebene Programmstück ergibt sich folgendes Referenzgeflecht:

a) Für das vorgegebene Programmstück ergibt sich folgendes Referenzgeflecht: Technische Universität München WS 2011/12 Fakultät für Informatik Übungsblatt 7 Dr. C. Herzog, M. Maalej 05. Dezember 2011 Übungen zu Grundlagen der Programmierung Aufgabe 32 (Lösungsvorschlag) Für die

Mehr

Allgemeine Informatik II SS :30-11:30 Uhr

Allgemeine Informatik II SS :30-11:30 Uhr TU Darmstadt FB Informatik Prof. J. Fürnkranz Semestralklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 20.07.2005 09:30-11:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer

Mehr

Probeklausur: Programmierung WS04/05

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,

Mehr

Übungen zu Computeranwendung und Programmierung WS 17/18

Übungen zu Computeranwendung und Programmierung WS 17/18 17 01 01 Übungen zu Computeranwendung und Programmierung WS 17/18 Übungseinheit 4. - 8. Dezember 2017 Themen: Algorithmisch etwas schwierigere Methoden. CSV-Dateien einlesen und die darin enthaltenen Daten

Mehr

Programmierkurs Java

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

Mehr

1 - EIN NEUES GAMEGRID ANLEGEN

1 - EIN NEUES GAMEGRID ANLEGEN 1 - EIN NEUES GAMEGRID ANLEGEN EIN NEUES GAMEGRID ANLEGEN 1. Schritt: Ein neues Java-Projekt anlegen: 2. Schritt: Namen des Projekts angeben und auf Next klicken (Achtung: Nicht auf Finish klicken) 3.

Mehr

Softwareentwicklung II (IB) Blatt 4. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Softwareentwicklung II (IB) Blatt 4. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Softwareentwicklung II (IB) Blatt 4 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 19.05.2018 23:27 Abgabe der Aufgabe auf diesem Blatt: bis 13.06.18, 08:00 Uhr durch Pushen

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich 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 -

Mehr

Teil VI. Objektorientierte Programmierung. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2016/

Teil VI. Objektorientierte Programmierung. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2016/ Teil VI Objektorientierte Programmierung T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2016/2017 125 Was ist ein Objekt? T. Neckel Einführung in die wissenschaftliche

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte 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

Mehr

Institut für Programmierung und Reaktive Systeme 10. Mai Programmieren II. 11. Übungsblatt

Institut für Programmierung und Reaktive Systeme 10. Mai Programmieren II. 11. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 10. Mai 2013 Programmieren II 11. Übungsblatt Hinweis: Dieses Übungsblatt enthält die zweite Pflichtaufgabe.

Mehr

Philipp Güttler Objektorientierung und komplexe Datentypen

Philipp Güttler Objektorientierung und komplexe Datentypen Philipp Güttler 23.04.2008 Objektorientierung und komplexe Datentypen Seite 2 Was bedeutet objekt-orientiert? Programmierung ist die Umsetzung von Sachverhalten und Aufgaben Zusammenfassen und Aufteilen

Mehr

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

Institut für Programmierung und Reaktive Systeme 4. Dezember Programmieren I. 5. Übungsblatt

Institut für Programmierung und Reaktive Systeme 4. Dezember Programmieren I. 5. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 4. Dezember 2017 Programmieren I 5. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern

Mehr