Kurz: Pascal (1970, Niklaus Wirth) wurde als Sprache für den Programmierunterricht entworfen: klar strukturiert, streng typisiert und gut lesbar.
Teil des Kurses Pascal
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-DesignerDas 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 ZeilenumbruchEin 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 -128Zuweisung 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 3Hinweis
Mathematikfunktionen wie
Power,CeiloderFloorstehen in der UnitMath(uses Math;).
Merke
- Aufbau:
program Name;—var—begin…end. - Zuweisung
:=, Vergleich=, Texte in'einfachen'Anführungszeichen - Wichtige Typen:
Integer,Int64,Double,String,Boolean,Char divundmodfür Ganzzahlen,/liefert Gleitkommazahlen
Übungsaufgabe
Berechne Umfang und Fläche eines Kreises mit Radius 5.
Quiz zur Selbstkontrolle
Wie weist man in Pascal einen Wert zu?
- := (richtig)
- =
- ==
- <-
Womit endet das Hauptprogramm?
- end. (mit Punkt) (richtig)
- end;
- }
- stop
Was ergibt 17 div 5?
- 3 (richtig)
- 3.4
- 2
- 4
Weiter im Kurs
Weiter: Kontrollfluss, Prozeduren und Funktionen
Alle Kapitel: Pascal im Überblick