SS Stephan Gimbel. Repetitorium PG 1. Übungsblatt. Original Klausur von Prof. Dr. Johannes Arz

Größe: px
Ab Seite anzeigen:

Download "SS 2011. Stephan Gimbel. Repetitorium PG 1. Übungsblatt. Original Klausur von Prof. Dr. Johannes Arz"

Transkript

1 SS 2011 Stephan Gimbel Repetitorium PG 1 Übungsblatt 1 Übung - Probeklausur WS 2009/2010 Original Klausur von Prof. Dr. Johannes Arz ACHTUNG: Statt Array kann auch ein STL vector verwendet werden. Geschichte Am fand in Kapstadt die Gruppenauslosung zur Fußballweltmeisterschaft 2010 in Südafrika statt. Unter den Augen von Bundestrainer Jogi Löw wurde Deutschland in die Gruppe D zusammen mit Australien, Serbien und Ghana gelost. Kommentar des Ehrengastes Amalie Klein: Das werden geile Spiele. Aufgabe Schreiben Sie ein Programm, das die Gruppen modelliert. Ausbaustufen 1. (Note 4) Implementieren Sie eine Klasse Mannschaft mit dem Attribut land als Zeichenkette (String), sowie den dazu gehörenden put- und get-funktionen (hier: putland, getland; entsprechende Notation gilt für die anderen Attribute anderer Klassen) sowie zwei Konstruktoren vom Typ Mannschaft (void) und Mannschaft (char *), ferner eine Methode browse, die die Mannschaftsdaten am Bildschirm anzeigt. Siehe Hinweis (Note 3) Implementieren Sie weiter eine Klasse Gruppe mit den Attributen name vom Typ char (Die Gruppenbezeichner sind Buchstaben von A bis H.) und einem Attribut Mannschaft * mannschaft [4] mit den dazu gehörenden put- und get-funktionen sowie einen Konstruktor, ferner eine Methode browse, die alle Attribute einer Gruppe am Bildschirm anzeigt. Erzeugen Sie im Hauptprogramm die Gruppe D. 1

2 3. (Note 2) Implementieren Sie ein Methode zeigepaarungen, die die Liste von Spielpaarungen einer beliebigen Gruppe berechnet und am Bildschirm ausgibt. Bekanntlich spielt jede Mannschaft einer Gruppe einmal gegen jedes andere Gruppenmitglied. Testen Sie die Methode für die Gruppe D. 4. (Note 1) Ersetzen Sie die Methode browse in Gruppe und Mannschaft je durch einen überladenen Operator <<. Hinweise zur Realisierung 1. Außer dem Hilfesystem des Visual C++ sind keine Hilfsmittel erlaubt. 2. Die Einhaltung der Ausbaustufen ist zwingend vorgeschrieben. Sichern Sie jede Ausbaustufe in einem Unterverzeichnis mit Namen NoteX; X = 1,2,3,4. Wer nur eine Ausbaustufe hat, kann bestenfalls die Note ausreichend erhalten. 3. Schreiben Sie in jede *.cpp oder *.h Datei, die Sie erzeugen, Ihren Namen als Kommentar, damit auch im Notfall eine Zuordnung möglich ist. 4. Die Verwendung der angegebenen Klassen, Methoden und Attribute auch in Ihren Bezeichnungen ist vorgeschrieben. Abweichungen werden mit Punkteabzug gewertet. 5. Es gelten weiterhin die Allgemeinen Programmierrichtlinien. Verstöße werden mit Punkteabzug gewertet. 6. Statt des oben genannten Datentyps char * kann auch der Typ string verwandt werden und statt des Feldes ein Vektor über Mannschaftszeiger. Ansonsten sind die Datentypen der Attribute zwingend vorgeschrieben. 2 Übung - Probeklausur WS 2007 / 2008 Original Klausur von Prof. Dr. Hans-Peter Weber Empfehlung: Arbeiten Sie in kleinen Schritten und sorgen Sie dafür, dass Sie jederzeit ein lauffähiges Anwendungssystem haben. Allgemeine Vorgaben: Keine globalen Variablen/Objekte, Verwendung der vorgegebenen Bezeichner ist verpflichtend, Eigene Bezeichner sind selbsterklärend; Kommentare nur wenn nötig, Principle of least privilege (z.b. const-correctness ) ist zu beachten. Aufgabenstellung: Sie sollen das Geburtstagsparadoxon aus der Wahrscheinlichkeitsrechnung durch eine Simulation über-prüfen. Hierbei wird untersucht, wieviele Personen in einer Gruppe sein müssen, damit die Wahrscheinlich-keit dafür, dass es zwei Personen in dieser Gruppe gibt, 2

3 die am selben Tag Geburtstag haben, größer als 50% ist. Erstaunlicherweise ist dies schon für relativ kleine Gruppen der Fall (daher die Bezeichnung Geburtstagsparadoxon ). Ihr Simulationsprogramm soll die Klasse Group und eine unterstützende Klasse Date (s. Klassendiagram-me) enthalten: Besonderheiten der Methoden sind: Der Standardkonstruktor von Date soll das erzeugte Objekt auf ein zufälliges Datum setzen, wie unter setrandomdate beschrieben. setrandomdate soll die Datenelemente dayinyear und year unter den folgenden Randbedingungen setzen: dayinyear soll auf zufällige Weise so gesetzt werden, dass jeder der 365 Tage eines Jahres (Schaltjahre werden nicht berücksichtigt) mit der gleichen Wahrscheinlichkeit auftritt. Der Wert für year soll zufällig und gleichverteilt aus dem Bereich 1950 bis 2007 (jeweils einschließlich) genommen werden. getdayinmonth und getmonth sollen den im Datenelement dayinyear gespeicherten Tag in der üblichen Form Tag im Monat bzw. Monat zurückgeben. Hat dayinyear also z.b. den Wert 35, gibt getdayinmonth den Wert 4 und get- Month den Wert 2 zurück. print soll das im Date-Objekt enthaltene Datum in der Form auf dem Bildschirm ausgeben. Die (konstante!) Klassenvariable numberofbirthdays hat den Wert 200. Der Konstruktor von Group soll das Attribut size auf den übernommenen Parameterwert setzen, falls dieser zwischen 1 und numberofbirthdays liegt, andernfalls auf numberofbirthdays. size gibt die Anzahl der Date-Objekte im Array birthdays an, die das aktuelle Group-Objekt nutzt (und damit die Größe der aktuell betrachteten Gruppe). birthdayonthesameday soll true zurückgeben, falls birthdays mindestens zwei Einträge mit gleichem dayinyear enthält, andernfalls false. Hierbei sind natürlich nur die ersten size Elemente von birthdays relevant! (Anmerkung: Das Geburtsjahr ist hier hier also uninteressant; es geht nur darum, dass zwei Personen am selben Tag Geburtstag haben, egal wie alt sie werden.) 3

4 sort soll die relevanten Date-Objekte im Array birthdays aufsteigend sortieren. Sie können ein Sortierverfahren Ihrer Wahl benutzen; die Sortierung soll zunächst nach year erfolgen, bei gleichem Wert von year soll nach dayinyear sortiert werden. print soll den Wert von size und die im Array birthdays enthaltenen relevanten Date-Objekte in einer geeigneten Formatierung auf dem Bildschirm ausgeben. isfull soll genau dann den Wert true zurückgeben, falls birthdays voll ist 4

5 Das Anwendungsprogramm (main) soll die beiden Klassen testen. Dazu sollen der Reihe nach folgende Aktionen ablaufen (eine Menüsteuerung soll also nicht realisiert werden): Erzeugung eines Group-Objektes mit 200 Geburtstagen, Sortieren und Ausgabe der sortierten Geburtstage. Erzeugung von zwanzig Group-Objekten mit jeweils 35 Geburtstagen und Ausgabe für jedes einzelne Objekt, ob mindestens zwei der Geburtstage auf denselben Tag im Jahr fallen oder nicht. Erzeugung von jeweils Group-Objekten beginnend ab der Größe 2 bis zur Größe 50 und Ausgabe, bei wieviel Prozent der Objekte mindestens zwei der Geburtstage auf denselben Tag im Jahr fallen. Das Ergebnis soll in Form ei-ner Tabelle ausgegeben werden, deren erste Zeilen etwa so aussehen sollten wie rechts abgebildet. Aus der Tabelle ist dann abzulesen, wie groß ein Group-Objekt sein muss (d.h. wieviele Geburtstage es enthalten muss), damit die Wahrscheinlichkeit dafür, dass mindestens zwei auf denselben Tag im Jahr fallen, größer als 50% ist (Geburtstagsparadoxon). 3 Übung - Probeklausur WS 2008 / 2009 Original Klausur von Prof. Dr. Hans-Peter Weber Empfehlung: Arbeiten Sie in kleinen Schritten und sorgen Sie dafür, dass Sie jederzeit ein lauffähiges Anwendungssystem haben. Allgemeine Vorgaben: Keine globalen Variablen/Objekte, Verwendung der vorgegebenen Bezeichner ist verpflichtend, Eigene Bezeichner sind selbsterklärend; Kommentare nur wenn nötig, Principle of least privilege (z.b. const-correctness ) ist zu beachten. 5

6 Aufgabenstellung: Aufgabenstellung: Sie sollen ein Ticketverkaufsprogramm für ein Theater mit 10 Sitzreihen und 15 Plätzen pro Reihe erstellen. Ihr Programm soll die Klassen Theatre und Ticket (s. Klassendiagramme) enthalten: 6

7 Besonderheiten der Methoden sind: Der Standardkonstruktor von Ticket soll einen unbesetzten Sitzplatz erzeugen (Die Reihennummer row und die Platznummer seat haben den Wert 0, der Ticketpreis price den Wert 0.0 und die Information occupied - ob der Platz besetzt ist - den Wert false). Ein zweiter Konstruktor übernimmt Werte für row, seat, price und occupied von außen. print soll alle Datenelemente eines Ticket-Objekts in einer geeigneten Formatierung auf dem Bildschirm ausgeben. Das Theatre hat 10 Sitzreihen und 15 Plätze pro Reihe, d.h. die (konstante!) Klassenvariable numberoftickets hat den Wert 150. Der Standardkonstruktor von Theatre soll ein unbesetztes Theater erzeugen, dessen Tickets (d.h. also die Ticket-Objekte im Array tickets) aber schon die richtigen Reihennummern und Platznummern enthalten. Außerdem soll der Preis für jedes Ticket nach folgendem System gesetzt werden: Die äußeren Plätze in der letzten Reihe (also Platz 1 und 15 in der Reihe 10) kosten beide 10 Euro. Für jede Reihe weiter vorn erhöht sich der Ticketpreis um 1 Euro und gleichzeitig erhöht sich der Ticketpreis für jeden Sitz in Richtung Mitte um 0,50 Euro. Der teuerste Platz im Theater ist also der Platz 8 in der ersten Reihe mit 22,50 Euro. sellticket soll ein vom Anwendungsprogramm übergebenes Ticket-Objekt auf folgende Weise verarbeiten: Falls der Platz mit der row und dem seat des übergebenen Objekts in dem Theatre-Objekt schon besetzt ist, soll false zurückgegeben und das übergebene Objekt nicht weiter verarbeitet werden. Falls nicht, wird der occupied-wert des passenden Platzes auf true gesetzt und außerdem true zurückgegeben. sortbyprice soll die Ticket-Objekte innerhalb des Arrays tickets nach fallendem Preis sortieren. Hierbei soll das Sortierverfahren Direktes Auswählen (Selection- Sort) benutzt werden. sortbyseat soll die Ticket-Objekte innerhalb des Arrays tickets aufsteigend nach Reihennummer und innerhalb der gleichen Reihe nach Platznummer sortieren. Sie können ein Sortierverfahren Ihrer Wahl (außer Selection-Sort, s.oben) benutzen. soldtickets soll die Anzahl der verkauften Tickets ermitteln und zurückgeben. totalrevenues soll die Gesamteinnahmen in Euro ermitteln und zurückgeben. printseats soll den Saalplan des Theaters im unten angegebenen Format auf dem Bildschirm ausgeben. Hierbei wird für einen besetzten Sitz ein x ausgegeben und für einen freien Sitz ein -. 7

8 Das Anwendungsprogramm (main) soll die beiden Klassen testen. Dazu sollen der Reihe nach folgende Aktionen ablaufen (eine Menüsteuerung soll also nicht realisiert werden): Erzeugung eines Theatre-Objektes und Ausgabe des Saalplans des leeren Theaters. Einfügen von Ticket-Objekten für zufällig ausgewählte Plätze in das Theatre- Objekt, bis insgesamt 50 Plätze besetzt sind. (Falls der gewählte Platz schon besetzt ist, soll eine entsprechende Meldung ausgegeben werden und ein weiterer Platz zufällig gewählt werden). Ausgabe der Anzahl der verkauften Tickets, der erzielten Gesamteinnahmen und des Saalplans des Theaters (entsprechend der Abbildung oben). Ausgabe aller verkauften Tickets in Form einer nach dem Ticketpreis sortierten Liste. Danach: Ausgabe aller verkauften Tickets in Form einer nach Reihe und Sitzplatz sortierten Liste. Anmerkung für das Repetitorium Wenn sie keinen geeigneten Sortieralgorithmus kennen schauen sie z.b. bei Wikipedia nach: Übung - Probeklausur SS 2010 Typ Prof.Humm Aufgabe : Hotelverwalungssystem In dieser Klausur werden Sie prototypisch ein Hotelverwalungssystem implementieren. Das folgende UML Diagramm gibt eine Übersicht über die gesamte zu erstellende Anwendung: 8

9 9

10 Entwickeln Sie die Anwendung Schritt für Schritt in der angegebenen Reihenfolge. Insgesamt gibt es 100 Punkte zu erreichen. 1: Klasse Hotel (10 Punkte) 1. Erstellen Sie eine neue Klasse Hotel. 2. Erstellen Sie eine private Instanzvariable name vom Typ string. 3. Entwickeln Sie die Funktion string getname() mit der üblichen Getter-Semantik. 4. Entwickeln Sie einen Konstruktor Hotel(string name ), in dem die Instanzvariable name initialisiert wird. 5. Stellen Sie sicher, dass Ihr Code fehler- und warnungsfrei kompiliert. 2: Klasse Guest (10 Punkte) 1. Erstellen Sie eine neue Klasse Guest (Gast). 2. Erstellen Sie eine private Instanzvariable name vom Typ string. 3. Entwickeln Sie die Funktion string getname() mit der üblichen Getter-Semantik. 4. Entwickeln Sie einen Konstruktor Guest(string name ), in dem die Instanzvariable name initialisiert wird. 5. Stellen Sie sicher, dass Ihr Code fehler- und warnungsfrei kompiliert. 3: Klasse Room (12 Punkte) 1. Erstellen Sie eine neue Klasse Room (Zimmer). 2. Erstellen Sie zwei private Instanzvariablen roomnumber und bedquantity jeweils vom Typ integer. 3. Entwickeln Sie die Funktion int getroomnumber() mit der üblichen Getter-Semantik. 4. Entwickeln Sie die Funktion int getbedquantity() mit der üblichen Getter-Semantik. 5. Entwickeln Sie einen Konstruktor Room(int roomnumber, int bedquantity ), in dem die Instanzvariable roomnumber und bedquantity initialisiert werden. 6. Stellen Sie sicher, dass Ihr Code fehler- und warnungsfrei kompiliert. 4: Klasse Reservation (16 Punkte) 1. Erstellen Sie eine neue Klasse Reservation (Reservierung). 10

11 2. Erstellen Sie drei private Instanzvariablen : guest vom Typ Guest*, room vom Typ Room* und hotel vom Typ Hotel*. 3. Entwickeln Sie die Funktion Guest* getguest() mit der üblichen Getter-Semantik. 4. Entwickeln Sie die Funktion Room* getroom() mit der üblichen Getter-Semantik. 5. Entwickeln Sie die Funktion Hotel* gethotel() mit der üblichen Getter-Semantik. 6. Entwickeln Sie einen Konstruktor Reservation(Guest* guest, Room* room, Hotel* hotel ), in dem die Instanzvariablen guest, room und hotel initialisiert werden. 7. Stellen Sie sicher, dass Ihr Code fehler- und warnungsfrei kompiliert. 5: ManagementSystem (22 Punkte) 1. Erstellen Sie eine neue Klasse ManagementSystem (ManagementSystem). 2. Erstellen Sie vier private Instanzvariablen : guest vom Typ vector<guest*>, room vom Typ vector<room*>, reservation vom Typ vecor<reservation*> und hotel vom Typ Hotel*. 3. Entwickeln Sie die Funktion Room* addroom(int roomnumber, int bedquantity) (Zimmer hinzufügen). In ihr wird ein neues Room Objekt angelegt und roomnumber und bedquantity gesetzt. Das Room Objekt wird dem Vektor room hinzugefügt und zurückgegeben. 4. Entwickeln Sie die Funktion Guest* addguest(string name) (Gast hinzufügen). In ihr wird ein neues Guest Objekt angelegt und name gesetzt. Das Guest Objekt wird dem Vektor guest hinzugefügt und zurückgegeben. 5. Entwickeln Sie die Funktion Reservation* addreservation(guest* guest, Room* room, Hotel* hotel) (Reservierung hinzufügen). In ihr wird ein neues Reservation Objekt angelegt und guest, room und hotel gesetzt. Das Reservation Objekt wird dem Vektor reservation hinzugefügt und zurückgegeben. 6. Entwickeln Sie einen Konstruktor ManagementSystem(Hotel* hotel ), in dem die Instanzvariable hotel initialisiert wird. 7. Entwickeln Sie die Funktion printallreservations() welche alle Reservierungen in folgender Form ausgibt: Hotel Name Zimmernummer Anzahl der Betten Hilton Peter 2 2 Hilton Ulla 9 1 Hilton Rosi Stellen Sie sicher, dass Ihr Code fehler- und warnungsfrei kompiliert. 11

12 6: Tests (20 Punkte) 1. Erstellen Sie ein Hotel Objekt mit dem Namen Hilton 2. Erstellen Sie ein ManagementSystem Objekt und übergeben sie dem Konstruktor das Hotel Objekt 3. Erstellen Sie drei Guest Objekte mit den Namen Ulla, Rosi und Peter 4. Erstellen Sie 100 Room Objekte mit den Zimmernummern Jedes Zimmer mitungerader Zimmernummer besitzt dabei ein (1) Bett und Zimmer mit gerade Zimmernummer besitzt zwei (2) Betten. 5. Erzeugen Sie drei Reservierungen: Ulla reserviert Zimmer 2, Peter das Zimmer 9 und Rosi das Zimmer Geben Sie alle Reservierungen am Bildschirm aus 7: Dokumentation (10 Punkte) Dokumentieren Sie die Außensicht Ihrer Anwendung, also alle öffentlichen Operationen in den *.h-dateien in deutscher oder englischer Sprache. Hinweise zur Realisierung 1. Außer dem Hilfesystem des Visual C++ sind keine Hilfsmittel erlaubt. 2. Die Einhaltung der Ausbaustufen ist zwingend vorgeschrieben. Sichern Sie jede Ausbaustufe in einem Unterverzeichnis mit Namen NoteX; X = 1,2,3,4. Wer nur eine Ausbaustufe hat, kann bestenfalls die Note ausreichend erhalten. 3. Schreiben Sie in jede *.cpp oder *.h Datei, die Sie erzeugen, Ihren Namen als Kommentar, damit auch im Notfall eine Zuordnung möglich ist. 4. Die Verwendung der angegebenen Klassen, Methoden und Attribute auch in Ihren Bezeichnungen ist vorgeschrieben. Abweichungen werden mit Punkteabzug gewertet. 5. Es gelten weiterhin die Allgemeinen Programmierrichtlinien. Verstöße werden mit Punkteabzug gewertet. 6. Statt des oben genannten Datentyps char * kann auch der Typ string verwandt werden und statt des Feldes ein Vektor über Mannschaftszeiger. Ansonsten sind die Datentypen der Attribute zwingend vorgeschrieben. Aufgabe: Marco Münch B.Sc. 12

13 5 Übung - Probeklausur SS 2010 Typ Prof.Humm Aufgabe : Bank-Verwaltungs-System In dieser Klausur werden Sie prototypisch ein Bank-Verwaltungs-System implementieren. Das folgende UML Diagramm gibt eine Übersicht über die gesamte zu erstellende Anwendung: Entwickeln Sie die Anwendung Schritt für Schritt in der angegebenen Reihenfolge. Insgesamt gibt es 100 Punkte zu erreichen. 1: Klasse Customer (10 Punkte) 1. Erstellen Sie eine neue Klasse Customer. 2. Erstellen Sie eine private Instanzvariable name vom Typ string. 3. Entwickeln Sie die Funktion string getname() mit der üblichen Getter-Semantik. 4. Entwickeln Sie einen Konstruktor Customer(string customer ), in dem die Instanzvariable name initialisiert wird. 5. Stellen Sie sicher, dass Ihr Code fehler- und warnungsfrei kompiliert. 2: Klasse Account (10 Punkte) 13

14 1. Erstellen Sie eine neue Klasse Account (Konto). 2. Erstellen Sie zwei private Instanzvariablen accountnumber vom Typ int und balance vom Typ float. 3. Entwickeln Sie die Funktion float getbalance() mit der üblichen Getter-Semantik. 4. Entwickeln Sie die Funktion void setbalance(float Balance) mit der üblichen Setter- Semantik. 5. Entwickeln Sie die Funktion int getaccountnumber() mit der üblichen Getter- Semantik. 6. Entwickeln Sie die Funktion void printaccount() welche die beiden Attribute am Bildschirm ausgibt. Kontonummer: Kontostand: Euro 7. Entwickeln Sie einen Konstruktor Account(int accountnumber ), in dem die Instanzvariable accountnumber und initialisiert wird. 8. Stellen Sie sicher, dass Ihr Code fehler- und warnungsfrei kompiliert. 3: Klasse AccountManagementSystem (16 Punkte) 1. Erstellen Sie eine neue Klasse AccountManagementSystem (Kontoverwaltungssystem). 2. Erstellen Sie drei private Instanzvariablen : accountid vom Typ int, customer vom Typ Customer* und acounts vom Typ vector<account*>. 3. Entwickeln Sie einen Konstruktor AccountManagementSystem(int accountid, Customer* customer ), in dem die Instanzvariablen accountid und customer initialisiert werden. 4. Entwickeln Sie die Funktion int getaccountid() mit der üblichen Getter-Semantik. 5. Entwickeln Sie die Funktion Customer* getcustomer() mit der üblichen Getter- Semantik. 6. Erstellen Sie die Funktion Account* createnewaccount(int accountnumber). In ihr wird ein neues Account Objekt angelegt und accountnumber gesetzt. Das Account Objekt wird dem Vektor accounts hinzugefügt und als Pointer zurückgegeben. 7. Erstellen Sie die Funktion void PayIn(Account* account, float value). Die Funktion zahlt den Geldbetrag (value) auf ein bestimmtes Konto (account) ein. ACHTUNG! Die Berechnung erfolgt im AccountManagementSystem. Tipp: getund setbalance 14

15 8. Erstellen Sie die Funktion void PayOut(Account* account, float value). Die Funktion zieht den Geldbetrag (value) auf ein bestimmtes Konto (account) ab. ACHTUNG! Die Berechnung erfolgt im AccountManagementSystem. Tipp: getund setbalance 9. Erstellen Sie die Funktion void printaccounts() welche eine Übersicht aller Konten eines Kunden ausgibt und am Ende deren Gesamt Salto. Kontostand der Konten mit der ID : Kontonummer: Kontostand: Euro Kontonummer: Kontostand: Euro Kontonummer: 3238 Kontostand: Euro Gesamtsalto Euro 10. Stellen Sie sicher, dass Ihr Code fehler- und warnungsfrei kompiliert. 4: Bank (32 Punkte) 1. Erstellen Sie eine neue Klasse Bank. 2. Erstellen Sie drei private Instanzvariablen : customer vom Typ vector<customer*>, accountmanagementsystem vom Typ vector<accountmanagementsystem*> und account vom Typ vecor<account*>. 3. Entwickeln Sie die Funktion Customer* addcustomer(string name ) (Kunde hinzufügen). In ihr wird ein neues Customer Objekt angelegt und name gesetzt. Das Customer Objekt wird dem Vektor customer hinzugefügt und zurückgegeben. 4. Entwickeln Sie die Funktion Customer* getcustomer() mit der üblichen Getter- Semantik. 5. Entwickeln Sie die Funktion AccountManagementSystem* addaccountmanagement- System(Customer* customer, int accountid) (Account Management System hinzufügen). In ihr wird ein neues AccountManagementSystem Objekt angelegt, customer und accountid setzt. Das AccountManagementSystem Objekt wird dem Vektor AccountManagementSystem hinzugefügt und zurückgegeben. 6. Entwickeln Sie die Funktion AccountManagementSystem* getaccountmanagement- System(Customer* customer ) mit der üblichen Getter-Semantik. 7. Entwickeln Sie die Funktion Account* addaccount(accountmanagementsystem* AccountManagementSystem, int accountnumber) (Konto hinzufügen). In ihr wird ein neues Account Objekt angelegt und AccountManagementSystem und account- Number gesetzt. Das Account Objekt wird dem Vektor account hinzugefügt und zurückgegeben. 15

16 8. Entwickeln Sie die Funktion void printallaccounts(), welche alle Konten auf dem Bildschirm ausgibt: Kontostand der Konten mit der ID : Kontonummer: Kontostand: Euro Kontonummer: Kontostand: Euro Kontonummer: 3238 Kontostand: Euro Gesamtsalto Euro Kontostand der Konten mit der ID : Kontonummer: 3678 Kontostand: Euro Gesamtsalto Euro 9. Entwickeln Sie die Funktion bool transfer(account* inputacount, Acount* output- Account, float value) welche einen Geldbetrag (value) vom einem bestimmten Konto (inputacount) aus ein anderes Empfängerkonto (outputaccount). Die Funktion soll false zurückgeben wenn das Konto (inputacount) über weniger Geld verfügt als der Geldbetrag zu überweisen das Empfängerkonto (outputaccount) nicht existiert 10. Stellen Sie sicher, dass Ihr Code fehler- und warnungsfrei kompiliert. 5: Tests (20 Punkte) 1. Erzeugen Sie ein Bank Objekt. 2. Erzeugen Sie drei Kunden mit addcustomer: Rosi, Heinrich und Ingrid 3. Erstellen Sie für diese drei Kunden jeweils ein Account Managment System. 4. Erzeugen Sie für diese drei Kunden jeweils ein Konto (Account) mit einer von Ihnen gewählten Kontonummer. 5. Der Kunde Heinrich eröffnet ein zusätzliches Konto 6. Zahlen Sie auf jedes Konto 500 Euro ein 7. Zeigen Sie eine komplette Übersicht aller Konten an 8. Überweisen (transfer) Sie 50 Euro vom Konto Rosi auf das Konto von Ingrid 9. Überweisen (transfer) Sie 250 Euro vom einem Konto von Heinrich auf das Konto von Ingrid 16

17 10. Zeigen Sie eine komplette Übersicht aller Konten an 6: Dokumentation (restliche Punkte) Dokumentieren Sie die Außensicht Ihrer Anwendung, also alle öffentlichen Operationen in den *.h-dateien in deutscher oder englischer Sprache. Hinweise zur Realisierung 1. Außer dem Hilfesystem des Visual C++ sind keine Hilfsmittel erlaubt. 2. Die Einhaltung der Ausbaustufen ist zwingend vorgeschrieben. Sichern Sie jede Ausbaustufe in einem Unterverzeichnis mit Namen NoteX; X = 1,2,3,4. Wer nur eine Ausbaustufe hat, kann bestenfalls die Note ausreichend erhalten. 3. Schreiben Sie in jede *.cpp oder *.h Datei, die Sie erzeugen, Ihren Namen als Kommentar, damit auch im Notfall eine Zuordnung möglich ist. 4. Die Verwendung der angegebenen Klassen, Methoden und Attribute auch in Ihren Bezeichnungen ist vorgeschrieben. Abweichungen werden mit Punkteabzug gewertet. 5. Es gelten weiterhin die Allgemeinen Programmierrichtlinien. Verstöße werden mit Punkteabzug gewertet. 6. Statt des oben genannten Datentyps char * kann auch der Typ string verwandt werden und statt des Feldes ein Vektor über Mannschaftszeiger. Ansonsten sind die Datentypen der Attribute zwingend vorgeschrieben. Aufgabe: Björn Berezowski B.Sc. Marco Münch B.Sc. 17

SS 2010. Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.

SS 2010. Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof. SS 2010 Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1 Übungsblatt 1 Übung - Probeklausur SS 2010 Typ Prof.Humm Aufgabe : Bank-Verwaltungs-System In dieser Klausur werden

Mehr

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1 Programmieren / Algorithmen und Datenstrukturen Autor: Prof. Dr. Bernhard Humm, FB Informatik, Hochschule Darmstadt Datum: 7. Oktober 200 Nachklausur Programmieren / Algorithmen und Datenstrukturen Spielregeln

Mehr

Klausur Programmieren / Algorithmen und Datenstrukturen 1

Klausur Programmieren / Algorithmen und Datenstrukturen 1 Programmieren / Algorithmen und Datenstrukturen Autor: Prof. Dr. Bernhard Humm, FB Informatik, Hochschule Darmstadt Datum: 3. Juli 200 Klausur Programmieren / Algorithmen und Datenstrukturen Spielregeln

Mehr

17 00 01 Übungen zu Computeranwendung und Programmierung WS 13/14

17 00 01 Übungen zu Computeranwendung und Programmierung WS 13/14 17 00 01 Übungen zu Computeranwendung und Programmierung WS 13/14 Übungseinheit 2. - 6. Dezember 2013 Aufgabe 1 Es gibt zwei Roboter in einem durch Mauern abgeschlossenen Labyrinth unbekannter Größe. Der

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

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Klausur Grundlagen der Programmierung

Klausur 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

Mehr

Arrays Fortgeschrittene Verwendung

Arrays Fortgeschrittene Verwendung Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre.

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre. Fakultät IV Elektrotechnik/Informatik Klausur Einführung in die Informatik I für Elektrotechniker Name:... Matr.-Nr.... Bearbeitungszeit: 120 Minuten Bewertung (bitte offenlassen : ) Aufgabe Punkte Erreichte

Mehr

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

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

Übung Datenstrukturen. Objektorientierung in C++

Übung Datenstrukturen. Objektorientierung in C++ Übung Datenstrukturen Objektorientierung in C++ Aufgabe 1a - Farben Schreiben Sie eine Klasse COLOR zur Beschreibung von Farben. Eine Farbe werde hierbei additiv durch ihren Rot-, Grün- und Blauanteil

Mehr

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

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 1. Aufgabe (Spielen mit Objekten) Gegeben sei der auch von der Veranstaltungsseite erhältliche Programmcode auf der rechten Seite, der im Detail zuerst nicht verstanden werden muss. a) Erzeugen Sie sich

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung Ludwig-Maximilians-Universität München WS 2013/14 Institut für Informatik Übungsblatt 10 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung

Mehr

Kapitel 3 Das Projekt Bankkonto Seite 1

Kapitel 3 Das Projekt Bankkonto Seite 1 Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.

Mehr

Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters

Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters Prof. Dr. Ulrich Breitschuh Hochschule Anhalt(FH) Fachbereich Informatik Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters Hinweis: Die Aufgaben 3, 6 und 8 sind testatpichtige Aufgaben.

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

188.154 Einführung in die Programmierung für Wirtschaftsinformatik Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger

Mehr

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

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Repetitorium Informatik (Java)

Repetitorium 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

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach... Ludwig-Maximilians-Universität München WS 2012/13 Institut für Informatik 19.04.2013, 12:00 14:00 Uhr Prof. Dr. R. Hennicker, A. Klarl Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung

Mehr

Java Einführung Klassendefinitionen

Java 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

Mehr

Ausgabe: :00 Abgabe: :00. Sie müssen bei Ihren Lösungen eine maximale Zeilenbreite von 120 Zeichen einhalten.

Ausgabe: :00 Abgabe: :00. Sie müssen bei Ihren Lösungen eine maximale Zeilenbreite von 120 Zeichen einhalten. Programmieren Wintersemester 2015/16 Software-Design und Qualität (SDQ) https://sdqweb.ipd.kit.edu/wiki/programmieren Prof. Dr. Ralf H. Reussner Kiana Rostami Michael Langhammer Übungsblatt 2 Ausgabe:

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

Mehr

JSF Erstellen einer einfachen Bankanwendung mit Kontoübersicht und Überweisung

JSF Erstellen einer einfachen Bankanwendung mit Kontoübersicht und Überweisung Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski JSF Erstellen einer einfachen Bankanwendung mit Kontoübersicht und Überweisung Dipl.

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

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

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 10

Fachgebiet 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

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

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 7 Prof. R. Westermann, A. Lehmann, R.

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Ü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

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation zwischen

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays 1 Kapitel 8 Ziele 2 Die Datenstruktur der kennenlernen Grundlegende Algorithmen auf in Java implementieren können Mit von Objekten arbeiten können 3 Erweiterungen zur Behandlung von : Überblick Bisher

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

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

Mehr

Tag 4 Repetitorium Informatik (Java)

Tag 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!

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultä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

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

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

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und 27.5.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine

Mehr

Diplomvorprüfung in Datenverarbeitung EBS Sommersemester 2002

Diplomvorprüfung in Datenverarbeitung EBS Sommersemester 2002 Diplomvorprüfung in Datenverarbeitung EBS Sommersemester 2002 Prüfungsaufgaben zu den Vorlesungen Datenverarbeitung im ersten und im zweiten Semester Aufgabensteller: Gleißner Die Lösungen sind auf das

Mehr

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene

Mehr

Übung Programmierung WS 2007/08 - Blatt 5

Übung Programmierung WS 2007/08 - Blatt 5 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

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe

Mehr

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b

Mehr

Überblick. 5. Objekt und Klasse, Elementfunktionen

Überblick. 5. Objekt und Klasse, Elementfunktionen Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 1 SS 2016

Mehr

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe. Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Name : Vorname : Matrikelnummer : Hauptfach : Nebenfach/Fachrichtung Hinweise : 1. Überprüfen

Mehr

Android will doch nur spielen. Java Übung

Android will doch nur spielen. Java Übung Android will doch nur spielen Java Übung Vorbereitung: Erstellen Sie mit Eclipse zunächst ein neues Java Projekt JavaUebungen. Lassen Sie die restlichen Einstellungen unverändert. Erzeugen Sie das Projekt

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2

Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2 Praktische Informatik I Vorlesung im Herbstwintersemester 2007 Autorisierte studentisch Lösungen zu Aufgabenblatt 2 zusammengestellt von Iva Tsvetkova 9.10.2007 1.Präsenzaufgaben 1.1 Entwurf einer Verwaltung

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

Einführung in die Programmierung (EPR)

Einführung in die Programmierung (EPR) Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.

Mehr

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

EndTermTest PROGALGO WS1516 A

EndTermTest PROGALGO WS1516 A EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von

Mehr

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A.

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A. »Programmieren«, WS 006/007 Nino Simunic (nino.simunic@uni-due.de) Übungsblatt 4 Aufgabe 1 OOP In dieser Aufgabe sollen Sie Autos als Klasse Car modellieren. Die Eigenschaften auf attributiver Ebene sind:

Mehr

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected Universität Augsburg, Institut für Informatik Sommersemester 2006 Prof. Dr. Werner Kießling 14. Oktober 2006 Markus Endres, Alfons Huhn, Timotheus Preisinger Informatik II Klausur 2 Hinweise: Die Bearbeitungszeit

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Praxis der Programmierung

Praxis 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

Mehr

3 Klassen, Attribute, Methoden

3 Klassen, Attribute, Methoden 3 Klassen, Attribute, Methoden Jörn Loviscach Versionsstand: 10. April 2011, 10:25 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html

Mehr

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

2. Übung zu Software Engineering

2. Übung zu Software Engineering 2. Übung zu Software Engineering WS 2007/2008 Organisatorisches [SE] als Teil des E-Mail-Betreffs nicht: SE, Software Engineering, Blatt 01 etc. Abgabe: EINE pdf-datei, spätestens 11:30 Uhr nicht: xls,

Mehr

Klassenattribute und -methoden, Vererbung

Klassenattribute und -methoden, Vererbung Klassenattribute und -methoden, Vererbung Michael Dienert 27. März 2002 1 Prüfungsaufgabe Anwendungsentwicklung Winter 2001 Die folgende Aufgabe stammt aus der Abschlussprüfung für Fachinformatiker Anwendungsentwicklung

Mehr

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere

Mehr

FB Informatik Prof. Dr. R.Nitsch. Programmieren 1. Reiner Nitsch 06151/16-8417 r.nitsch@fbi.h-da.de Homepage: www.fbi.h-da.de/~r.nitsch Raum: D14/0.

FB Informatik Prof. Dr. R.Nitsch. Programmieren 1. Reiner Nitsch 06151/16-8417 r.nitsch@fbi.h-da.de Homepage: www.fbi.h-da.de/~r.nitsch Raum: D14/0. Programmieren 1 Reiner Nitsch 06151/16-8417 r.nitsch@fbi.h-da.de Homepage: www.fbi.h-da.de/~r.nitsch Raum: D14/0.09 Was ist Programmieren Teil eines systematischen Entwurfsprozesses Planung, Definition,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Praktikum Betriebssysteme 1. Aufgabe (1)

Praktikum Betriebssysteme 1. Aufgabe (1) FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten

Mehr

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr