Sachinformation. TButton. TLabel. TMemo

Ähnliche Dokumente
8. Fachseminar Informatik Martin Jakobs Einstieg in die Objektorientierte Programmierung (Standard 1 / 3)

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Objektorientierte Modellierung (1)

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

Programmierung in Delphi

Delphi Grundkurs Seite 31

Software Engineering Klassendiagramme Einführung

Einführung in die Informatik

Probeklausur: Programmierung WS04/05

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Übungen Programmieren 1 Felix Rohrer. Übungen

Programmierung mit Delphi

Objektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation

PIWIN 1 Übung Blatt 5

Kapitel 6. Vererbung

Arbeiten mit UMLed und Delphi

Delphi eine Einführung

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Ein Softwareprojekt mit Delphi

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Repetitorium Informatik (Java)

Java Einführung Klassendefinitionen

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

Informatik GK 12 Klassen Klassen programmieren in Delphi am Beispiel der konkreten Klasse Auto

Kapitel 6. Vererbung

Kapitel 6. Vererbung

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

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

Grundlagen Programmierung

Überschreiben von Methoden

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Klausur Softwaretechnologie WS 2014/15

Erster Bug: eine Motte

SWE5 Übungen zu Software-Engineering

Informatik I Übung, Woche 40

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten)

Institut für Informatik Christian-Albrechts-Universität zu Kiel. Borland Delphi. Einführung in die Programmiersprache

Oracle: Abstrakte Datentypen:

Simulation von digitalen Schaltungen

VU Objektorientierte Modellierung Übung 1

Arbeitsblatt Übungen in Delphi Informatik Klasse: Datum: 1. Juni 2007

Einführung in Delphi. Komponenten regeln die Dateneingabe und Datenausgabe.

Arbeitsblatt 5 EAD II NetBeans

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Objektorientierung II

6. Zustandsorientierte Modellierung

Vorlesung Datenbank-Entwurf Klausur

JAVA - Methoden

Übung 1: Object Inspector

01. Grundprinzipien der Vererbung

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Einführung in die Programmierung 1

Wie baue ich mir einen Chat

Software Engineering Klassendiagramme Assoziationen

Inhalt: Version 1.7.5

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

Einführung in die Programmierung Vorlesungsprüfung

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

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Sin-Funktion vgl. Cos-Funktion

Einstieg in die Informatik mit Java

RO-Tutorien 3 / 6 / 12

Theorie zu Übung 8 Implementierung in Java

LWB VIII. Programmieren mit Delphi Zur Laufzeit verwaltete Objekte. Zur Laufzeit verwaltete Objekte. Am Beispiel des bekannten Memory-Spieles

Lösungsvorschlag für Übungsblatt 4 Software Engineering 1 (WS 2012/13)

Informatik II Übung 6 Gruppe 7

5.2 Variablenkonzept und elementare Datentypen

Bedienung von BlueJ. Klassenanzeige

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

Javakurs für Anfänger

ALGOL 68 im Aspekt einer modernen Programmiersprache???

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.

SWT MN Vorlesung Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL?

Arbeitsblätter zu Teil I des Praktikums

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Universität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 18. Oktober 2003 Stefan Fischer, Dr.

Tutorium für Fortgeschrittene

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Bitte beachten: Die Vorschläge sind keine Musterlösung!

Objektorientierte Programmierung

Processing Info zu Variablen und Bedingungen

Propädeutikum zur Programmierung

Arrays Fortgeschrittene Verwendung

Javakurs für Anfänger

Microsoft 2010 Express/Beispiel für Grafische Oberflächen

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Klassendiagramm. (class diagram)

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

- Filme - Arbeitsblätter (digital und analog) - Internetrecherche mit de ipad - Museumsbesuch

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Einführung in die Programmierung WS 2009/10. Übungsblatt 9: Objekt-Orientierung

Einführung in die Programmierung

Transkript:

Sachinformation Oft fehlt es im Informatik-Unterricht an kurzen, zielgerichteten Aufgaben (Übungsaufgaben), mit denen Schüler/innen den Umgang mit den grundlegenden Konzepten der Objektorientierung (auch programmiertechnischer Art) üben können. Dazu gehören z.b. Übungen im Zeichnen von Klassendiagrammen und Objektdiagrammen, das programmiertechnische Implementieren einer Klasse in Programmcode oder das Lesen von fertigen Programmzeilen. Die hier vorliegenden Aufgaben sollen die genannten Aspekte wiederholen und festigen. Die Aufgaben können zudem eine überprüfbare Grundlage für Tests und/oder Klassenarbeiten bilden. Bei diesen Aufgabe wird davon ausgegangen, dass die Objektorientierung lediglich über ein grundlegendes Projekt (z.b. Baustein Das Textadventure) eingeführt wurde. Dass die Heranführung an die Objektorientierung zunächst lediglich über geht, und Themen wie Vererbung oder Datenkapselung zunächst noch nicht thematisiert wird, sollte selbstverständlich sein. Ein Klassendiagramm beinhaltet den Namen einer Klasse, die Attribute und Methoden (Prozduren und Funktionen) der entsprechenden Klasse und deutet durch die Pfeile an, welche Klasse auf Attribute und Methoden der anderen Klasse zugreift. Die Zahlen an den Pfeilen geben die Multiplizitäten an, wie viele Objekte von einer Klasse im Programm erzeugt werden: ( ein Objekt / n oder * beliebig viele /..5 zwischen und 5 Objekten). TForm Button : TButton Button2 : TButton Button3 : TButton Label : TLabel Memo : TMemo 3 TButton TLabel TMemo Die Klasse TForm sollte stets im Klassendiagramm gezeichnet werden. In der Regel werden die meisten Klassen von TForm referenziert. Ein Objektdiagramm ist ein Schnappschuss, der die Objekte und deren Referenzierung zu einem bestimmten Zeitpunkt des Programmlaufs zeigt. Dem Objektdiagramm kommt in der UML eine eher untergeordnete Rolle zu, für die Schule ist das Objektdiagramm jedoch sehr wichtig und sinnvoll. Hier erfasst der Schüler den Unterschied zwischen einem Objekt und einer Klasse. Zudem bietet das Objektdiagramm im Unterricht die Möglichkeit, Schüler ans Sprechen über zu bekommen und zu erkennen, inwieweit ein Schüler den Wirkzusammenhang zwischen Objekt und Klasse verstanden hat.

Form: TForm Button : TButton Button : TButton Button : TButton Label : TLabel Memo : TMemo Button_: TButton Button_2: TButton Button_3: TButton Label_: TLabel Memo_: TMemo Der Objektname ist im Objektdiagramm unterstrichen, die Klassenbezeichnung ist dem Doppelpunkt nachgestellt, der Objektname kann vor dem Doppelpunkt mit angegeben werden. Tatsächlich kann sich Objektname während des Ausführens eines Programms je nach Referenzierung ändern, das sollte man ohne Not im Unterricht jedoch nicht thematisieren. Die Referenzpfeile sollten direkt hinter dem Klassentyp innerhalb des Objektrahmens beginnen (anders beim Klassendiagramm). Die Ecken eines Objekts können zur besseren Unterscheidung zur Klasse abgerundet werden. In der Schule hat sich diese Vorgehensweise bewährt. Lernziele Die Schüler sollen Objektdiagramme und Klassendiagramme zeichnen können, aus einem Klassendiagramm die Implementierung in Delphi-Code vornehmen können, den Begriff der Objektreferenz verstehen. Unterrichtsverlauf Die Aufgaben sind so angelegt, dass sie in der Regel nicht am Rechner, sondern auf Papier bearbeitet werden. Die Aufgabe eignen sich zur Einzel- oder Partnerarbeit, sowie als Stundenoder Hausaufgabe. Einige Aufgaben können zudem (nach Zeit und Übungsbedarf) auch programmiert werden. Hier liegt ein Entwurf des entsprechenden Programms bei. 2

Arbeitsblatt Aufgabe Das abgebildete Delphi-Fenster besteht aus mehreren Objekten (z.b. Memo, Button, ). a) Zeichne das entsprechende Klassendiagramm. Zeichne das entsprechende Objektdiagramm. Aufgabe 2 Gegeben ist folgendes Klassendiagramm: TSchueler Name: String Alter: Integer a) Implementiere die Klasse in Delphi-Code. Von der Klasse TSchueler soll ein Objekt mit dem Namen Schueler erzeugt und mit den Attributen Lieschen Müller und 9 versehen werden. Schreibe den Delphi-Code. c) In einem Testprogramm sind Schueler bis Schueler4 in der Klasse TForm deklariert. Es werden die folgenden Zeilen ausgeführt: Schueler := TSchueler.create; Schueler.Name := Max König ; Schueler2 := TSchueler.create; Schueler2.Name := Lieschen Müller ; Schueler3 := Schueler2; Schueler4 := nil; Zeichne das Objektdiagramm. 3

Arbeitsblatt 2 Aufgabe 3 In einem Abenteuerspiel, in dem der Spieler von Raum zu Raum gehen kann, werden die Räume durch Klassen realisiert. a) Zeichne das Klassendiagramm zu folgendem Objektdiagramm: Form: TForm Kantine : TRaum Flur : TRaum Dachboden : TRaum Kantine: TRaum Beschreibung = Essensreste liegen auf dem Boden besucht = false Flur: TRaum Beschreibung = Ein Flur mit 2 Treppenaufgängen besucht = false Dachboden: TRaum Beschreibung = Ein rumpeliger Dachboden besucht = false Liste alle Anweisungen auf, die zur Entstehung des Objektdiagramms geführt haben. Aufgabe 4 Liste alle Anweisungen auf, die zu diesem Objektdiagramm geführt haben. Form: TForm Schueler : TSchueler Klassenbester : TSchueler Schulsieger : TSchueler Stufensieger: TSchueler Schuler: TSchueler nil Aufgabe 5 Erkläre schrittweise, was bei den Anweisungen passiert: a) Schueler := TSchueler.create; Dachboden.Beschreibung = Ein rumpeliger Dachboden ; c) Schulsieger := Klassenbester; 4

Arbeitsblatt 3 Aufgabe 6 Als Vorbereitung für die Abiturarbeit in Deutsch soll ein kleines objektorientiertes Programm geschrieben werden, das die Inhalte mehrerer Literaturklassiker anzeigen kann. Die Bücher sollen durch eine Klasse beschrieben werden. Zu den Büchern wird jeweils der Titel und Kurzinhalt gespeichert. Bsp.: Faust Faust liebt Gretchen, Pakt mit dem Teufel, Faust verjüngt sich, am Ende Gretchen tot oder Kabale und Liebe Ferdinand liebt Luise, Ferdinands Vater ist dagegen, Ferdinand vergiftet Luise und bringt sich um oder Wallenstein 30-jähriger Krieg, Wallenstein vertraut den falschen Leuten und wird umgebracht Ein dynamisches Anlegen von Büchern in hier noch nicht vorgesehen. Alle Objekte und Attribute werden in der FormCreate-Methode angelegt. Die Bücher werden als Array verwaltet (max. 20 Bücher), die Ausgabe von Titel und Inhalt erfolgt über Angabe der Array-Nummer. a) Erstelle das Klassendiagramm mit den Klassen TForm und TBuch. Implementiere das Delphi-Programm. Aufgabe 7 Das Programm aus Aufgabe 7 soll so erweitert werden, dass zusätzlich zu den schon vorhandenen Büchern weitere Bücher per Hand eingegeben werden können. a) Dazu wird auf Knopfdruck. ein Objekt erzeugt, 2. der Titel zugewiesen, 3. der Inhalt zugewiesen. Bei der Ausgabe des entsprechenden Buchs soll erweiternd geprüft werden, ob das Buch tatsächlich existiert (die angesprochende Referenz nicht nil ist). 5

Lösungen Lösung: Aufgabe a) TForm Button : TButton Button2 : TButton Button3 : TButton Label : TLabel Memo : TMemo 3 TButton TLabel TMemo Form: TForm Button_: TButton Button : TButton Button : TButton Button : TButton Label : TLabel Memo : TMemo Button_2: TButton Button_3: TButton Label_: TLabel Memo_: TMemo Lösung Aufgabe 2 a) type TSchueler = class Name : String; Alter : Integer; end; Schueler := TSchuelder.create; Schueler.Name := Lieschen Müller ; Schueler.Alter := 9; c) Form: TForm Schueler : TSchueler Schueler2 : TSchueler Schueler3 : TSchueler Schueler4 : TSchueler Schueler: TSchueler Name = Max König Schueler2: TSchueler Name = Lieschen Müller nil 6

Lösung Aufgabe 3 a) TForm Kantine : TRaum Flur : TRaum Dachboden : TRaum 3 TRaum Beschreibung : String besucht : boolean Kantine := TRaum.create; Flur := TRaum. create; Dachboden := TRaum.create; Kantine.Beschreibung = Essensreste liegen auf dem Boden ; Kantine.besucht = false; Flur.Beschreibung = Ein Flur mit 2 Treppenaufgängen ; flur.besucht = false; Dachboden.Beschreibung = Ein rumpeliger Dachboden ; Dachboden.besucht = false; Lösung Aufgabe 4 Schueler := TSchuler.create; Klassenbester := Schueler; Schulsieger := Schueler; Stufensieger := nil; Lösung Aufgabe 5 a) Ein Objekt vom Typ TSchueler wird erzeugt und vom Attribut Schueler aus referenziert. Dem Attribut Beschreibung des Objekts Dachboden wird die String-Variable zugeordnet. c) Das Attribut Schulsieger referenziert das Objekt, auf das die Referenz des Attributs Klassenbester zeigt. Lösung Aufgabe 6 a) TForm Buecher : array [..20] of TBuch..20 TBuch Titel : String Inhaltsbeschreibung : String vgl. Programmanhang Lösung Aufgabe 7 a) Anzahl := Anzahl + ; Buecher[Anzahl] := TBuch.Create; Buecher[Anzahl].Titel := Memo.Text; Buecher[Anzahl].Inhaltsbeschreibung := Memo2.Text; if (Buecher[StrToInt(Edit.Text)] <> nil) then begin Memo.Clear; Memo2.Clear; Memo.lines.add(Buecher[StrToInt(Edit.Text)].Titel); Memo2.lines.add(Buecher[StrToInt(Edit.Text)].Inhaltsbeschreibung); end; 7