DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦5955a0f9d⟧

    Length: 19168 (0x4ae0)
    Notes: Mikados TextFile, Mikados_K
    Names: »AEDITFIL«

Derivation

└─⟦d32d3be74⟧ Bits:30005367 WordWork v.2.5 Dansk Funk.Taster (21.01.1982
    └─⟦this⟧ »AEDITFIL« 

Text

est Miefddf=::0=::0øolffsgAnne ==== ss yHHHHHH   gfff  $      ffffføol=::0fddfMieAnnePhilå$ldes til gruppestyrelsesmøde0 (               Onsdag d.3. nov. kl 19.30( %                hos Per, Lupinvej 28.% 5        Det er vigtigt at vi ser så mange som muligt,53        undskyld det korte varsel; men vi skal have34        skub i planerne for årets juletombola og det43        kræver lynsnar handling hvis det skal kunne3        lykkes.         På dagsordenen iøvrigt: 0                Initiativer for at skaffe ledere0                 Økonomi$                Materielanskaffelser$ /                Planlægning af vinterens møder./ (        På forhåbentlig snarligt gensyn.(  5                                        Spejderhilsen5s. He has also stumb-=<led upon a reference to the work you did with Iain Watson on<="Symmetric multistep methods for periodic initial value prob-=;lems (rep. no.12,1975) and I would ask if you could send me;=a copy of this report.Any more recent work on periodic i.v.p.=would be of interest too. >    Zahari asked me to thank you for the rewiev in Zentralblat>1on our paper about the generalised Adams methods.1 =    On the home front everything is fine, we got a boy Morten=:last winter, he is 14 months old now and he has speeded up:=our daily routine quite a lot.Ulla and Lise finds it is great=>fun having a little brother, and that helps a very great deal.>=We will all go together to the meeting in Oberwolfach while I=!have to go to Scotland on my own.! >    I heard from John that he was going to Dundee for his sab-><batical, that sounds very interesting I wish I could go too.<<Right now I have a lot to do here, budgets are cut now again<:and lots of fighting goes on about what is left. I do hope:$you can avoid that sort of problems.$ *    Please give my regards to those I know*  $                         best wishes$gem filenCC               QUIT  --  ""  --  eller PF15       => gem ikke filenCB               QQUIT  --  ""  --  hvis filen er ændret =>  - " - .B CMed kommandoen USE PASCALW definerer du , at du vilC>bruge PASCAL som sprog. Du kan oversætte og køre programmet i >BTESTFIL ved at skrive COMPILE TESTFIL. Under oversættelsen genere-BAres filerne TESTFIL LISTING og TESTFIL DIAGS, der indeholder hen-A>holdsvis en udskrift af programmet og fejlmeldingerne. Prøv at>\f

kigge i dem.\f

 CDu kan afsende et job til 'den gamle' maskine (IBM3033) med komman-C8doen SUBMIT fn ft NEUMVS1, eller hvis filtypen er JOB - 8ASUBMIT fn NEUMVS1. Filen skal indeholde et komplet job med styre-AAkort (*** i password-feltet udløser et prompt for det 'rigtige').A :Hvis du gerne vil se dine resultater på tryk kan du skrive:BPRINT TESTFIL LISTING og de skulle så gerne komme ud på printeren.B >Når du er færdig skriver du LOGOFF og ENTER 2 gange for at få >2VM-billedet frem igen. Husk at rydde op efter dig!2oteringen foretages umiddelbart før hvert;#iteration i Householders algoritme.#=  I udskriften i bilag 6 ses hvordan pivoteringen virker. Der=>er ingen nuller i de udlæste matricer, fordi disse aldrig bli->>ver sat, algoritmen "husker" at elementerne under hoveddiago- >"nalen er nuller uden at sætte dem." .PAGEler, som rapporten her byg-><ger over. Derimod har man ingen chance for at ødelægge andre<=filer end dem med matricer fordi filerne har et særligt mærke=>(D). De første Demomatricer, testeksemplets matricer A og B er>>gemt i filerne "TEST1A" og "TEST1B", hvorfra de direkte kan   >;hentes vha aktion 4. Hvis man under indtastningen har lavet;<en mindre fejl behøver man ikke at indtaste hele matricen på<<ny, man kan rette enkelte elementer i en eksisterende matrix<=vha faciliteten "RETTELSE", aktion 2. Denne facilitet starter=>med element 1.1, hvis værdi udlæses. Man har så følgende mu-  >	ligheder:	)        H) Gå til næste søjle i matricen.))        N) Gå til næste række i matricen.)$        R) Ret det aktuelle element.$0        A) Adder værdi til det aktuelle element.0        E) Stop rettelsen.>Hvis man forsøger at gå ud over matricens kanter stopper ret- >telsen af sig selv. >  Udskriften af "TEST1A" og "TEST1B" ser ud som øverste del af>>bilag 6. Dernæst kan man benytte aktion 12, og hvis man svarer>>"Y" på spørgsmålet om udskrift af mellemresultater kommer det >>til at se ud som bilag 6. Her er der så mulighed for at udlæ- >>se, hvordan algoritmen har omformet C og D (kopierne af A og B>=se blg. 6). Man fortsætter med aktion 14, Backsubstitution og=<aktion 16, hvorefter man til slut kan udskrive resultaterne,<5dvs matricerne X,Y,R,N,V og C (også vist på bilag 6).5>  Man er så tilbage, hvor man startede, man kan evt gemme     >>resultaterne vha aktion 8, hvorved man vil være istand til at >>vidreforarbejde dem en anden dag ved at hente dem frem igen   >\rvha aktion 4.\r"USER I/O ERROR 06 NEAR LINE 1044".==II) "TILFIL" lagrer en given matrix under dens navn i en per-=manent fil på en diskette.>  Den permanente filstruktur ses på diagram 6.6.1 på næste si->de. !6.7     POSTSTRUKTURMANIPOLATION.!>  For at muliggøre flytning af datastrukturer (kun hovederne  >>ændres, igen en fordel ved at bruge pointere) er der et par   >>procedurer, der henholdesvis flytter til og fra systemets fas->>te matricer (A,B,C,C m.m.). De hedder "MVALGON" og "MVALGOFF".>      &6.8     OVERORDNET STYRING AF PROGRAM.&>  For lave en flexibel styring, der let lader sig vidreudbygge>>er programmet principielt opbygget som en tilstandsmaskine,   >=hvorfor en anden logik i styringen lader sig implementere ved=>blot at ændre på tilstands og aktionstabellerne, der initieres>>i proceduren "TABELINITIERING". Dette vil være aktuelt ved ud->bygning med andre faciliteter.=  En liste over valgmulighederne under den interaktive kørsel=>udskrives af proceduren "MENU". Hvis man vælger en ulovlig ak->>tion køres proceduren "FEJLVALG", der giver en fejlmelding og >udskriver de legale valg.?  Selve tilstandsmaskinen udgør det meste af "MAIN", dvs       ?Bhovedkroppen. De 3 små procedurer "RESIBERE", "CASE12" og "MA-    B=INUDSKRIFT" hører egentlig til som dele af hovedkroppen, men =@denne bliver i så fald for stor for operativsystemet  (error    @253).>  På disketten ligger 2 systemer. Diskettnes indhold er komen->>teret i bilag 4. For det første ligger der et system med nav- >>net "LLSSYSTT". Dette er beregnet til at teste dele af system->>et med, deraf det sidste "T" i navnet. Det er en stærkt redu- >>ceret udgave, som dermed bliver mere håndterlig under oversæt->
telse m.m.
>  I det følgende vil jeg imidlertid holde mig til den mest    >>brugervenlige version, "LLS". I denne er en del af funktioner->>ne forlods koblet sammen, således at en uhensigtsmæssig kørsel>>forhindres, og således at systemet er mere umiddelbart at an- >=vende. Sammenknytningen er sket vha en tilstandsmaskine med 3=>tilstande. Tilstandsmaskinen i LLS beskrives dels i brugervej->>ledningen (anvendelse), dels i bilag 5, hvor diagrammer mm    >findes.  6.9     DATABEHANDLING.D);$'          MVALGOFF(VHEAD,VHEAD,SUCCES);'$          SLETMATRIX(STE,STH,NHEAD);$'          MVALGOFF(NHEAD,NHEAD,SUCCES);'          HEAD:=NIL;4          ADDITION(STE,STH,SUCCES,VHEAD,NHEAD,HEAD);4!          VHEAD:=NIL; NHEAD:=NIL;!"          WRITELN('Resultatet ?');"4          MVALGON(STE,STH,AHEAD,BHEAD,HEAD,SUCCES)  4          END;    18  : BEGIN>          WRITELN('I aktion 18 er matricerne V og N ',        >                 'reseverede !'); >          WRITELN('De to operander til subtraktionen ?');     >$          SLETMATRIX(STE,STH,VHEAD);$'          MVALGOFF(VHEAD,VHEAD,SUCCES);'$          SLETMATRIX(STE,STH,NHEAD);$'          MVALGOFF(NHEAD,NHEAD,SUCCES);'          HEAD:=NIL;7          SUBTRAKTION(STE,STH,SUCCES,VHEAD,NHEAD,HEAD);7!          VHEAD:=NIL; NHEAD:=NIL;!"          WRITELN('Resultatet ?');"3          MVALGON(STE,STH,AHEAD,BHEAD,HEAD,SUCCES) 3          END;    19  : BEGIN>          WRITELN('I aktion 19 er matricerne V og N ',        >                 'reseverede !'); ;          WRITELN('De to faktorer til multiplikationen ?');;$          SLETMATRIX(STE,STH,VHEAD);$>          MVALGOFF(VHEAD,VHEAD,SUCCES);                       >$          SLETMATRIX(STE,STH,NHEAD);$'          MVALGOFF(NHEAD,NHEAD,SUCCES);'          HEAD:=NIL;3          MATMULT(STE,STH,SUCCES,VHEAD,NHEAD,HEAD);3!          VHEAD:=NIL; NHEAD:=NIL;!"          WRITELN('Resultatet ?');"3          MVALGON(STE,STH,AHEAD,BHEAD,HEAD,SUCCES) 3          END;    20  : ;   (* EXIT *)   END;          (* END CASE *)  MAINUDSKRIFT(SUCCES);UNTIL AKTION = 20; n er et positivt heltal.                    *)GVAR      I             ,      X             ,      Y             ,      TALAFSTAND    ,      TALFORØG      ,      ANTALTEGN     ,      TEGNBREDDE    ,      HALVTEGNBREDDE: INTEGER;!      TEGN           : ZSTRING10;! #PROCEDURE INITTAL (BSTART: REAL   ;##                   BINTVL: REAL   ;##                   PINTVL: INTEGER;#%                   N     : INTEGER );%BEGIN)  WHILE (BINTVL - TRUNC (BINTVL) <> 0) OR)-        (BSTART - TRUNC (BSTART) <> 0)     DO-  BEGIN    BSTART:= 10 * BSTART;    BINTVL:= 10 * BINTVL;  END;  TAL:= TRUNC (BSTART);  TALFORØG:= TRUNC (BINTVL); 9  WHILE  (TALFORØG MOD 10 = 0)  AND  (TAL MOD 10 = 0)  DO9  BEGIN    TAL:= TAL DIV 10;    TALFORØG:= TALFORØG DIV 10;  END;  TALFORØG:= TALFORØG * N;  TALAFSTAND:= PINTVL * N;END;  (* INITTAL *) PROCEDURE TALIARRAY;;(* Indgang: TAL                = Tallet der skal udskrives.;F   Udgang : ANTALTEGN          = Antallet af cifre i TAL + 1 (max 10).F>            TEGN (1)           = Mindstbetydende ciffer i TAL.>\r            .\r\r            .\r=            TEGN (ANTALTEGN)   = "-" hvis TAL < 0 ellers " ".=H            TAL                = Det næste tal der skal udskrives.    *)HVAR    T: INTEGER;BEGIN  ANTALTEGN:= 1;  T:= ABS (TAL);  REPEAT    CASE T MOD 10 OF!      0:  TEGN (ANTALTEGN):= '0';!!      1:  TEGN (ANTALTEGN):= '1';!!      2:  TEGN (ANTALTEGN):= '2';!!      3:  TEGN (ANTALTEGN):= '3';!!      4:  TEGN (ANTALTEGN):= '4';!!      5:  TEGN (ANTALTEGN):= '5';!!      6:  TEGN (ANTALTEGN):= '6';!!      7:  TEGN (ANTALTEGN):= '7';!!      8:  TEGN (ANTALTEGN):= '8';!!      9:  TEGN (ANTALTEGN):= '9';!    END;    T:= T DIV 10;    ANTALTEGN:= ANTALTEGN + 1;+  UNTIL (T = 0)  OR  (ANTALTEGN = MAXTEGN);+(  IF TAL < 0 THEN TEGN (ANTALTEGN):= '-'()             ELSE TEGN (ANTALTEGN):= ' ';)  TAL:= TAL + TALFORØG;END;  (* TALIARRAY *) "PROCEDURE SKRIVTAL (X,Y: INTEGER);"<(*   Udskriver tallet svarende til indholdet i arrayet TEGN.<J     Hvis den vandrette akse peger mod højre, vil tallet stå til højre forJ%  punktet (X,Y), ellers til venstre. %*     Al skrivning foregår via ud-bufferen.* @  Indgang: X,Y                = Absolutte "Printer-koordinater".@;           TEGN (1)           = Det mindstbetydende ciffer.;L           TEGN (ANTALTEGN)   = Fortegnet.                                *)LVAR    I: INTEGER;BEGIN  ZPSTREG (ZABS, X, Y, ' ');1  IF ZSP = ' ' THEN FOR I:= ANTALTEGN DOWNTO 1 DO1                    BEGIN&                      ZPUT (TEGN (I));&8                      ZPSTREG (ZREL, XSTEP, YSTEP, ' ');8                    END-               ELSE FOR I:= 1 TO ANTALTEGN DO-                    BEGIN&                      ZPUT (TEGN (I));&7                      ZPSTREG (ZREL, XSTEP,YSTEP, ' ');7                    END;END;  (* SKRIVTAL *) BEGIN(  IF ZGRAFIK = ZGROV THEN TEGNBREDDE:= 6(*                     ELSE TEGNBREDDE:= 12;*$  HALVTEGNBREDDE:= TEGNBREDDE DIV 2;$  IF ZXLODRET THEN BEGIN                     XSTEP:= 0;(                     YSTEP:= TEGNBREDDE;(                   END              ELSE BEGIN(                     XSTEP:= TEGNBREDDE;(                     YSTEP:= 0;                   END;&  ZABSPKOORD (XVÆRDI, YVÆRDI, X0, Y0);&WRITELN ('Y0 = ',Y0);    (* Tegn x-akse *)    ZPSTREG (ZABS, 0, Y0, ' ');    FOR I:= 1 TO XANTALINTV DO	    BEGIN	       ZPSTREG (ZREL, 0, 1, ' ');        ZPSTREG (ZREL, 0,-2, '.');        ZPSTREG (ZREL, 0, 1, ' '); -      ZPSTREG (ZREL, ZXAKSE.P.INTVL, 0, '.');-    END;    (*  Tegn x-aksespids  *)     ZPSTREG (ZREL, -4,  4, '.');      ZPSTREG (ZREL,  0, -8, ' ');      ZPSTREG (ZREL,  4,  4, '.'); WRITELN ('X0 = ',X0);    (* Tegn y-akse *)    ZPSTREG (ZABS, X0, 0, ' ');    FOR I:= 1 TO YANTALINTV DO	    BEGIN	!      ZPSTREG (ZREL,  1, 0, ' ');!!      ZPSTREG (ZREL, -2, 0, '.');!!      ZPSTREG (ZREL,  1, 0, ' ');!.      ZPSTREG (ZREL,  0, ZYAKSE.P.INTVL, '.');.    END;    (*  Tegn y-aksespids  *);     ZPSTREG (ZREL,  4, -4, '.');      ZPSTREG (ZREL, -8,  0, ' ');      ZPSTREG (ZREL,  4,  4, '.'); .  (*  Bestem hvor x-akseværdierne skal stå  *).  IF ZXLODRET THEN BEGIN                     X:= -2;+                     Y:= Y0 + XTALPOSITION;+                   END              ELSE BEGIN                     X:= 0;/                     Y:= Y0 - 2 + XTALPOSITION;/                   END;/  (*  X-akseværdierne beregnes og udskrives  *)/9  WITH ZXAKSE DO INITTAL (B.START, B.INTVL, P.INTVL, NX);9  I:= 0;  REPEAT    TALIARRAY;    IF   ZXLODRET1    THEN IF XTALPOSITION > 0 THEN SKRIVTAL (X, Y)1M                              ELSE SKRIVTAL (X, Y - TEGNBREDDE*(ANTALTEGN-1))M4    ELSE SKRIVTAL (X - HALVTEGNBREDDE*ANTALTEGN, Y);4    X:= X + TALAFSTAND;    I:= I + NX;  UNTIL I >= XANTALINTV;.  (*  Bestem hvor y-akseværdierne skal stå  *).  IF ZXLODRET THEN BEGIN/                     X:= X0 - 2 + YTALPOSITION;/                     Y:= 0;                   END              ELSE BEGIN+                     X:= X0 + YTALPOSITION;+                     Y:= -2;                   END;/  (*  Y-akseværdierne beregnes og udskrives  *)/9  WITH ZYAKSE DO INITTAL (B.START, B.INTVL, P.INTVL, NY);9  I:= 0;  REPEAT    TALIARRAY;    IF   ZXLODRET3    THEN SKRIVTAL (X, Y - HALVTEGNBREDDE*ANTALTEGN)31    ELSE IF YTALPOSITION > 0 THEN SKRIVTAL (X, Y)1N                              ELSE SKRIVTAL (X - TEGNBREDDE*(ANTALTEGN-1), Y);N    Y:= Y + TALAFSTAND;    I:= I + NY;  UNTIL I >= YANTALINTV;END;  (* ZTEGNAKSE *)   1PROCEDURE ZORDENPUNKTER (    BX  : ZREALARRAY   ;11                             BY  : ZREALARRAY   ;11                             PKT : Z20INTEGER   ;11                         VAR PX  : ZINTEGERARRAY;13                         VAR PY  : ZINTEGERARRAY );3(* Indgang:G    (BX(1), BY(1)) ... (BX(PKT), BY(PKT)) = Absolutte bruger koordinateG   Udgang :G    (PX(1), PY(1)) ... (PX(PKT), PY(PKT)) = Absolutte printer koordinatGM                                              der svarer til brugerkoordinat-MK                                              erne, men sorteret i stigendeKJ                                              orden efter x-værdierne. DerJN                                              findes ikke to punkter med sammeNG                                              x-værdi.               *)GVAR    I, N, X, Y, : INTEGER;BEGIN*  ZABSPKOORD (BX(1), BY(1), PX(1), PY(1));*  FOR N:= 2 TO PKT DO  BEGIN$    ZABSPKOORD (BX(N), BY(N), X, Y);$    I:= N - 1;+    WHILE (I > 0)  AND  (X < P(I)) DO BEGIN+<                                        PX (I + 1):= PX (I);<<                                        PY (I + 1):= PY (I);<2                                        I:= I - 1;2*                                      END;*    PX (I + 1):= X;    PY (I + 1):= Y;  END;END;  (* ZORDENPUNKTER *)   &PROCEDURE ZINTPOL (BX   : ZREALARRAY ;&&                   BY   : ZREALARRAY ;&'                   BPKT : Z20INTEGER  ;'+                   INTVL: ZPOSINTEGER     ;+-                   MØNST: CHAR             );-L(*   Interpolerer punkterne (BX(i), BY(i)) for i = 1 til i = BPKT, ved hjælpLG  af Newtons interpolationsformel med 4 punkter. Kurven vil gå igennem G  punkterne (BX(i), BY(i)).=  Indgang:  BX (i) = X-værdier i absolutte brugerkoordinater.=D            BY (i) = Funktionsværdier i absolutte brugerkoordinater.D"            BPKT   = Antalpunkter."E            INTVL  = Intervallængden, dvs. antal skridt langs x-aksenEG                     før den næste funktionsværdi udregnes ved hjælp afGF                     Newtons interpolationsformel, disse funktionsvær-F5                     dier forbindes med rette linier.5G                     Et skridt er det mindste stykke vognen kan flytte.GH            MØNST  : Denne karakter vil blive brugt til at tegne kurven,HF                     med en undtagelse: 'M' angiver at mønsteret defi-FD                     neret ved sidste kald af proceduren ZDEFMØNSTERDN                     skal anvendes.                                         *)NVAR    I, X, PPKT    ,    X1, X2, X3, X4,    Y1, Y2, Y3, Y4 : INTEGER;    F12, F23, F34 ,    F123, F234    ,#    F1234          : REAL         ;##    PX, PY         : ZINTEGERARRAY;# 'PROCEDURE TEGN (XSTOP, YSTOP: INTEGER);'BEGIN  WHILE X < XSTOP DO  BEGIN    ZPSTREG (ZABS, X,M             ROUND(Y1 + (X-X1)*(F12 + (X-X2)*(F123 + (X-X3)*F1234))), MØNST);M    X:= X + INTVL;  END;&  ZPSTREG (ZABS, XSTOP, YSTOP, MØNST);&END;  (* TEGN *) BEGIN-  ZORDENPUNKTER (BX, BY, BPKT, PX, PY, PPKT);-  X1:= PX (1);   Y1:= PY (1);  ZPSTREG (ZABS, X1, Y1, ' ');  IF   PPKT < 4?  THEN FOR I:= 2 TO PPKT DO ZPSTREG (ZABS, PX(I), PY(I), MØNST)?  ELSE  BEGIN    X2:= PX (2);    X3:= PX (3);    X4:= PX (4);    Y2:= PY (2);    Y3:= PY (3);    Y4:= PY (4);    F12:= (Y1 - Y2)/(X1 - X2);    F23:= (Y2 - Y3)/(X2 - X3);    F34:= (Y3 - Y4)/(X3 - X4);!    F123:= (F12 - F23)/(X1 - X3);!!    F234:= (F23 - F34)/(X2 - X4);!$    F1234:= (F123 - F234)/(X1 - X4);$    X:= X1 + INTVL;    TEGN (X2, Y2);    FOR I:= 5 TO PPKT DO	    BEGIN	      WHILE X < X3 DO      BEGIN        ZPSTREG (ZABS, X,M            ROUND (Y1 + (X-X1)*(F12 + (X-X2)*(F123 + (X-X3)*F1234))), MØNST);M        X:= X + INTVL;
      END;
$      ZPSTREG (ZABS, X3, Y3, MØNST);$      X1:= X2;      X2:= X3;      X3:= X4;      X4:= PX (I);      Y1:= Y2;      Y2:= Y3;      Y3:= Y4;      Y4:= PY (I);      F12:= F23;      F23:= F34;       F34:= (Y3 - Y4)/(X3 - X4);       F123:= F234;#      F234:= (F23 - F34)/(X2 - X4);#&      F1234:= (F123 - F234)/(X1 - X4);&    END;    TEGN (X3, Y3);    TEGN (X4, Y4);  END;END;  (* ZINTPOL *)   -PROCEDURE ZINITGRAFIK (GRAFIK : ZGRAFIKMODE);-BEGIN  ZESC:= CHR (27);  ZLF := CHR (10);   ZUD.PIL:= 0;    ZPUT (ZESC);  IF GRAFIK = ZGROV THEN BEGIN&                           ZPUT ('3');&+                           ZGRAFIK:= ZGROV;+                         END                    ELSE BEGIN&                           ZPUT ('G');&*                           ZGRAFIK:= ZFIN;*                         END;  ZDEFMØNST ('. ');8  ZKOORDSYS (ZHØJRE, ZOP, 0.0, 0.0, 20.0, 16.0, 20, 16);8END;  (* ZINITGRAFIK *)   BEGIN  ZINITGRAFIK (ZGROV); %  FOR N1:= 1 TO 20 DO BX20 (N1):= N1;%  BY20 (1):= 0;  BY20 (2):= 2;  BY20 (3):= 4;  ccccccccccc