Die folgenden Lektionen sollen helfen, den Einstieg in die prozedurale Programmierung mit Hilfe der Programmiersprache PASCAL (Lazarus) zu erleichtern. Es wird vorausgesetzt, dass eine Lazarus-IDE vorinstalliert wurde. Die in den Lektionen verwendete Programmier-Version ist zwar Delphi 6, die Programmierschritte sind aber 1:1 auf Lazarus übertragbar. Aus diesem Grund kann man die Delphi-Lektionen auch mit einer Lazarus-IDE erarbeiten.
Zu der von Lazarus unterstützen OOP erfolgen im Menü OOP weitere Darlegungen.
Lazarus starten. Lazarus öffnet automatisch eine Formularanwendung und zeigt zunächst ein leeres Formular an,
die eigentliche Arbeitsoberfläche unseres zu erstellenden Programms.
Mit Hilfe des Scriptes hello.pdf kann die erste Lektion Schritt für Schritt
nach vollzogen werden.
Das fertige Projekt kann aber auch hier herunter geladen und ausgepackt werden.
nach oben
Diese Lektion zeigt mit kleinen Schritten den Aufbau eines Delphi-Formulars für das Programm
Dreiecksberechnung und erläutert den notwendigen Quelltext des eigentlichen Programms.
Mit Hilfe des Scriptes dreieck.pdf kann diese Lektion wiederum Schritt für Schritt
nach vollzogen werden.
Das fertige Projekt kann aber auch hier herunter geladen und ausgepackt werden.
nach oben
Zum Verständnis weiterer Programmierschritte ist ein wenig Theorie notwendig.
Mit Hilfe des Scriptes theorie.pdf können die wichtigsten Grundlagen
der Programmierung mit Lazarus erarbeitet werden (obwohl das Script für Delphi geschrieben ist, können alle Aussagen
auf Lazarus übertragen werden).
nach oben
In Lektion 3 wurden unter anderem die 7 Grundstrukturen der Programmierung anhand ihrer
strukturellen Form vorgestellt. Diese Grundstrukturen existieren im Prinzip in allen Programmiersprachen.
In der folgenden Tabelle wird die PASCAL-Syntax dieser Grundstrukturen zusammengefasst.
Passende Programme
zum Üben finden sich auf der Seite Lazarus-Programme.
Struktur | Syntax | Beschreibung |
---|---|---|
Sequenz | Anweisung1; Anweisung2; Anweisung3; ... |
Jede Anweisung wird durch das Befehlsendezeichen ";" von der nachfolgenden Anweisung getrennt, nach der letzten Anweisung einer Sequenz muss kein ";" stehen. |
einseitige Alternative | IF Bedingung THEN BEGIN ... END; | Vergleichsoperatoren für die Bedingung sind: =, <, >, <=, >=, <> Beispiel: IF x < 0 THEN ..., mehrere Bedingungen können mit den Logikoperatoren OR, AND, NOT zusammengefasst werden: Beispiel: IF (x < 0)AND(x > 1) THEN ... |
zweiseitige Alternative | IF Bedingung THEN BEGIN ... END ELSE BEGIN ... END; |
Zu beachten ist, dass hinter dem ersten END (vor ELSE) kein ";" stehen darf, erst nach dem zweiten END wird mit ";" der IF-Befehl beendet. |
mehrseitige Alternative | CASE Selektor OF Wert1 : BEGIN ... END; Wert2 : BEGIN ... END; Wert3 : BEGIN ... END; ... ELSE BEGIN ... END END; |
Selektor, Wert1, Wert2, Wert3, ... sind Variablen eines ordinalen Datentyps,
Wert1, Wert2, Wert3, ... können auch Konstanten sein, Beispiele: '1', 'a', '$', '51..58', 'A..Z', der ELSE-Zweig kann entfallen. Die CASE-Anweisung wird mit END beendet. |
Zyklus - Zählschleife | FOR zähler = anfang TO ende DO BEGIN ... END; |
Zähler, Anfang, Ende sind Variablen eines ordinalen Datentyps,
Anfang und Ende können auch Konstanten sein, es finden immer genau (Ende - Anfang + 1) Schleifendurchläufe statt. |
Zyklus - anfangsgeprüfte Schleife | WHILE Bedingung DO BEGIN ... END; |
Für die Bedingung gilt das Gleiche wie für Alternativen.
Zwischen BEGIN und END stehen die entsprechenden Anweisungen,
die solange die Bedingung wahr ist wiederholt abgearbeitet werden. Die Schleife startet nur, wenn die Bedingung zu Beginn wahr ist. |
Zyklus - endgeprüfte Schleife | REPEAT Anweisungen ... UNTIL Bedingung; |
Für die Bedingung gilt das Gleiche wie für Alternativen.
Zwischen REPEAT und UNTIL stehen die entsprechenden Anweisungen,
die wiederholt abgearbeitet werden, bis die Bedingung wahr ist. Die Schleife wird in jedem Fall mindest einmal abgearbeitet. |
Verbund- Anweisung | BEGIN ... END; | Die Verbundanweisung wird nur benötigt, wenn hinter THEN, ELSE, hinter dem ":" bei CASE, bzw. in der FOR-TO-DO-Schleife oder innerhalb der WHILE-DO-Anweisung mehr als eine Anweisung steht. |