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 - download

⟦93cb01d4a⟧ TextFile

    Length: 11232 (0x2be0)
    Types: TextFile
    Notes: Mikados_K
    Names: »LISTKOMP.K«

Derivation

└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
    └─⟦this⟧ »LISTKOMP.K« 

Mikados K File

PROGRAM LISTKOMP;
(*$IISFHEAD*)
VPOST=RECORD
       A:AR;
       VARENR1,LVRNDØR,OPRLAND,PAKENHED,
       FORVLEVU,DATSBES1,DATSBES2,DATSORD1,DATSORD2,
       DÆKGRASÅ,ANAFTILG:INTEGER;
       NAVN:ARRAY(1..2) OF PACKED ARRAY (1..30) OF CHAR;
       PRIS,KOSTPRIS,TOLDPNR,FYSLAGER,PRIMOLAG,MINLAGER,RESAFLAG,IORDRE,
       RAIORDRE,STASBEST,ASOLGTIÅ,ASOLGTSÅ,OMSIÅR,OMSSÅR,DÆKBIDTD:REAL
END;
ZONE= RECORD
       H:ISFHEAD;
       T:ARRAY(1..451) OF INTEGER
END;
PROCSTAT=RECORD
       NP,NROSTART:INTEGER
END;
NPFILE=FILE OF PROCSTAT;
VAR    F:ISF;
       NRPF,CF:NPFILE;
       VZ:ZONE;
         FILNAVN2:STRING(20);
      KRIT,IER,LINIE,I,J,K  :INTEGER;
      CH:CHAR;
      PICTURE: ARRAY (1..20,1..6) OF INTEGER;
      SUMS:ARRAY (1..4) OF REAL;
      SUMKRIT:ARRAY (1..4) OF INTEGER;
      QUQ:^INTEGER;
       VARE:VPOST;
       R,FRA,TIL :REAL;
(*$L-*)
(*$R-,IEXCOMCOP*)
(*$IIOPEN*)
(*$IREADPROC*)
(*$IFINDPOST*)
(*$IICLOSE*)
(*$INEXTREC*)
(*$R+*)
(*$L+*)
PROCEDURE PRVAROPL;
PROCEDURE PR1;
BEGIN
WITH VARE DO
BEGIN
GOTOXY(1,1);WRITE('1 VARENR');GOTOXY(30,1);WRITELN(VARENR1:10);
GOTOXY(1,2);WRITE('2 VARENAVN');GOTOXY(30,2);WRITELN(NAVN(1));
GOTOXY(1,3);WRITE('3 NAVN HOS LEVERANDØR');GOTOXY(30,3);WRITELN(NAVN(2));
GOTOXY(1,4);WRITE('4 PRIS');GOTOXY(30,4);WRITELN(PRIS/100:10:2);
GOTOXY(1,5);WRITE('5 KOSTPRIS');GOTOXY(30,5);WRITELN(KOSTPRIS/100:10:2);
GOTOXY(1,6);WRITE('6 LEVERANDØRNR');GOTOXY(30,6);WRITELN(LVRNDØR:10);
GOTOXY(1,7);WRITE('7 OPRINDELSESLAND');GOTOXY(30,7);WRITELN(OPRLAND:10);
GOTOXY(1,8);WRITE('8 TOLDPOSITIONSNR');GOTOXY(30,8);
WRITELN(TOLDPNR/1000:10:3);
GOTOXY(1,9);WRITE('9 PAKNINGSENHED');GOTOXY(30,9);WRITELN(PAKENHED:10);
GOTOXY(1,10);WRITE('10 FYSISK LAGER');GOTOXY(30,10);
WRITE(FYSLAGER:10:-2);
GOTOXY(50,10);WRITE('27 PRIMOLAGER');GOTOXY(67,10);
WRITELN(PRIMOLAG:10:-2);
GOTOXY(1,11);WRITE('11 RESERVERET, FYSISK LAGER');GOTOXY(30,11);WRITELN(
                                                      RESAFLAG:10:-2);
END;
END;
PROCEDURE PR2;
BEGIN
WITH VARE DO
BEGIN
GOTOXY(1,12);WRITE('12 MINIMUMSLAGER');GOTOXY(30,12);
WRITELN(MINLAGER:10:-2);
GOTOXY(1,13);WRITE('13 I ORDRE');GOTOXY(30,13);WRITELN(IORDRE:10:-2);
GOTOXY(1,14);WRITE('14 HERAF RESERVERET');GOTOXY(30,14);
WRITELN(RAIORDRE:10:-2);
GOTOXY(50,14);WRITE('15 FORV. LEV. UGE');GOTOXY(67,14);WRITELN(FORVLEVU:10);
GOTOXY(1,15);WRITE('16 STØRRELSE AF SIDSTE BEST.');GOTOXY(30,15);WRITELN(
STASBEST:10:-2);
GOTOXY(50,15);WRITE('17 SIDST BEST');GOTOXY(67,15);
WRITELN(DATSBES1*10000.0+DATSBES2:10:-2);
GOTOXY(1,16);WRITE('18 SIDST SOLGT');GOTOXY(30,16);WRITELN(
DATSORD1*10000.0+DATSORD2:10:-2);
GOTOXY(1,17);WRITE('19 SOLGT I ÅR');GOTOXY(30,17);
WRITELN(ASOLGTIÅ:10:-2);
GOTOXY(50,17);WRITE('20 SOLGT S. ÅR');GOTOXY(67,17);
WRITELN(ASOLGTSÅ:10:-2);
GOTOXY(1,18);WRITE('21 OMS. I ÅR');GOTOXY(30,18);
WRITELN(OMSIÅR/100:10:2);
GOTOXY(50,1);
WRITELN('26 GODT TAL ',0.0:12:-2);
GOTOXY(50,18);WRITE('22 OMS. S. ÅR');GOTOXY(67,18);WRITELN(OMSSÅR/100:10:2);
GOTOXY(1,19);WRITE('23 DÆKNINGSBIDRAG TIL DATO');GOTOXY(30,19);WRITELN(
DÆKBIDTD/100:10:2);
GOTOXY(50,19);WRITE('24 DÆK.GRAD S. ÅR');GOTOXY(67,19);WRITELN(DÆKGRASÅ:10);
GOTOXY(1,20);WRITE('25 ANDRE AFGANGE-TILGANGE');GOTOXY(30,20);WRITELN(
ANAFTILG:10);
GOTOXY(1,21);WRITELN('28 LAGERVÆRDI',0.0:27:2);
END;
END;
BEGIN
  PR1;
  PR2;
END;
PROCEDURE STOP;
VAR I:INTEGER;
BEGIN I:=I DIV 0 END;
PROCEDURE ERROR;
BEGIN
  WRITELN('FEJL I VAREREG ',IER);
  ICLOSE(VZ.H,F);
  WRITELN('ICLOSE ',IER);
  STOP
END;
PROCEDURE PRINT(O:INTEGER);
BEGIN
CASE O OF
0: WRITE(' ':19);
1: WRITE('VARENR':19);
2: WRITE('VARENAVN':38);
3: WRITE('NAVN H. LEVERANDØR':38);
4: WRITE('PRIS':19);
5: WRITE('KOSTPRIS':19);
6: WRITE('LEVERANDØRNR':19);
7: WRITE('OPRINDELSESLAND':19);
8: WRITE('TOLDPOSITIONSNR':19);
9: WRITE('PAKNINGSENHED':19);
10:WRITE('FYSISK LAGER':19);
27:WRITE('PRIMOLAGER':19);
11:WRITE('RESERV. FYS. LAGER':19);
12:WRITE('MIN. LAGER':19);
13:WRITE('I ORDRE':19);
14:WRITE('RESERV. IORDRE':19);
15:WRITE('LEV. UGE':19);
16:WRITE('STØRR. S. BEST':19);
17:WRITE('DAT. S. BEST':19);
18:WRITE('SIDST SOLGT':19);
19:WRITE('SOLGT I ÅR':19);
20:WRITE('SOLGT S ÅR':19);
21:WRITE('OMS. I ÅR':19);
22:WRITE('OMS. S ÅR':19);
23:WRITE('DÆKNINGSBIDRAG':19);
24:WRITE('DÆK.GRAD S ÅR':19);
25:WRITE('ANDRE AFG/TILG':19);
26:WRITE('GODT TAL':19);
28:WRITE('LAGERVÆRDI':19);
END
END;
PROCEDURE PRINT1(O:INTEGER);
BEGIN
CASE O OF
0: WRITE(LIST,' ':19);
1: WRITE(LIST,'VARENR':19);
2: WRITE(LIST,'VARENAVN':38);
3: WRITE(LIST,'NAVN H. LEVERANDØR':38);
4: WRITE(LIST,'PRIS':19);
5: WRITE(LIST,'KOSTPRIS':19);
6: WRITE(LIST,'LEVERANDØRNR':19);
7: WRITE(LIST,'OPRINDELSESLAND':19);
8: WRITE(LIST,'TOLDPOSITIONSNR':19);
9: WRITE(LIST,'PAKNINGSENHED':19);
10:WRITE(LIST,'FYSISK LAGER':19);
27:WRITE(LIST,'PRIMOLAGER':19);
11:WRITE(LIST,'RESERV. FYS. LAGER':19);
12:WRITE(LIST,'MIN. LAGER':19);
13:WRITE(LIST,'I ORDRE':19);
14:WRITE(LIST,'RESERV. IORDRE':19);
15:WRITE(LIST,'LEV. UGE':19);
16:WRITE(LIST,'STØRR. S. BEST':19);
17:WRITE(LIST,'DAT. S. BEST':19);
18:WRITE(LIST,'SIDST SOLGT':19);
19:WRITE(LIST,'SOLGT I ÅR':19);
20:WRITE(LIST,'SOLGT S ÅR':19);
21:WRITE(LIST,'OMS. I ÅR':19);
22:WRITE(LIST,'OMS. S ÅR':19);
23:WRITE(LIST,'DÆKNINGSBIDRAG':19);
24:WRITE(LIST,'DÆK.GRAD S ÅR':19);
25:WRITE(LIST,'ANDRE AFG/TILG':19);
26:WRITE(LIST,'GODT TAL':19);
28:WRITE(LIST,'LAGERVÆRDI':19);
END
END;
PROCEDURE SKRIG(O:INTEGER);
BEGIN
WITH VARE DO
CASE O OF
0: WRITE(LIST,' ':19);
1: WRITE(LIST,VARENR1:19);
2: WRITE(LIST,NAVN(1):38);
3: WRITE(LIST,NAVN(2):38);
4: WRITE(LIST,PRIS/100:19:2);
5: WRITE(LIST,KOSTPRIS/100:19:2);
6: WRITE(LIST,LVRNDØR:19);
7: WRITE(LIST,OPRLAND:19);
8: WRITE(LIST,TOLDPNR/1000:19:3);
9: WRITE(LIST,PAKENHED:19);
10:WRITE(LIST,FYSLAGER:19:-2);
27:WRITE(LIST,PRIMOLAG:19:-2);
11:WRITE(LIST,RESAFLAG:19:-2);
12:WRITE(LIST,MINLAGER:19:-2);
13:WRITE(LIST,IORDRE:19:-2);
14:WRITE(LIST,RAIORDRE:19:-2);
15:WRITE(LIST,FORVLEVU:19);
16:WRITE(LIST,STASBEST:19:-2);
17:WRITE(LIST,DATSBES1*10000.0+DATSBES2:19:-2);
18:WRITE(LIST,DATSORD1*10000.0+DATSORD2:19:-2);
19:WRITE(LIST,ASOLGTIÅ:19:-2);
20:WRITE(LIST,ASOLGTSÅ:19:-2);
21:WRITE(LIST,OMSIÅR/100:19:2);
22:WRITE(LIST,OMSSÅR/100:19:2);
23:WRITE(LIST,DÆKBIDTD/100:19:2);
24:WRITE(LIST,DÆKGRASÅ:19);
25:WRITE(LIST,ANAFTILG:19);
26:IF (PRIMOLAG+FYSLAGER<>0) AND (OMSIÅR<>0) THEN
      WRITE(LIST,ASOLGTIÅ*200*DÆKBIDTD/((PRIMOLAG+FYSLAGER)*OMSIÅR):19:-2)
   ELSE
      WRITE(LIST,0.0:19:3);
28:WRITE(LIST,FYSLAGER*KOSTPRIS/100:19:2);
END
END;
FUNCTION CHECK(KRIT:INTEGER):BOOLEAN;
BEGIN
  WITH VARE DO
  CASE KRIT OF
1:R:=VARENR1;
4:R:=PRIS/100;
5:R:=KOSTPRIS/100;
6:R:=LVRNDØR;
7:R:=OPRLAND;
8:R:=TOLDPNR/1000;
9:R:=PAKENHED;
10:R:=FYSLAGER;
11:R:=RESAFLAG;
12:R:=MINLAGER;
13:R:=IORDRE;
14:R:=RAIORDRE;
15:R:=FORVLEVU;
16:R:=STASBEST;
17:R:=DATSBES1*10000.0+DATSBES2;
18:R:=DATSORD1*10000.0+DATSORD2;
19:R:=ASOLGTIÅ;
20:R:=ASOLGTSÅ;
21:R:=OMSIÅR/100;
22:R:=OMSSÅR/100;
23:R:=DÆKBIDTD/100;
24:R:=DÆKGRASÅ;
25:R:=ANAFTILG;
26:IF (PRIMOLAG+FYSLAGER<>0) AND (OMSIÅR<>0) THEN
     R:=ASOLGTIÅ*200*DÆKBIDTD/((PRIMOLAG+FYSLAGER)*OMSIÅR)
   ELSE
     R:=0.0;
27:R:=PRIMOLAG;
28:R:=FYSLAGER*KOSTPRIS/100;
END;
IF (R>=FRA) AND (R<=TIL) THEN CHECK:=TRUE ELSE CHECK:=FALSE
END;
PROCEDURE INDKRIT;
BEGIN
  REPEAT
    CLEARSCREEN;
    PRVAROPL;
  FOR I:=1 TO 20 DO FOR J:=1 TO 6 DO PICTURE(I,J):=0;
  I:=1;J:=1;
  REPEAT
    GOTOXY(1,23);
    WRITELN('FELTER I LINIE ',I:2);
    GOTOXY(20,23);READLN;
    WHILE (NOT EOLN) AND (J<7) DO
    BEGIN
      READ(PICTURE(I,J));
      IF (IORESULT<>0) OR (PICTURE(I,J)<0) OR (PICTURE(I,J)>40) THEN J:=9;
      J:=J+1
    END;
    IF PICTURE(I,1)<0 THEN I:=21;
    IF J<8 THEN I:=I+1;
    J:=1;
  UNTIL I>20;
  CLEARSCREEN;
  FOR I:=1 TO 20 DO
  BEGIN
    FOR J:=1 TO 6 DO PRINT(PICTURE(I,J));
    WRITELN
  END;
  GOTOXY(1,23);WRITELN('O.K. (J/N) ');
  REPEAT
    GOTOXY(15,23);
    READLN;READ(CH)
  UNTIL (IORESULT=0) AND ((CH='J') OR (CH='N') OR (CH='n') OR (CH='j'))
  UNTIL (CH='J') OR (CH='j');
  CLEARSCREEN;
  PRVAROPL;
  GOTOXY(1,23);WRITELN('UDVALGSKRITERIE 1, 4-40 ');
  REPEAT
    GOTOXY(25,23);READLN;READ(KRIT)
  UNTIL (IORESULT=0) AND ((KRIT=1) OR ((KRIT>3) AND (KRIT<41)));
  GOTOXY(1,23);WRITELN('FRA              TIL                      ');
  REPEAT
    GOTOXY(5,23);READLN;READ(FRA);
    IF IORESULT=0 THEN
    BEGIN
      GOTOXY(22,23);READLN;READ(TIL)
    END;
  UNTIL (IORESULT=0) AND (FRA<=TIL);
  I:=1;
  REPEAT
  GOTOXY(1,23);WRITELN('Summeringsfelter 1, 4-40       ');
    REPEAT
       GOTOXY(26,23);READLN;READ(J)
    UNTIL (IORESULT=0) AND ((J=0) OR (J=1) OR ((J>3) AND (J<41)));
    SUMKRIT(I):=J;
    IF J=0 THEN I:=5 ELSE I:=I+1;
  UNTIL I=5;
  FOR I:=1 TO 4 DO SUMS(I):=0.0;
END;
BEGIN
  FILNAVN2:='PROCSTAT:P2:0:I';
(*$C-*)
  REPEAT
    REWRITE(NRPF,FILNAVN2);
    SEEK(NRPF,1)
  UNTIL IORESULT=0;
(*$C+*)
  GET(NRPF);
  NRPF^.NP:=1;
  SEEK(NRPF,1);
  PUT(NRPF);
  REPEAT
    GOTOXY(1,20);
    WRITELN('Sæt plade 1 i drev 1 og tryk RETURN');
    READLN;
(*$C-*)
    REWRITE(CF,'C1:P1:0:J');
    SEEK(CF,1)
(*$C+*)
  UNTIL IORESULT=0;
  CLOSE(CF);
  CLOSE(NRPF);
  FILNAVN2:='REGVARE:P1:1137:I';
  RESET(F,FILNAVN2);
  IOPEN(VZ.H,F,LÆS);
  VARE.VARENR1:=0;
  NEXTREC(VZ.H,F,VARE.A);
  INDKRIT;
  IER:=0;
  LINIE:=0;
  FOR I:=1 TO 20 DO
  BEGIN
    FOR J:=1 TO 6 DO PRINT1(PICTURE(I,J));
    WRITELN(LIST);
    LINIE:=LINIE+1;
    IF I<20 THEN
    IF PICTURE(I+1,1)<0 THEN I:=20
  END;
  REPEAT
  WRITELN(LIST);
  LINIE:=LINIE+1
  UNTIL LINIE=72;
  LINIE:=0;
  REPEAT
    WHILE (NOT CHECK(KRIT)) AND (IER=0) DO NEXTREC(VZ.H,F,VARE.A);
    IF IER=0 THEN
    BEGIN
      FOR I:=1 TO 20 DO
      BEGIN
        FOR J:=1 TO 6 DO SKRIG(PICTURE(I,J));
        WRITELN(LIST);
        LINIE:=LINIE+1;
        IF LINIE=60 THEN
        BEGIN
          REPEAT
            WRITELN(LIST);LINIE:=LINIE+1
          UNTIL LINIE=72;
          LINIE:=0
        END;
        IF I<20 THEN
        IF PICTURE(I+1,1)<0 THEN I:=20
      END;
      FOR I:=1 TO 4 DO IF SUMKRIT(I)=0 THEN I:=4 ELSE
          BEGIN
            IF CHECK(SUMKRIT(I)) THEN;
            SUMS(I):=SUMS(I)+R
          END;
      NEXTREC(VZ.H,F,VARE.A);
    END
  UNTIL IER<>0;
  REPEAT
    WRITELN(LIST);LINIE:=LINIE+1
  UNTIL LINIE=72;
  WRITELN(LIST,'Summer af');
  FOR I:=1 TO 4 DO PRINT1(SUMKRIT(I));
  WRITELN(LIST);
  FOR I:=1 TO 4 DO IF SUMKRIT(I)<>0 THEN WRITE(LIST,SUMS(I):19:3);
  WRITELN(LIST);
  IF IER<>-2 THEN ERROR;
  ICLOSE(VZ.H,F);
  CHAIN('INTRE   *1','HOVSA:P1',QUQ)
END.

Full view