home *** CD-ROM | disk | FTP | other *** search
- (*
- Title : Innentest Demo fuer die
- Verwendung von Variablen im Modul
- und fuer die Verwendung von
- Prozedurtypen
- LastEdit: 19.05.87.
- Author : Joerg BEYER;
- System : LOGITECH MODULA-2/86
- *)
- MODULE innentest;
- FROM InOut IMPORT WriteInt,
- Write,
- WriteLn,
- WriteString,
- Read;
-
- TYPE
- ProzedurTYP = PROCEDURE (CHAR);
- TextTYP = ARRAY [0..79] OF CHAR;
-
- VAR
- a : CHAR;
- n : INTEGER;
- (* n ist globale Variable *)
-
- PROCEDURE NormalProzedur (in : CHAR);
- VAR
- n : INTEGER;
- (* n ist Prozedurvariable *)
- BEGIN
- n := 0;
- INC(n);
- WriteInt(n,2);
- INC(in);
- WriteString(" Nachfolger->");
- Write(in);
- END NormalProzedur;
-
-
- MODULE InnenModul;
- IMPORT Write,WriteString,WriteInt;
- EXPORT ProzedurImModul;
- VAR
- n : INTEGER;
- (*n ist Variable des Modulrumpfes*)
- PROCEDURE ProzedurImModul (in : CHAR);
- BEGIN
- INC(n);
- WriteInt(n,2);
- INC(in);
- WriteString(" Nachfolger->");
- Write(in);
- END ProzedurImModul;
- BEGIN
- n := 0;
- END InnenModul;
-
- PROCEDURE Work (Prozedur: ProzedurTYP;
- Text : TextTYP);
- BEGIN (* Work *)
- FOR a := "a" TO "h"
- DO
- WriteString("Laufvariable->");
- Write(a);
- WriteString(Text);
- Prozedur(a);
- WriteString(" globale Variable->");
- INC(n);
- WriteInt(n,2);
- WriteLn;
- END (* for *);
- END Work;
-
- BEGIN (* Hauptprogramm *)
- n := 0;
- WriteLn;
- WriteString ("Programm Innentest");
- WriteLn;
- WriteLn;
- Work(NormalProzedur, " Prozedurvariable -->");
- WriteLn;
- Work(ProzedurImModul, " Variable im Modulrumpf->");
- END innentest.
-