Pascal und Delphi – strukturierte Programmierung
Pascal (Niklaus Wirth, 1970) wurde als Lehr- und Systemsprache entwickelt und ist bekannt für klare Struktur, strenge Typisierung und lesbaren Code. Delphi (Embarcadero, früher Borland) erweitert Pascal zu Object Pascal mit Klassen, Properties und einer visuellen Entwicklungsumgebung (VCL/FMX). Der freie Compiler Free Pascal (fpc) mit der IDE Lazarus hält die Sprache am Leben.
Compiler
fpc --version– Version prüfenfpc prog.pas– kompilieren (erzeugtprog)fpc -O2 prog.pas– mit Optimierungfpc -gl prog.pas– Debug-Info (gdb) einbinden- Delphi/Windows:
dcc32 prog.dpr(Kommandozeilen-Compiler)
Basissyntax
program hallo;
uses crt;
var
name: string;
begin
write('Wie heisst du? ');
readln(name);
writeln('Hallo, ', name, '!');
end.
program– Programmkopf,uses– Units/Bibliotheken einbindenvar– Variablendeklaration:i: integer; x: real; s: string; ok: boolean; c: char;const– Konstanten:const pi = 3.14159;type– eigene Typen/Records:type Punkt = record x, y: integer; end;- Blöcke:
begin ... end(Ende des Programms mitend.– Punkt!)
Kontrollstrukturen
if x > 0 then
writeln('positiv')
else
writeln('negativ');
case n of
1: writeln('eins');
2: writeln('zwei');
else
writeln('anders');
end;
for i := 1 to 10 do
writeln(i);
while x < 100 do
x := x * 2;
repeat
readln(eingabe)
until eingabe = 'ende';
Prozeduren und Funktionen
function quadrat(x: integer): integer;
begin
quadrat := x * x; { Pascal weist das Ergebnis dem Funktionsnamen zu }
end;
procedure begruesse(name: string);
begin
writeln('Hallo, ', name);
end;
Object Pascal / Delphi
type
TPerson = class
private
FName: string;
public
constructor Create(aName: string);
procedure Vorstellen;
end;
constructor TPerson.Create(aName: string);
begin
FName := aName;
end;
procedure TPerson.Vorstellen;
begin
writeln('Ich bin ', FName);
end;
- Klassen:
classmitprivate/public-Bereichen - Properties:
property Name: string read FName write FName; - Vererbung:
TKind = class(TPerson) - Units: jede Unit in eigener
.pas-Datei mitinterface/implementation
Unit-Aufbau (Free Pascal / Lazarus)
unit meineunit;
interface
function verdoppeln(x: integer): integer;
implementation
function verdoppeln(x: integer): integer;
begin
verdoppeln := x * 2;
end;
end.
Verwandte Einträge: C und C++ für Systemprogrammierung, Python für moderne Alternativen, sowie die Glossar-Begriffe Compiler, Adresse (Speicher) und Stack.