Grundlagen Programmierung



Ähnliche Dokumente
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Programmierkurs Java

Java: Vererbung. Teil 3: super()

Übungen Programmieren 1 Felix Rohrer. Übungen

Grundlagen Programmierung

1 Vom Problem zum Programm

Bedienungsanleitung Rückabwicklungsrechner

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

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

Was meinen die Leute eigentlich mit: Grexit?

ecaros2 - Accountmanager

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

Arrays Fortgeschrittene Verwendung

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

Übung Programmierung WS 2007/08 - Blatt 5

Professionelle Seminare im Bereich MS-Office

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Anwendungsbeispiele Buchhaltung

Ändern eines Kontotyps

Einführung in die Java- Programmierung

Erstellen von x-y-diagrammen in OpenOffice.calc

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

Schritte 4. Lesetexte 13. Kosten für ein Girokonto vergleichen. 1. Was passt? Ordnen Sie zu.

Tipps zur Nutzung der ViT 1 Lernen ViT Üben HAU ViT ViT ViT ViT ViT Testen ViT VORSC Bewerten RAGTIME ViT zur Vollversion ViT

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Objektorientierte Programmierung

Bedienungsanleitung für den Online-Shop

Software Engineering Interaktionsdiagramme

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

Download. Klassenarbeiten Mathematik 8. Zinsrechnung. Jens Conrad, Hardy Seifert. Downloadauszug aus dem Originaltitel:

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

1. Einführung. 2. Weitere Konten anlegen

Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

5 Projekt Bankverwaltung

ist die Vergütung für die leihweise Überlassung von Kapital ist die leihweise überlassenen Geldsumme

Bereich METIS (Texte im Internet) Zählmarkenrecherche

BsBanking. Nach dem Anmelden werden Ihnen alle Rechtsanwälte angezeigt. Sie können hier auch neue anlegen und vorhandene bearbeiten.

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Wie kann ein Fondssparplan verwaltet werden? Version / Datum V 1.0 /

Anleitungen zum KMG- -Konto

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Verbuchung von Zahlungseingängen über das PayPal-Konto

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Stundenerfassung Version 1.8

Anleitung zum Erstellen eines Freihaltetermins

Zeichen bei Zahlen entschlüsseln

Grundlagen der Theoretischen Informatik, SoSe 2008

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

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

Übungsaufgaben zur Programmiersprache Python

SEP 114. Design by Contract

Der Zwei-Quadrate-Satz von Fermat

Zählen von Objekten einer bestimmten Klasse

Studentische Lösung zum Übungsblatt Nr. 7

Problemdefinition. Cash Flow Reminder. 1 Problembeschreibung: 2 Projektziel: 3 Aufgaben des Benutzers

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

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

Inventur. Bemerkung. / Inventur

Bankeinzug von Beiträgen via Florix

Mediumwechsel - VR-NetWorld Software

Wachstum 2. Michael Dröttboom 1 LernWerkstatt-Selm.de

Zur drittletzten Zeile scrollen

Die YouTube-Anmeldung

104 WebUntis -Dokumentation

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

SS 2014 Torsten Schreiber

Zwischenablage (Bilder, Texte,...)

Lebensversicherung. OBJEKTIV UNBESTECHLICH KEINE WERBUNG

Benutzeranleitung Superadmin Tool

Dokumentation Bonuspunkteverwaltung. Verfasser(in) / Autor: Check it Consulting

Finden Sie das Girokonto, das zu Ihnen passt.

Anleitung über den Umgang mit Schildern

EINFACHES HAUSHALT- KASSABUCH

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

Kurzanleitung MAN E-Learning (WBT)

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

Aufgabe 12 Nach dem Eintippen der Kantenlänge soll die folgende Tabelle den Rauminhalt und die Oberfläche eines Würfels automatisch berechnen.

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Klicksparen. Einrichtung und Nutzung von Klicksparen am Beispiel vom iphone Hamburg,

Ein Hinweis vorab: Mailkonfiguration am Beispiel von Thunderbird

Informationsblatt Induktionsbeweis

(im Rahmen der Exchange-Server-Umstellung am )

How to do? Projekte - Zeiterfassung

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

Einführung in die Programmierung für Wirtschaftsinformatik

Übungen zu Computeranwendung und Programmierung WS 13/14

Arbeiten mit UMLed und Delphi

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Vorkurs C++ Programmierung

Ein Bild in den Text einfügen

Enigmail Konfiguration

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

ASA Schnittstelle zu Endian Firewall Hotspot aktivieren. Konfiguration ASA jhotel

Software Engineering Klassendiagramme Assoziationen

Primzahlen und RSA-Verschlüsselung

2.1 Erstellung einer Gutschrift über den vollen Rechnungsbetrag

Transkript:

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 direkt in BlueJ ein Objekt der Klasse Kasten unter Nutzung des parameterlosen Konstruktors und führen Sie dreimal die Methode tick() aus. Was passiert? b) Erzeugen Sie sich direkt in BlueJ ein Objekt der Klasse Kasten unter Nutzung des Konstruktors mit dem Parameterwert 4 und führen Sie fünfmal die Methode tick() aus. Was passiert? c) Erzeugen Sie sich direkt in BlueJ drei Objekte der Klasse Kasten unter Nutzung des parameterlosen Konstruktors. Führen Sie auf dem ersten entstandenen Objekt die Methode setnaechster aus und übergeben Sie das zweite entstandene Kasten-Objekt als Parameter. Führen Sie auf dem zweiten entstandenen Objekt die Methode setnaechster aus und übergeben Sie das dritte entstandene Kasten-Objekt als Parameter. Führen Sie dann viermal die Methode tick() auf dem ersten Kasten-Objekt aus. Was passiert? d) Realisieren Sie die Aufgaben a) bis c) vollständig unter der Nutzung von Code Pad. e) Schreiben Sie eine neue Klasse Kastenspielerei, die ohne Objektvariablen auskommt und a)-c) jeweils in eigenen Methoden realisiert. public class Kasten{ private Integer zaehler = 0; private Integer grenze = 2; private Kasten naechster; private EinUndAusgabe io = new EinUndAusgabe(); public Kasten(Integer g){ this.grenze = g; public Kasten(){ public void tick(){ this.zaehler = (this.zaehler + 1) % this.grenze; io.ausgeben(""+this.zaehler); if(this.naechster!= null){ if(this.zaehler == 0) { this.naechster.tick(); else { this.naechster.zeigen(); else{ io.ausgeben("\n"); public void zeigen(){ io.ausgeben(""+this.zaehler); if(this.naechster!= null){ this.naechster.zeigen(); else{ io.ausgeben("\n"); public void setnaechster(kasten k){ this.naechster = k; f) Versuchen Sie graphisch zu veranschaulichen, was in c) bei der Ausführung von tick() passiert. g) Was passiert warum, wenn Sie bei einem Kastenobjekt die Methode setnaechster aufrufen und dasselbe Kasten-Objekt als Parameter übergeben? h) [nur für sehr schnelle Leute] Führen Sie a)-g) nochmals mit Objekten der Klasse KastenInv durch, nutzen Sie dann aber die Methode tack() statt tick() in allen Aufgaben. Seite 1 von 5

2. Aufgabe (Analyse von if) Überlegen Sie sich, welche Werte für die Parameter x, y, und z jeweils der Methode analyse() von der rechten Seite übergeben werden müssen, so dass die angegebenen Strings zurückgegeben werden. x y z Ausgabe nullo xman xhalf never ever perhaps yo oh ah nah why public class NoName{ public String analyse(integer x, Integer y, Integer z){ if(x==null y==null z==null){ return "nullo"; if(x>y){ if (x>z){ return "xman"; else { if (2*x>z){ return "xhalf"; else { if(y>z) { return "never ever"; return "perhaps"; else { if (y>2*z){ return "yo"; if(y>z){ return "oh"; else { if (2*z>y){ return "ah"; if (x+y>z-2){ return "nah"; return "why";. 3. Aufgabe (einfache Methoden und if) Schreiben Sie eine Klasse Ueberpruefung, die ohne Objektvariablen auskommt und Objekte der Klasse EinUndAusgabe (s. Veranstaltungsseite) zum Einlesen und Ausgeben nutzt, wenn dies ab c) gefordert ist. Schreiben Sie die folgenden Methoden, bedenken Sie immer, dass Objekte eventuell null sein kein können und geben Sie dann als Ergebnis auch den Wert null zurück. a) Schreiben Sie eine Methode summe(integer,integer,integer), die drei Zahlen übergeben bekommt und die deren Summe zurück gibt. b) Schreiben Sie eine Methode minimum(integer,integer,integer), die drei Zahlen übergeben bekommt und die deren Minimum zurück gibt. c) Schreiben Sie eine Methode rechteckanalyse() mit folgendem Ablauf. Ein Nutzer gibt die Länge und Breite eines Rechtecks ein. Geben Sie dazu die Fläche und den Seite 2 von 5

Umfang des Rechtecks aus. Ein Beispielablauf sieht wie folgt aus, Eingaben sind umrandet. Länge des Rechtecks: 4 Breite des Rechtecks: 3 Umfang: 14 Fläche: 12 d) Schreiben Sie eine Methode empfehlen() mit folgendem Ablauf. Ein Nutzer wird aufgefordert, seine letzten Schulnoten in den Fächern Mathematik und Englisch einzugeben. Das Programm berechnet daraufhin eine Studienempfehlung. Dabei soll die Note in Mathematik mindestens 2,3 und in Englisch 3,0 für eine Empfehlung Informatik sein. Sind beide Noten schlechter, wird vom Informatikstudium abgeraten. Falls nur die Englischnote zu schlecht ist, wird ein Hinweis ausgegeben, dass eine bedingte Studienempfehlung für Informatik ausgegeben werden kann. Falls nur die Mathematik-Note zu schlecht ist, soll zu einem Fremdsprachenstudium geraten werden. Ein Beispielablauf sieht wie folgt aus, Eingaben sind umrandet. Mathematik-Note: 2.7 Englisch-Note: 2.7 Empfehlung: Fremdsprachen-Studium e) Schreiben Sie eine Methode tagexistiert() mit folgendem Ablauf. Ein Nutzer gibt den Tag, den Monat und das Jahr ein und die Methode gibt als Text auf dem Bildschirm aus, ob der Tag existiert. Man erkennt Schaltjahre daran, dass sie durch vier teilbar sind, falls das Jahr auch durch 100 teilbar ist, muss es allerdings auch durch 400 teilbar sein, um ein Schaltjahr zu sein (2000 und 2400 sind Schaltjahre, 2100, 2200 und 2300 nicht. (Ein switch-befehl kann hilfreich sein.) Ein Beispielablauf sieht wie folgt aus, Eingaben sind umrandet. Tag: 29 Monat: 2 Jahr: 2100 Tag existiert nicht 4. Aufgabe (einfache Schleifen) Schreiben Sie eine Klasse Dekoration, die eine Objektvariable vom Typ Interaktionsbrett nutzt und die folgende Methoden implementiert. a) Mit Hilfe einer while-schleife werden in einer Methode sechs Quadrate nebeneinander gezeichnet. b) Ähnlich zu a) werden 10 Quadrate gezeichnet, wobei jedes dritte Quadrat fehlt (damit sind es nur sieben Quadrate). c) Mit Hilfe einer for-schleife werden in einer Methode fünf Nikolaushäuser nebeneinander gezeichnet. d) Mit Hilfe einer for-schleife wird in einer Methode das Muster mit dem umrahmten Quadrat gezeichnet. e) Mit Hilfe zweier ineinander geschachtelter Schleifen entsteht die gezeigte Treppe. f) Mit Hilfe zweier ineinander geschachtelter Schleifen entsteht die gezeigte Pyramide. g) Mit Hilfe zweier ineinander geschachtelter Schleifen entsteht die gezeigte Mauer. Seite 3 von 5

5. Aufgabe (Erstellung und Bearbeitung eines Objekts) Schreiben Sie eine Klasse Konto, die eine einfache Kontoverwaltung ermöglicht. Jedes Konto hat einen Inhaber, eine Kontonummer, den aktuellen Geldbetrag und eine maximale Überziehungssumme als Grenze. a) Schreiben Sie folgenden Konstruktor und folgende Objektmethoden: - Zur Erzeugung eines neuen Konto- Objektes werden der Inhaber, die Kontonummer und die erlaubte Überziehungssumme übergeben, der Geldbetrag wird automatisch auf 0.0 gesetzt. - Es gibt eine get-methode für den Betrag. - Es kann ein Betrag auf das Konto eingezahlt werden. - Es kann ein Betrag vom Konto abhoben werden, dies wird verweigert, wenn man unter die Überziehungssumme fallen würde. - Es können Zinsen auf das Konto gerechnet werden, dabei wird der Zinssatz übergeben. Falls dadurch das Konto überzogen wird, wird eine Warnung ausgegeben. b) Ergänzen Sie JUnit-Testfälle, mit denen Sie Ihre Methoden testen können. Leider sind Textausgaben nicht prüfbar. c) Schreiben Sie einen Nutzungsdialog in einer Klasse Kontodialog, mit dem der Konstruktor und alle Methoden aufgerufen werden können, eventuell werden dazu weitere Methoden benötigt. Wird ein neues Konto angelegt, wird dieses neue Objekt bearbeitet. Ein Beispieldialog kann wie folgt aussehen, Eingaben sind umrandet. 1 Inhaber: Heinz Kontonr: 345 Überziehungskredit: 100 Heinz (345) Kontostand: 0 2 Betrag: 100 Heinz (345) Kontostand: 100 3 Betrag: 199 Heinz (345) Kontostand: -99 - Integer kontonr - String inhaber - Double betrag - Double grenze Konto + Konto(String,Integer,Double) + getbetrag(): Double + einzahlen(double):void + abheben(double):void + zinsen(double):void + tostring():string 3 Betrag: 5 Geht nicht, Konto überzogen Heinz (345) Kontostand: -99 4 Prozentsatz: 10 Konto überzogen Heinz (345) Kontostand: -108.9 0 Heinz (345) Kontostand: -108.9 Seite 4 von 5

6. Aufgabe (Schleifen und Sammlungen [ab h) schwierig]) Schreiben Sie eine Klasse Kontenverwaltung, die Ihre frühere Klasse Konto nutzt und eine Sammlung von Konten verwaltet. Schreiben Sie einen Nutzungsdialog, der folgende Methoden anbietet, die dann umgesetzt werden sollen: a) Anlegen eines neuen Kontos, dabei wird sichergestellt, dass die Kontonummer noch nicht vergeben ist b) Ausgabe aller verwalteten Konten c) Einzahlung auf ein auswählbares Konto d) Auszahlung von einem auswählbaren Konto e) Interne Überweisung, mit der Geld von einem verwalteten Konto auf ein anderes verwaltetes Konto überwiesen werden kann f) Löschen eines Kontos g) Ausgabe aller Konten mit negativem Geldbetrag h) Ausgabe aller Inhaber, die mehr als ein Konto haben i) Vereinigung von mehreren Konten eines Inhabers zu einem neuen Konto, dabei wird der Name des Inhabers eingegeben und wenn er mehr als ein Konto hat, ein neues Konto erzeugt (mit eindeutiger Kontonummer) und alle Geldbeträge auf dieses Konto eingezahlt, die Überziehungssumme berechnet sich als Maximum der Überziehungssummen der alten Konten Es ist sicherlich sinnvoll weitere Methoden, auch in der Klasse Konto, zu ergänzen. Überlegen Sie sich, dass es sinnvoll ist, am Anfang bereits einige Konten anzulegen, damit man beim Neustart des Programms nicht immer wieder neue Werte eintragen muss. Versuchen Sie weiterhin die Ein- und Ausgaben von den eigentlichen Berechnungen in verschiedene Methoden zu trennen. Schreiben Sie für Ihre Berechnungen JUnit-Tests. Der Nutzungsdialog kann wie folgt aussehen: (2) alle Konten (3) einzahlen (4) auszahlen (5) ueberweisen (6) loeschen (7) negative Konten (8) mehrere Konten (9) Kontovereinigung Seite 5 von 5