Programmiersprache Pascal

Vordefinierte Unterprogramme

Alle Pascal-Systeme verfügen über eine gewisse Anzahl von Unterprogrammen (Funktionen und Prozeduren), die dem Programmierer zur Nutzung bereitgestellt werden.
Dabei sind zu unterscheiden Zu unterscheiden sind ferner Der Import von Unterprogrammen ist in Standard Pascal nicht vorgesehen, wird aber von den meisten Pascal-Systemen unterstützt, leider jedoch oft auf unterschiedliche Weise. Extended Pascal sieht eine einheitliche Lösung vor, ist bisher aber kaum umgesetzt.

Bei den meisten vordefinierten Unterprogrammen handelt es sich um Funktionen.

Vordefinierte Unterprogramme können durch eigene Pascal-Unterprogramme ersetzt werden, die Namen der Unterprogramme sind nicht reserviert.
Da zum Beispiel einige System-Unterprogramme aber eine variable Anzahl von Parametern zulassen, ist ein derartiges Ersetzen jedoch nicht immer ohne Funktionalitätsverlust möglich.

Unterprogramme in Standard Pascal

Arithmetische Funktionen (arithmetic functions)

  Abs(x)          Absolutbetrag von x
  Sqr(x)          Quadrat von x
  Sqrt(x)         Quadratwurzel von x
  Sin(x)          Sinus von x
  Cos(x)          Cosinus von x
  ArcTan(x)       Arcustangens von x (Hauptwert)
  Exp(x)          Exponentialwert von x
  Ln(x)           natürlicher Logarithmus von x
Transferfunktionen (transfer functions, conversion routines)
  Trunc(x)        ganzer Anteil von x
  Round(x)        nächstgelegene ganze Zahl zu x
Ordinale Funktionen (ordinal functions)
  Ord(x)          Ordinalzahl von x
  Chr(x)          Zeichen mit der Ordinalzahl x
  Succ(x)         Nachfolger von x
  Pred(x)         Vorgänger von x
Logische Funktionen (boolean functions)
  Odd(x)          x ungerade ?
  Eof(f)          Ende von Datei f erreicht ?
  Eoln(f)         Zeilenende in Textdatei f erreicht ?
Prozeduren zur dynamischen Speicherverwaltung (dynamic allocation procedures)
  New(p)          Zeiger p wird Adresse eines dynamisch angeforderten
                  Speicherbereichs zugeordnet
  Dispose(p)      der dynamisch angeforderte Speicherbereich, auf den der
                  Zeiger p weist, wird freigegeben
Ein-/Ausgabeprozeduren
  Read(...)       Einlesen
  Readln(...)     Einlesen aus Textdateien mit Zeilenwechsel
  Write(...)      Ausgabe
  Writeln(...)    Ausgabe in eine Textdatei mit Zeilenwechsel
  Page(...)       Seitenwechsel bei einer Textdatei
Prozeduren zur Dateiarbeit
  Reset(f)        Datei f zum Lesen öffnen
  Rewrite(f)      Datei f zum Schreiben öffnen (f wird neu erstellt)
  Get(f)          aus der Datei f lesen
  Put(f)          in Datei f schreiben (anfügen an das Dateiende)
Turbo Pascal, Delphi

Die System-Unterprogramme sind in der Unit System zusammengefaßt.
Ein Import dieser Unterprogramme mittels USES ist nicht erforderlich.

Unterschiede zum Standard existieren hinsichtlich der Prozeduren zur Dateiarbeit.
Darüberhinaus gibt es zahlreiche weitere Unterprogramme, von denen viele in anderen Pascal-Systemen nicht verfügbar sind.

Liste der Unterprogramme in Delphi 1.0

XL Pascal

Die System-Unterprogramme von Standard Pascal stehen zur Verfügung.
Sowohl im Standard-Modus als vor allem auch im VS-Modus gibt es zusätzliche System-Unterprogramme.

Extended Pascal

Die arithmetischen Funktionen sind auch für den Datentyp COMPLEX verfügbar. Für diesen Datentyp gibt es zusätzliche Funktionen:

  Re(z)         Realteil von z
  Im(z)         Imaginärteil von z
  Arg(z)        Argument von z
  Cmplx(re,im)  Bildung einer komplexen Zahl aus Real- und Imaginärteil
  Polar(l,w)    Bildung einer komplexen Zahl in Polarkoordinaten
Funktionen zur Arbeit mit Zeichenketten
  Length(s)     ermittelt Länge einer Zeichenkette
  Index(s1,s2)  ermittelt Position des Substrings s2 in s1
  Substr(s,i,j) extrahiert Substring aus s
  Substr(s,i)   extrahiert Substring aus s
  Trim(s)       entfernt abschließender Leerzeichen aus s
  Eq(s1,s2)     testet, ob s1 und s2 lexikographisch gleich sind
  Ne(s1,s2)     testet, ob s1 und s2 lexikographisch verschieden sind
  Ge(s1,s2)     testet, ob s1 lexikographisch größer oder gleich ist
  Lt(s1,s2)     testet, ob s1 lexikographisch kleiner als s2 ist
  Le(s1,s2)     testet, ob s1 lexikographisch kleiner oder gleich ist
  Gt(s1,s2)     testet, ob s1 lexikographisch größer als s2 ist
Prozeduren zur Arbeit mit Zeichenketten
  ReadStr       liest Daten von einer Zeichenkette
  WriteStr      schreibt Daten auf eine Zeichenkette
Weitere zusätzliche vordefinierte Unterprogramme:
  GetTimeStamp  liefert Datum und Uhrzeit als Record (Prozedur)
  Date          liefert Datum als Zeichenkette (Funktion)
  Time          liefert Uhrzeit als Zeichenkette (Funktion)
  Halt          beendet Programm (Prozedur)


P. Böhme, 04.09.1996