10. Grundlagen imperativer Programmiersprachen

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

der Universität Oldenburg
Imperative Programmierung
Forschungszentrum caesar
Zusammenfassung der Vorwoche
Ausdrücke bezeichnen Elemente eines Datentyps induktive Definition:
Pascal-Datentypen Skalare Typen Zeiger- Typen Strukturierte Typen
12. Iteration und Rekursion
Unter- und Oberklassen: Beispiel
der Universität Oldenburg
DINAMISCHE STRUKTUREN FACHBEGRIFFE 1. DER POINTERDER POINTER 2. DER BUFFERDER BUFFER 3. DER KNOTENDER KNOTEN DIE EINFACHVERKETTETE LISTE DEFINITION DEFINITION.
Java: Dynamische Datentypen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Das erste Programm (Folie 16)
boolean Datentyp und Operator
Agenda für heute, 8. Juni, 2006 Strukturierte Variablen: RecordsStrukturierte Variablen: Records Kombiniertes Strukturieren Bitmap-Dateien Datentypen:
Debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Wiederholte Programmausführung
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Konzept einer Programmiersprache!
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
Programiersprache Mustafa SÖYLEMEZ e
Purga - Scriptengine Ein Einblick.
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
Einführung in PHP 5.
Mala Bachmann, Beispiel Velorennen Velorennen mit 5 TeilnehmerInnen Wie kann die durchschnittliche Rennzeit berechnet werden?
Mala Bachmann, Beispiel Velorennen (1) Velorennen mit 5 TeilnehmerInnen Wie kann die durchschnittliche Rennzeit berechnet werden?
MODULA-2.
Agenda für heute, 18. Mai, 2006 Strukturierung von Programmen: ProzedurenStrukturierung von Programmen: Prozeduren Strukturierung von Programmen: Units.
Datentypen: integer, char, string, boolean
Agenda für heute, 20. April, 2006 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Agenda für heute, 12. Mai, 2005 ProzedurenProzeduren Funktionsprozeduren Prozedurparameter Lokale und globale Variablen Datentypen: Ordinaltypen.
Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays.
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Agenda für heute, 26. Mai, 2005 Strukturierte Variablen: RecordsStrukturierte Variablen: Records Kombiniertes Strukturieren Individualisierbare Datentypen.
Programmieren in C Grundlagen C 2
PHP: Operatoren und Kontrollstrukturen
Programmieren in C Grundlagen C 2
Vorkurs Programmierungstechnik Einführung in Pascal Michael Gellner Lehrstuhl für Softwaretechnik am Institut für praktische Informatik der Universität.
Kurzreferat über Funktionen und Prozeduren Von Alexander RothHomepage:
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Der Datentyp Verbund (record)
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
(Syntax, Strings/Zahlen, Variablen, Arrays)
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Delphi Chars und Strings
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
The Programming Language Pascal
Prüfungsbesprechung Barbara Scheuner Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger.
Extended Pascal Erweiterung von Pascal shadi Behzadipour shadi Shadi behzadipour.
Programmiersprache PASCAL
Variablen und Datentypen
Objektorientierte (OO) Programmierung
Wiederholte Programmausführung
Strukturierte Variablen: Records
Datentypen: integer, char, string, boolean
Programmieren und Problemlösen
Prüfungsbesprechung Barbara Scheuner
Strukturierte Variablen: Records
Datentypen: integer, char, string, boolean
Parametrisierte Prozeduren und Funktionen
SS 04 Christiane Rauh Christian Hellinger
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
The Programming Language Pascal
 Präsentation transkript:

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 ;

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

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, -12.345E-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: ( ) [ ] . .. , ; : =

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

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

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

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

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

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];

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

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 3. Wert(f(t1,...,tn)) = f(Wert(t1), ..., Wert(tn)) 4. Wert((t1) o (t2)) = Wert(t1) o Wert(t2)