Einführung in die Programmierung (mit Delphi)

Stand: 09.01.2007

Zeitrichtwert: 27 Unterrichtsstunden

Inhaltliche Schwerpunkte Bemerkungen

Experimente mit vorgegebenen Programmen (3)

  • EVA-Grundschema
  • Objekt-Terminologie
  • Ereignisverarbeitung
  • Aufbau eines Programms

Zum Einstieg in das neue Thema werden die bisher entwickelten Webseiten mit vorgegebenen Programmen (die z. B. von Schülerinnen und Schülern in den Schuljahren zuvor entwickelt wurden) verglichen. Während die Web-Seiten vom Browser statisch angezeigt werden, weisen die Programme ein dynamisches Verhalten auf, das mit dem Grundschema "Eingabe - Verarbeitung - Ausgabe" beschrieben wird. Ziel ist es im Folgenden zu lernen, wie solche Programme aufgebaut sind und wie man sie systematisch entwickelt.

Ein sehr einfachen vorgegebenes Delphi-Programms wird jetzt genauer analysiert. Als Programm eignet sich z. B. das sog. Tag-Nacht-Programm (siehe: Damann, Wemßen: Objektorientierte Programmierung mit Delphi, Band 1. Klett Verlag 2001.): Mit Hilfe von zwei Buttons kann man den Hintergrund hell bzw. dunkel einstellen, zusätzlich erscheint die Sonne bzw. der Mond.

Mit diesem Programm wird zunächst die Programmierumgebung erkundet: Laden und Starten eines Programms, Änderungen am Formular (z. B. Verschieben von Button-Komponenten und Image-Komponenten), Veränderungen mit dem Objektmanager (z. B. Farbeinstellungen).

Anschließend werden geeignete Sprechweisen zur Beschreibung der durchgeführten Änderungen eingeführt. Es ist sinnvoll, hier bereits die Objekt-Terminologie (Objekt, Klasse, Attribut, Attributwert) zu benutzen. Wie das erfolgen kann, wird in den Materialien zur Weiterbildung) gezeigt.

Das Programmverhalten kann mit Konzepten der zustandsbasierten Modellierung beschrieben werden: Die Zustände (Tag / Nacht) werden durch Attributwerte von Objekten festgelegt, Zustandsänderungen werden durch Ereignisse ausgelöst (Button ... drücken).

Durch Analyse des Quelltextes werden die Bereiche identifiziert, die für das beobachtete Verhalten verantwortlich sind. Kleinere Veränderungen am Quelltext belegen diese Vermutungen (z. B. Veränderung von Atrributwerten). Dabei soll der Deklarationsteil aber vorerst unangetastet bleiben.

Entwicklung eines einfachen Programms (3)

  • Entwicklungsumgebung

Ein erstes einfaches Programm wird jetzt entwickelt (z. B. Simulation einer Fußgängerampel). Dabei werden die zuvor analytisch gewonnenen Erkenntnisse in einem neuen Kontext angewandt. Zudem wird die Bedienung der Entwicklungsumgebung eingeführt (Neues Projekt erstellen, Abspeichern in einem neuen Ordner, ...) und die von Delphi abgespeicherten Dateien werden kurz betrachtet. Delphi-Projekte haben von Beginn an eine recht komplexe Struktur. Es ist daher wichtig, von Beginn an Regeln zu beachten, um mit dieser Komplexität umgehen zu können.

Einführung des Variablenkonzepts (4)

  • lokale Variablen
  • einfache Datentypen
  • Wertzuweisung
  • Typumwandlung

Beim Tag-Nacht-Programm soll das jeweilige Datum (in vereinfachter Form mit einem Zählerwert auf einem Panel dargestellt) angezeigt werden.

Es wird ein einfaches Verarbeitungsmodell eingeführt, das eine Variable zum Zwischenspeichern benutzt:

  • Eingabe: der Variablen wird der aktuelle Attributwert zugewiesen
  • Verarbeitung: Erhöhung des Variablenwerts
  • Ausgabe: dem Attribut wird der neue Variablenwert zugewiesen

Zur Implementierung des Verarbeitungsmodells muss geklärt werden, wo die Variable deklariert wird (vorest als lokale Variablen) und wie die man Typumwandlungen (Zahl -> Zeichenkette, Zeichenkette -> Zahl) realisiert. (vgl. auch Einführung in die Software-Entwicklung mit Delphi - Teil 1

Als Beispiele für Übungen eignen sich einfache Ein- / Ausgabe-Situationen wie Body-Mass-Index, Währungsrechner, Maßeinheiten-Umrechner, Promille-Rechner, ... (siehe auch Fortbildungsmaterialien zur Programmierung mit Delphi

Von Beginn an werden Vereinbarungen zur Strukturierung des Quelltextes getroffen. Orientieren kann man sich z. B. an den folgenden Styleguides.

Einführung der Kontrollstruktur "Fallunterscheidung" (4)

  • Fallunterscheidung
  • Struktogramm
  • Syntax einer if-Anweisung

Beim Tag-Nacht-Programm mit Datum soll nur dann weitergezählt werden, wenn ein Übergang von Nacht auf Tag erfolgt.

Zunächst wird die beabsichtigte "Berechnungslogik" mit einem Struktogramm beschrieben und mit einem Flussdiagramm verdeutlicht. Anschließend werden die syntaktischen Details zur Implementierung geklärt.

Weitere Beispiele wie eine differenziertere Rückmeldung beim Body-Mass-Index dienen zur Übung der neuen Konzepte. Hier werden dann nach Bedarf weitere Verwendungssituationen erkundet (einseitige bzw. zweiseitige Fallunterscheidung; Schachtelung von Fallunterscheidungen).

Zur Darstellung der Struktogramme wird ein Struktogramm-Editor eingesetzt:

Ein erstes Programmierprojekt (4)

  • Pflichtenheft
  • Dokumentation
  • Benutzerfreudlichkeit
  • Verständlichkeit von Programmen

Das bisher Gelernte wird jetzt in einem etwas größeren Zusammenhang angewandt. Ziel ist es, ein interaktives Spiel zu entwickeln und dabei erste Erfahrungen zur systematischen Software-Entwicklung zu machen.

Die Anforderungen werden hierzu vorab in einem Pflichtenheft genau spezifiziert. Die entwickelten Ergebnisse werden paralell zur Erstellung dokumentiert. Zudem wird darauf geachtet, dass das Programm benutzerfreudlich gestaltet wird. (vgl. etwa Einführung in die Software-Entwicklung mit Delphi - Teil 1)

lokale und globale Variablen (3)

  • Gültigkeitsbereich und Lebensdauer einer Variablen

Das Programm zum entwickelten Spiel wird überarbeitet. Bisher wuren die Spieldaten werden immer von GUI-Objekten in lokalen Variablen kopiert. Konzeptionell besser ist es, ein sog. "internes" Datenmodell zu benutzen und die GUI-Objekte nur zur Ein- und Ausgabe zu verwenden. Dieses "interne Datenmodell" wird mit Hilfe von globalen Variablen (die als private Attribute des Formulars deklariert werden) realiert. Es stellt die Vorstufe zu eigenständig agierenden Objekten dar (vgl. auch Einführung in die Software-Entwicklung mit Delphi - Teil 1).

Weitere Übungen erfolgen im Kontext zustandsbasierter Modellierung, z..B. durch Einführung einer Zustandsvariablen für die einzelnen Spielphasen.

Einführung der Kontrollstruktur "Wiederholung" (6)

  • solange-Schleife
  • Darstellung der Semantik mit einem Flussdiagramm
  • Darstellung der Struktur mit einem Struktogramm
  • Syntax einer while-Anweisung
  • verschiedene Schleifentypen

Die Gewinnerwartungen beim entwickelten Spiel sollen durch eine wiederholte und automatisierte Durchführung des Spiels ermittelt werden.

Die wiederholende "Ablauflogik" wird mit einem Struktogramm beschrieben und mit einem Flussdiagramm verdeutlicht. Anschließend werden die syntaktischen Details zur Implementierung geklärt.

Es folgen weitere Beispiele zur Übung der while-Schleife. HJe nach Verwendungssituationen werden weitere Schleifentypen (repeat-Schleife, Zählschleife) erkundet.

Valid XHTML 1.0 Strict Valid XHTML 1.0