Document

 Documents

 264 views
of 22
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Description
Agenda für heute, 12. Mai, 2005 ã Prozeduren ã Funktionsprozeduren ã Prozedurparameter ã Lokale und globale Variablen ã Datentypen: Ordinaltypen…
Share
Transcript
Agenda für heute, 12. Mai, 2005 • Prozeduren • Funktionsprozeduren • Prozedurparameter • Lokale und globale Variablen • Datentypen: Ordinaltypen Rezept als Programm mit Prozeduren Programmieren und Problemlösen 2/18 © Institut für Computational Science, ETH Zürich Prozeduren • Eine Prozedur ist ein kleines Programm, das innerhalb eines anderen Programms steht. • Prozeduren werden eingesetzt um: a) Grosse Programme in kleinere Teile aufzuteilen b) Mehrfach verwendete Codesegmente nur einmal schreiben zu müssen Programmieren und Problemlösen 3/18 © Institut für Computational Science, ETH Zürich Pascal-Prozeduren program tempumrechnung (input, output); var x, y: real; procedure fahrenheit; begin Prozedurdeklaration y:= (x - 32) * 5 / 9; end; {fahrenheit} begin {Hauptprogramm} read (x); fahrenheit; Prozeduraufruf write (y:5:2) end. Programmieren und Problemlösen 4/18 © Institut für Computational Science, ETH Zürich Programmablauf bei Prozeduraufrufen procedure P; begin ... end; begin { Hauptprogramm } P P end. { Hauptprogramm } Programmieren und Problemlösen 5/18 © Institut für Computational Science, ETH Zürich • Prozeduren • Funktionsprozeduren • Prozedurparameter • Lokale und globale Variablen • Datentypen: Ordinaltypen Funktionsprozeduren program tempumrechnung (input, output); var x, y: real; function fahrenheit: real; begin fahrenheit:= (x - 32) * 5 / 9; end; {fahrenheit} begin {Hauptprogramm} read (x); y:= fahrenheit; Funktionsname kann in Ausdrücken write (y:5:2) verwendet werden end. Programmieren und Problemlösen 6/18 © Institut für Computational Science, ETH Zürich • Prozeduren • Funktionsprozeduren • Prozedurparameter • Lokale und globale Variablen • Datentypen: Ordinaltypen Datenübergabe mit Werte-Parameter program tempumrechnung (input, output); var Formeller Parameter x, y: real; function fahrenheit(t: real): real; begin fahrenheit:= (t - 32) * 5 / 9; end; {fahrenheit} begin {Hauptprogramm} Aktueller Parameter read (x); y:= fahrenheit(x); write (y:5:2) end. Programmieren und Problemlösen 7/18 © Institut für Computational Science, ETH Zürich Datenübergabe mit Var-Parameter program tempumrechnung (input, output); var x: real; procedure fahrenheit(var t: real): real; begin fahrenheit:= (t - 32) * 5 / 9; end; {fahrenheit} begin {Hauptprogramm} read (x); fahrenheit(x); write (x:5:2) end. Programmieren und Problemlösen 8/18 © Institut für Computational Science, ETH Zürich Syntax von Prozeduren Prozedurdeklaration procedure Bezeichner Parameterliste ; Block ; Parameterliste ( var Bezeichner : Typ ) , ; Prozeduraufruf Bezeichner ( Ausdruck ) , Programmieren und Problemlösen 9/18 © Institut für Computational Science, ETH Zürich • Prozeduren • Funktionsprozeduren • Prozedurparameter • Lokale und globale Variablen • Datentypen: Ordinaltypen Lokalität: Sichtbarkeit von Bezeichnern program H var a Sichtbar bedeutet: procedure P Auf eine Variable var b oder Konstante, die procedure Q sichtbar ist, kann var b, c man zugreifen. Eine Prozedur oder b, c, a, Q und P sichtbar Funktion, die sicht- procedure R bar ist, kann man aufrufen. a, b, R, Q und P sichtbar Unsichtbare Elemente entziehen a, b, Q, R und P sichtbar sich einem Zugriff a und P sichtbar Programmieren und Problemlösen 10/18 © Institut für Computational Science, ETH Zürich Sichtbarkeitsbereich von Hauptprogramm H program H var a Weil Prozeduren procedure P schachtelbar sind, sind auch Sichtbar- keitsbereiche schachtelbar a und P sichtbar Programmieren und Problemlösen 11/18 © Institut für Computational Science, ETH Zürich Sichtbarkeitsbereich von Prozedur P program H var a Globale Variable für die procedure P Prozeduren P, Q und R var b procedure Q Lokale Variable für die Prozedur P procedure R a, b, Q, R und P sichtbar Programmieren und Problemlösen 12/18 © Institut für Computational Science, ETH Zürich Sichtbarkeitsbereich von Prozedur R program H var a procedure P var b procedure Q procedure R a, b, R, Q und P sichtbar Programmieren und Problemlösen 13/18 © Institut für Computational Science, ETH Zürich Sichtbarkeitsbereich von Prozedur Q program H var a procedure P var b procedure Q var b, c b, c, a, Q und P sichtbar R (und seine lokalen Variablen) sind für Q procedure R nicht sichtbar! Programmieren und Problemlösen 14/18 © Institut für Computational Science, ETH Zürich Sichtbarkeitsbereich von Prozedur Q program H var a procedure P var b procedure R; FORWARD; procedure Q Die forward-Deklaration macht R (aber nicht var b, c seine lokalen Variablen) b, c, a, Q, R und P sichtbar für Q sichtbar! procedure R Programmieren und Problemlösen 15/18 © Institut für Computational Science, ETH Zürich Sichtbarkeitsregeln für Prozeduren 1. Ein Bezeichner ist innerhalb der Prozedur in der er deklariert wird sichtbar. Ebenso ist er in allen von dieser Prozedur eingeschlossenen Prozeduren sichtbar, vorbehaltlich Regel 2. 2. Wenn ein in der Prozedur P deklarierter Name N in einer inneren, von P eingeschlossenen Prozedur Q, umdeklariert wird, dann sind die Prozedur Q und alle weiteren, in Q eingeschlossenen Prozeduren, aus dem Sichtbarkeitsbereich des in P deklarierten Namens N ausgeschlossen. 3. Die Standarbezeichner von Pascal werden als bereits deklariert angesehen, und zwar in einer imaginären, das Programm umschliessenden, Prozedur. Programmieren und Problemlösen 16/18 © Institut für Computational Science, ETH Zürich • Prozeduren • Funktionsprozeduren • Prozedurparameter • Lokale und globale Variablen • Datentypen: Ordinaltypen Ordinaltypen Die Werte von Ordinaltypen stammen aus einem abzählbaren Wertebereich. Dazu gehören die folgenden einfachen Datentypen: Integer, Cardinal, Boolean, Char Ihre Werte bilden eine geordnete Menge. Jedem Wert ist eine Ordinalzahl zugeordnet: 0, 1, 2, . . . (Ausnahme: Integer) Auf jeden Wert von Ordinaltypen anwendbare Standardfunktionen: Ord() gibt die Ordinalzahl zurück Pred() gibt die Ordinalzahl des Vorgängers zurück Succ() gibt die Ordinalzahl des Nachfolgers zurück Low() gibt den kleinsten Wert des Wertebereichs zurück High() gibt den grössten Wert des Wertebereichs zurück Programmieren und Problemlösen 17/18 © Institut für Computational Science, ETH Zürich Standardfunktionen für Ordinaltypen Beispiele Ord(true) = 1 Ord('8') = 56 Ord(8) = 8 Pred(false) = true Pred(-342) = –343 Succ('m') = n Low(integer)= –2147483648 Low(word) = 0 High(word) = 65535 Programmieren und Problemlösen 18/18 © Institut für Computational Science, ETH Zürich
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks