Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

10. Grundlagen imperativer Programmiersprachen

Ähnliche Präsentationen


Präsentation zum Thema: "10. Grundlagen imperativer Programmiersprachen"—  Präsentation transkript:

1 10. Grundlagen imperativer Programmiersprachen
Ein Turbo-Pascal-Beispielprogramm: PROGRAM Differenz; USES WinCRT; VAR x, y: Integer; BEGIN Write('Bitte geben Sie zwei Zahlen ein'); Readln(x,y); Write('Die Differenz von ', x, ' und', y, 'ist '); WHILE x <> y DO IF x > y THEN x := x - y ELSE y := y - x; Writeln(x) END. Programmkopf Uses-Anweisung Programmblock . Programmkopf: PROGRAM Bezeichner ;

2 Aufbau von Pascal-Programmen
Programmblock: Deklarationsteil Anweisungsteil Anweisungsteil: BEGIN Anweisung END ; Deklarationsteil (vorläufig): CONST Bezeichner : Datentyp Ausdruck mit konst. Ergebnis ; = VAR Bezeichnerliste : Datentyp ;

3 Lexikalische Einheiten
Bezeichner: Folge von Buchstaben und Ziffern, erstes Zeichen Buchstabe, Groß-/Kleinschreibung irrelevant Schlüsselwörter: festgelegte Bedeutung in Programmen, dürfen nicht als Bezeichner verwendet werden Konstanten: • Zahlkonstanten (17, -22, +0.12, E-6), • Zeichenketten ('Leipzig kommt', 'wUrx23', ’Die Sonne scheint') •logische Konstanten (true, false) • Mengenkonstanten •Zeigerkonstante nil (später) Kommentare: beliebiger Text in geschweiften Klammern {...} oder(*...*) Operatoren: Zuweisungsoperator := weitere Operatoren not, *, /, div, mod, and, +, -, <, <=, =, <>, >=, >, in Trennzeichen: ( ) [ ] . .. , ; : =

4 Schlüsselwörter and case div end goto inherited mod of program shl to
uses array const do file if inline nil or record shr type var asm constructor downto for implementation interface not packed repeat string unit while begin destructor else function in label object procedure set then until with

5 Pascal-Datentypen Skalare Typen Zeiger- Typen Strukturierte Typen
Aufzählungs- typen Inhomogene Typen Homogene Typen REAL Unterbereichs- typen Verbunde BOOLEAN Selbstvereinbarte Typen Felder Dateien INTEGER Mengen CHAR

6 Konstanten und Variablen
Konstante: Bezeichnung + Wert Bezeichnung „10“ Wert I0I0 Variable: Ort + Wert Symbolischer Bezeichner „Pegel“ Ort Adresse 4711 Wert I0I0

7 Grundlegende Datentypen
BOOLEAN: Wertebereich: TRUE, FALSE Erlaubte Operationen: not, and, or und Vergleichsoperationen es ist festgelegt: FALSE < TRUE, damit lassen sich weitere logische Verknüpfungen modellieren: Implikation: Äquivalenz: exklusives Oder: A -> B A <-> B A <= B A = B A <> B A  B CHAR: Wertebereich: Buchstaben, Ziffern, Leerzeichen, Sonderzeichen Symbole werden durch Apostrophe eingegrenzt es gilt 'A' < 'B' < ... <'Z', '0' < '1' < ... < '9' erlaubte Operationen: Vergleichsoperationen sowie chr, ord, pred, succ chr(n):n-ter Character, ord(x): n, so daß x n-ter Character pred(x), succ(x): Vorgänger, Nachfolger von x

8 Grundlegende Datentypen, ctd.
INTEGER Wertebereich: alle im Rechner darstellbaren ganzen Zahlen (-MAXINT bis MAXINT) Operationen: einstellige Operationen: +,- (Vorzeichen) arithmetische Operationen: +, -, *, div, mod Vergleichsoperationen Standardfunktionen (nächste Folie) zu beachten: div ganzzahlige Division: Rundung auf nächstkleinere ganze Zahl Sei B > 0 und REST = A - (A div B) * B Dann gilt: { REST, falls REST >≥ 0 REST + B, falls REST < 0 A mod B = REAL Wertebereich: darstellbare reelle Zahlen Operationen: +, -, *, /, Vegleichsoperationen, Standardfunktionen

9 Aufzählungs- und Bereichstypen
Pascal erlaubt zu elementaren vordefinierten Typen weitere einzuführen. Aufzählungstypen (enumeration types): rot, FR sind Konstanten ihres jeweiligen Typs. Typdefinition Atommacht = (USA, RU, FR, GB, CHINA); syntaktisch korrekt, aber mit obengenannten nicht konsistent: Typ von FR wäre nicht eindeutig. Alle Vergleichsoperationen für Aufzählungstypen definiert (<, >, ≤ ≥ =, <>). Seien a und b Konstanten eines skalaren Typs S mit a <> b (z.B. INTEGER, CHAR, ..., aber nicht REAL); T = [a..b] heißt Bereichstyp über dem Grundtyp S TYPE Ampelfarbe = (rot, gelb, gruen); Tag = (MO, TU, WE, TH, FR, SA, SU); Wochenende = [SA..SU]; StopFarben = [rot..gelb]; NatZahl = INTEGER[0..MAXIMUM DIV 3];

10 Pascal-Standardfunktionen
Funktions- name ABS(X) ARCTAN(X) CHR(X) COS(X) EOF(F) EOLN(F) EXP(X) LN(X) ODD(X) ORD(X) PRED(X) ROUND(X) SIN(X) SQR(X) SQRT(X) SUCC(X) TRUNC(X) Parameter-Typen INT, REAL INT, REAL INT FILE BOOLEAN, CHAR benutzerdef. Aufz.. ohne REAL REAL Aufz. ohne REAL Ergebnis- Typen wie Parameter REAL CHAR BOOLEAN INT wie Parameter Beschreibung Betrag von X Arcustang. von X X-tes Zeichen (ASCII) Cosinus von X TRUE gdw. end of file TRUE gdw. end of line e Logarithmus von X TRUE gdw. X ungerade Position von X Vorgänger von X X gerundet Sinus von X Quadrat von X Wurzel aus X Nachfolger von X Teil von X vor Komma X

11 Ausdrücke bezeichnen Elemente eines Datentyps induktive Definition:
1. eine Konstante k vom Typ D ist ein Ausdruck vom Typ D 2. eine Variable v vom Typ D ist ist ein Ausdruck vom Typ D 3. sind t1, ..., tn Ausdrücke der Typen D1, ..., Dn und ist f:D1 x ... x Dn -> D eine Nicht-Infix-Operation, so ist f(t1,...,tn) ein Ausdruck vom Typ D 4. sind t1, t2 Ausdrücke der Typen D1, D2 und ist o:D1 x D2 -> D eine Infix-Operation, so ist (t1) o (t2) ein Ausdruck vom Typ D Wert eines Ausdrucks: 1. für eine Konstante k ist Wert(k) das durch k bezeichnete Element von D 2. für eine Variable v ist Wert(v) der in der Variablen gespeicherte Wert Wert(f(t1,...,tn)) = f(Wert(t1), ..., Wert(tn)) 4. Wert((t1) o (t2)) = Wert(t1) o Wert(t2)


Herunterladen ppt "10. Grundlagen imperativer Programmiersprachen"

Ähnliche Präsentationen


Google-Anzeigen