MODULE f_param_1 EXPORTS Main; IMPORT IO, Fmt; TYPE funktion = PROCEDURE(m : mensch); (* zeiger auf funktion mit int parameter *) TYPE mensch = RECORD name : TEXT; alter : INTEGER; size : INTEGER; END; VAR ich := mensch{"daniel", 23 , 184}; du := mensch{"noname", 115, 9}; PROCEDURE ausgabe1(pers : mensch) = BEGIN IO.Put("Die Person heisst " & pers.name & ", ist " & Fmt.Int(pers.alter) & " Jahre alt.\n"); IO.Put("Groesse der betreffenden Person ist " & Fmt.Int(pers.size) & "cm.\n"); END ausgabe1; PROCEDURE ausgabe2(pers : mensch) = BEGIN IO.Put("Name : " & pers.name & "\n"); IO.Put("Alter : " & Fmt.Int(pers.alter) & "\n"); IO.Put("Groesse : " & Fmt.Int(pers.size) & "\n"); END ausgabe2; PROCEDURE personen(print : funktion) = BEGIN IO.Put("1. Person :\n"); print(ich); IO.Put("2. Person :\n"); print(du); END personen; BEGIN personen(ausgabe1); IO.Put("\n --------------------------------- \n\n"); personen(ausgabe2); END f_param_1.