EMZETT.
Login

Kurz: Pascal (1970, Niklaus Wirth) wurde als Sprache für den Programmierunterricht entworfen: klar strukturiert, streng typisiert und gut lesbar.

Teil des Kurses Pascal

Kapitel 1 von 8 im Kurs Pascal. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Was ist Pascal?

Pascal (1970, Niklaus Wirth) wurde als Sprache für den Programmierunterricht entworfen: klar strukturiert, streng typisiert und gut lesbar. Aus Pascal entstand Object Pascal – die Grundlage von Delphi (Embarcadero) und Lazarus (kostenlose Entwicklungsumgebung). Dieser Kurs nutzt den Free Pascal Compiler (fpc) im Modus objfpc.

Pascal wird in der Ausbildung, bei Delphi-Altprojekten und in Embedded-Bereichen (Free Pascal läuft u. a. auf ARM und AVR) eingesetzt. Bekannte Programme: Skype (ursprünglich), Total Commander, Teile von Photoshop, Inno Setup.

Ausführen

fpc hallo.pas            # übersetzen, erzeugt die ausführbare Datei hallo
./hallo                  # starten
fpc -Mobjfpc -Sh hallo.pas   # Object-Pascal-Modus, lange Strings
fpc -O2 hallo.pas        # optimiert
lazarus-ide              # Entwicklungsumgebung mit Formular-Designer

Das erste Programm

program Hallo;
 
begin
  writeln('Hallo, Welt!');
  writeln('1 + 2 = ', 1 + 2);
  write('ohne Zeilenumbruch');
  writeln;
end.

Ausgabe:

Hallo, Welt!
1 + 2 = 3
ohne Zeilenumbruch

Ein Programm beginnt mit program Name;, der Hauptteil steht zwischen begin und end. (mit Punkt). Anweisungen enden mit ;. Texte stehen in einfachen Anführungszeichen.

Variablen und Datentypen

Alle Variablen werden im var-Abschnitt vor dem Hauptteil deklariert:

program Typen;
 
const
  Pi2 = 6.28318;
  Gruss = 'Hallo';
 
var
  alter: Integer;
  preis: Double;
  name: String;
  ok: Boolean;
  buchstabe: Char;
  gross: Int64;
 
begin
  alter := 17;
  preis := 9.99;
  name := 'Mia';
  ok := True;
  buchstabe := 'z';
  gross := 9000000000;
  writeln(Gruss, ' ', name, ', ', alter, ' Jahre');
  writeln(preis:0:2, ' ', ok, ' ', buchstabe, ' ', gross);
  writeln(Pi2:0:3);
  writeln(SizeOf(Integer), ' ', SizeOf(Int64), ' ', High(Byte), ' ', Low(ShortInt));
end.

Ausgabe:

Hallo Mia, 17 Jahre
9.99 TRUE z 9000000000
6.283
4 8 255 -128

Zuweisung mit :=, Vergleich mit =. preis:0:2 formatiert: Mindestbreite 0, zwei Nachkommastellen.

Rechnen

program Rechnen;
uses Math;
var
  a, b: Integer;
  x: Double;
begin
  a := 17; b := 5;
  writeln(a + b, ' ', a - b, ' ', a * b);
  writeln(a div b, ' ', a mod b);    { Ganzzahldivision und Rest }
  writeln(a / b:0:3);                 { / liefert immer Double }
  x := 2.0;
  writeln(Sqrt(x):0:4, ' ', Sqr(a), ' ', Abs(-5), ' ', Round(3.5), ' ', Trunc(3.99));
  writeln(Power(2, 10):0:0);
  writeln(Odd(a), ' ', Succ(a), ' ', Pred(a), ' ', Ord('A'), ' ', Chr(66));
  writeln((a > b) and (b > 0), ' ', not (a = b), ' ', (a < 0) or (b > 3), ' ', a xor b);
  writeln(a shl 2, ' ', a shr 1, ' ', a and 3, ' ', a or 8);
  inc(a); dec(b, 2);
  writeln(a, ' ', b);
end.

Ausgabe:

22 12 85
3 2
3.400
1.4142 289 5 4 3
1024
TRUE 18 16 65 B
TRUE TRUE TRUE 20
68 8 1 25
18 3

Hinweis

Mathematikfunktionen wie Power, Ceil oder Floor stehen in der Unit Math (uses Math;).

Merke

  • Aufbau: program Name; — var — begin … end.
  • Zuweisung :=, Vergleich =, Texte in 'einfachen' Anführungszeichen
  • Wichtige Typen: Integer, Int64, Double, String, Boolean, Char
  • div und mod für Ganzzahlen, / liefert Gleitkommazahlen

Übungsaufgabe

Berechne Umfang und Fläche eines Kreises mit Radius 5.

Quiz zur Selbstkontrolle

Weiter im Kurs

Weiter: Kontrollfluss, Prozeduren und Funktionen

Alle Kapitel: Pascal im Überblick