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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ü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

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

Ü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

Ü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

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

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

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

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

Ü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

Ü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

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen

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

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

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

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

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

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

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

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

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

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

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

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

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

Informatik I Eprog HS10

Informatik I Eprog HS10 Department of Informatics software evolution & architecture lab Informatik I Eprog HS10 Übung 5 1 Aufgabe: Konstruktoren und statische Variablen 1.1 Lernziele 1. Sie können ein Java Projekt in Eclipse

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

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

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

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

Programmier-Richtlinien

Programmier-Richtlinien Programmier-Richtlinien vgl. auch http://java.sun.com/docs/codeconv/ Bemerkung o Programme werden häufiger gelesen als geschrieben o Programmtexte müssen gut lesbar und nachvollziehbar sein Feststellung

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

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

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

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

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

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

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

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

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

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

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

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

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

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) Aufgabe 3 Bankkonto Schreiben Sie eine Klasse, die ein Bankkonto realisiert. Attribute für das Bankkonto sind der Name und Vorname des Kontoinhabers,

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

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Kapitel 6. Vererbung

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

Mehr

Programmieren in C++ Arrays, Strings und Zeigerarithmetik

Programmieren in C++ Arrays, Strings und Zeigerarithmetik Programmieren in C++ Arrays, Strings und Zeigerarithmetik Inhalt Eindimensionale C-Arrays C-Strings und Strings (Mehrdimensionale C-Arrays) Arrays und Vektoren (C++) Unique Pointers (C++11) Zeigerarithmetik

Mehr

Programmieren Tutorium

Programmieren Tutorium Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,

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

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

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

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

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

Objektorientierte Programmierung

Objektorientierte Programmierung Unterlagen zur Veranstaltung Einführung in die Objektorientierte Programmierung Mit Processing Alexis Engelke Sommer 2012 Alexis Engelke Inhalt Level 1: Geometrie Hintergrundfarben Punkte, Linien und deren

Mehr

Software Engineering Übung 4 Architektur, Modulentwurf

Software Engineering Übung 4 Architektur, Modulentwurf software evolution & architecture lab Software Engineering Übung 4 Architektur, Modulentwurf 1 Informationen 1.1 Daten Ausgabe Di 27.10.2009 Abgabe So 08.11.2009 bis 23:59 Uhr Besprechung am Di 17.11.2009

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

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

Einfache Arrays. 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

WhiteStarUML Tutorial

WhiteStarUML Tutorial WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung Programmieraufwand für geübte

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

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

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr