[OBERON] Eigene Funktionen einbinden

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von nosam, 12. November 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 12. November 2007
    So heute ma wieder lecker informatik gehabt und ne hausaufgabe auf...
    ich frage jeze nich ob mri das ma einer schnell coden kann sonder nur eine kleine sache dich ich nich raff xD

    also folgendes
    wir braucen in einem Programm ne zufallszahl udn er hat uns folgende datei gegeben:
    Code:
    MODULE Nutz; (* Sammlung nützlicher Prozeduren *)
    
    IMPORT Utils;
    
    VAR z: LONGINT;
    
    
    PROCEDURE Delay*(s:INTEGER); (* Pause von s Sekunden *)
    VAR i,j:LONGINT;
    BEGIN
     FOR i:=1 TO s*2000 DO
     FOR j:=1 TO 50000 DO
     
     END;
     END;
    END Delay;
    
    
     
    PROCEDURE RandomInt*(zahl:LONGINT): LONGINT;
    (** Es wird eine Longint-'Zufallszahl' zwischen 0 und <zahl>-1 erzeugt.*)
    (** *)
    (** Aufruf z.B. x:= Zufall.RandomInt(6)+1; *)
    (** -> Hier wird eine Zufallszahl zwischen 1 und 6 ermittelt. *)
    (** *)
    (** Im Normalfall braucht man nur INTEGER-Werte statt LONGINT-Zahlen. 
     Dann muss der Aufruf noch mit SHORT(...) umklammert werden, z.B. *)
    (** x:= SHORT(Zufall.RandomInt(6)+1); *)
     CONST a=16807;
     m=2147483647;
     q=m DIV a;
     r=m MOD a;
     VAR g: LONGINT;
     BEGIN
     g:=a*(z MOD q)-r*(z DIV q);
     IF g>0 
     THEN z:=g
     ELSE z:=g+m
     END;
     (* z*(1.0/m) zw. 0 und 1 *)
     RETURN ENTIER(z*(1.0/m)*zahl)
    END RandomInt;
    
    PROCEDURE RandomReal*(): REAL;
    (** Es wird eine Real-'Zufallszahl' zwischen 0 und 1 erzeugt.*)
    (** *)
    (** Aufruf z.B. a:= Zufall.RandomReal(); *)
     CONST a=16807;
     m=2147483647;
     q=m DIV a;
     r=m MOD a;
     VAR g: LONGINT;
     BEGIN
     g:=a*(z MOD q)-r*(z DIV q);
     IF g>0 
     THEN z:=g
     ELSE z:=g+m
     END;
     (* z*(1.0/m) zw. 0 und 1 *)
     RETURN z/m
     END RandomReal;
     
    PROCEDURE Init*;
    (** Initialisiert den Zufallsgenerator. Dies müssen Sie im Normalfall nicht tun. 
     Nur wenn Sie bei mehreren Programmläufen jedes Mal dieselben "Zufallszahlen" 
     erhalten möchten, müssen Sie einmal bei Programmstart <Init> aufrufen. *)
    BEGIN
     z:=314159; (* Zufallsgenerator initialisieren *)
    END Init;
    
    PROCEDURE Randomize;
    (* Diese Prozedur gehört zur Initialisierung des Zufallsgenerators. 
     Sie ist nicht öffentlich *)
    VAR i: LONGINT;
     min,std,sek: INTEGER;
     zufi : REAL;
    BEGIN
     Utils.GetTime(sek,min,std);
     FOR i:=1 TO sek*(min+sek) DO
     zufi:=RandomReal();
     END;
    END Randomize;
    
    BEGIN
     Init;
     Randomize;
    
    
    END Nutz.
    Ich muss sicher die Funktion RadomInt verwenden soweit war ich auch schon und dass man sie mit RadomInt(zahl) auf ruftz weiß ich auch ABER

    Was mussich machen um die funtion überhaupt einzubinden? Oo

    sicherlich
    IMPORT (irgendwas)

    aber was?
    kann mir bidde jemand helfen??

    bw is natürlich drinn

    greetz nosam
     
  2. 13. November 2007
    AW: [OBERON] Eigene Funktionen einbinden

    Kenne die sprache zwar nicht, würde aber erst mal sagen das du oben in dein program schreibst
    Code:
    IMPORT Nutz; (* Import der Sammlung nützlicher Prozeduren *)
    
    Wie es verwendet wird ist ja angegenben in dem Code.

    mfg

    P.S.: werd nochmal suchen obs wirklich so geht.

    EDIT: Hab grad das gefunden vielleicht hilfts dir
    Das Modulkonzept von Oberon
     
  3. 13. November 2007
    AW: [OBERON] Eigene Funktionen einbinden

    nash ich danke dir für deine hilfe aber habs über nacht schon auf die reihe bekommen...
    IMPORT Nutz; war richtig nur muss ich 2 sachen impoirtoieren
    einmal display und einmal nutz^^

    und ich hab das nicht durch ein komma sondern durch ein semikolon getrennt ^^

    danke dir aber trotzdem
    bw is draußen
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.