DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

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

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦e86df442e⟧

    Length: 3328 (0xd00)
    Names: »IDENTIFI.PAS«

Derivation

└─⟦f983c2ef3⟧ Bits:30004681 Pascal opgaver (Butler)
    └─⟦this⟧ »IDENTIFI.PAS« 

Hex Dump

0x000…020 (0,) 50 52 4f 47 52 41 4d 20 69 64 65 6e 74 69 66 69 3b 0d 0a 0d 0a 28 2a 20 44 65 74 74 65 20 70 72   ┆PROGRAM identifi;    (* Dette pr┆
0x020…040      6f 67 72 61 6d 20 66 6f 72 75 64 73 7b 74 74 65 72 2c 20 61 74 20 73 74 61 6e 64 61 72 64 69 64   ┆ogram forudsætter, at standardid┆
0x040…060      65 6e 74 69 66 69 65 72 6e 65 20 65 72 20 62 6c 65 76 65 74 20 69 6e 64 6c 7b 73 74 20 2a 29 0d   ┆entifierne er blevet indlæst *) ┆
0x060…080      0a 28 2a 20 69 20 66 69 6c 65 6e 20 49 44 45 4e 54 49 2e 44 41 54 20 69 20 61 6c 66 61 62 65 74   ┆ (* i filen IDENTI.DAT i alfabet┆
0x080…0a0      69 73 6b 20 72 7b 6b 6b 65 66 7c 6c 67 65 20 76 65 64 20 68 6a 7b 6c 70 20 61 66 20 70 72 6f 67   ┆isk rækkefølge ved hjælp af prog┆
0x0a0…0c0      72 61 6d 6d 65 74 20 20 20 2a 29 0d 0a 28 2a 20 49 44 45 4e 54 49 46 49 2e 48 4c 50 20 20 20 20   ┆rammet   *)  (* IDENTIFI.HLP    ┆
0x0c0…0e0      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x0e0…100      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 29 0d 0a 0d 0a 20 20 43 4f 4e   ┆                     *)      CON┆
0x100…120      53 54 0d 0a 20 20 20 20 62 6f 67 73 74 61 76 65 72 20 3a 20 53 45 54 20 4f 46 20 43 48 41 52 20   ┆ST      bogstaver : SET OF CHAR ┆
0x120…140      3d 20 28 2e 27 41 27 20 2e 2e 20 27 5a 27 2e 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 54 59 50 45 0d   ┆= (.'A' .. 'Z'.);          TYPE ┆
0x140…160      0a 20 20 20 20 73 74 72 31 30 20 3d 20 53 54 52 49 4e 47 28 2e 31 30 2e 29 3b 0d 0a 20 20 20 20   ┆     str10 = STRING(.10.);      ┆
0x160…180      73 74 72 31 34 20 3d 20 53 54 52 49 4e 47 28 2e 31 34 2e 29 3b 0d 0a 20 20 20 20 73 74 72 32 30   ┆str14 = STRING(.14.);      str20┆
0x180…1a0      20 3d 20 53 54 52 49 4e 47 28 2e 32 30 2e 29 3b 0d 0a 20 20 20 20 73 74 72 38 30 20 3d 20 53 54   ┆ = STRING(.20.);      str80 = ST┆
0x1a0…1c0      52 49 4e 47 28 2e 38 30 2e 29 3b 0d 0a 20 20 20 20 69 64 65 6e 74 69 66 69 66 69 6c 20 3d 20 46   ┆RING(.80.);      identififil = F┆
0x1c0…1e0      49 4c 45 20 4f 46 20 73 74 72 31 30 3b 0d 0a 20 20 20 20 69 64 65 6e 74 69 66 69 65 72 74 61 62   ┆ILE OF str10;      identifiertab┆
0x1e0…200      65 6c 20 3d 20 41 52 52 41 59 28 2e 31 20 2e 2e 20 31 33 30 2e 29 20 4f 46 20 73 74 72 31 30 3b   ┆el = ARRAY(.1 .. 130.) OF str10;┆
0x200…220 (1,) 0d 0a 20 20 20 20 0d 0a 20 20 56 41 52 0d 0a 20 20 20 20 69 6e 64 6e 61 76 6e 2c 20 75 64 6e 61   ┆          VAR      indnavn, udna┆
0x220…240      76 6e 20 3a 20 73 74 72 31 34 3b 0d 0a 20 20 20 20 69 6e 64 66 69 6c 2c 20 75 64 66 69 6c 20 3a   ┆vn : str14;      indfil, udfil :┆
0x240…260      20 54 45 58 54 3b 0d 0a 20 20 20 20 64 61 74 61 66 69 6c 20 3a 20 69 64 65 6e 74 69 66 69 66 69   ┆ TEXT;      datafil : identififi┆
0x260…280      6c 3b 0d 0a 20 20 20 20 6c 69 6e 69 65 20 3a 20 73 74 72 38 30 3b 0d 0a 20 20 20 20 6f 72 64 5f   ┆l;      linie : str80;      ord_┆
0x280…2a0      20 3a 20 73 74 72 32 30 3b 0d 0a 20 20 20 20 63 68 20 3a 20 43 48 41 52 3b 0d 0a 20 20 20 20 69   ┆ : str20;      ch : CHAR;      i┆
0x2a0…2c0      2c 20 6a 2c 20 73 74 61 72 74 2c 20 73 6c 75 74 2c 20 74 61 62 65 6c 6c 61 65 6e 67 64 65 20 3a   ┆, j, start, slut, tabellaengde :┆
0x2c0…2e0      20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 74 61 62 65 6c 20 3a 20 69 64 65 6e 74 69 66 69 65   ┆ INTEGER;      tabel : identifie┆
0x2e0…300      72 74 61 62 65 6c 3b 0d 0a 20 20 0d 0a 20 20 46 55 4e 43 54 49 4f 4e 20 62 69 6e 73 6f 65 67 28   ┆rtabel;        FUNCTION binsoeg(┆
0x300…320      73 6f 65 67 65 6f 72 64 20 3a 20 73 74 72 32 30 29 20 3a 20 42 4f 4f 4c 45 41 4e 3b 0d 0a 20 20   ┆soegeord : str20) : BOOLEAN;    ┆
0x320…340      20 20 20 20 20 20 0d 0a 20 20 20 20 56 41 52 0d 0a 20 20 20 20 20 20 62 75 6e 64 2c 20 74 6f 70   ┆            VAR        bund, top┆
0x340…360      2c 20 6d 69 64 74 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 42 45 47   ┆, midt : INTEGER;            BEG┆
0x360…380      49 4e 0d 0a 20 20 20 20 20 20 62 75 6e 64 20 3a 3d 20 31 3b 0d 0a 20 20 20 20 20 20 74 6f 70 20   ┆IN        bund := 1;        top ┆
0x380…3a0      3a 3d 20 74 61 62 65 6c 6c 61 65 6e 67 64 65 3b 0d 0a 20 20 20 20 20 20 52 45 50 45 41 54 0d 0a   ┆:= tabellaengde;        REPEAT  ┆
0x3a0…3c0      20 20 20 20 20 20 20 20 6d 69 64 74 20 3a 3d 20 28 74 6f 70 20 2b 20 62 75 6e 64 29 20 44 49 56   ┆        midt := (top + bund) DIV┆
0x3c0…3e0      20 32 3b 0d 0a 20 20 20 20 20 20 20 20 49 46 20 73 6f 65 67 65 6f 72 64 20 3e 20 74 61 62 65 6c   ┆ 2;          IF soegeord > tabel┆
0x3e0…400      28 2e 6d 69 64 74 2e 29 20 0d 0a 20 20 20 20 20 20 20 20 20 20 54 48 45 4e 20 62 75 6e 64 20 3a   ┆(.midt.)             THEN bund :┆
0x400…420 (2,) 3d 20 6d 69 64 74 20 2b 20 31 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4c 53 45 20 74 6f 70 20 3a   ┆= midt + 1            ELSE top :┆
0x420…440      3d 20 6d 69 64 74 20 2d 20 31 3b 0d 0a 20 20 20 20 20 20 55 4e 54 49 4c 20 28 73 6f 65 67 65 6f   ┆= midt - 1;        UNTIL (soegeo┆
0x440…460      72 64 20 3d 20 74 61 62 65 6c 28 2e 6d 69 64 74 2e 29 29 20 4f 52 20 28 74 6f 70 20 3c 20 62 75   ┆rd = tabel(.midt.)) OR (top < bu┆
0x460…480      6e 64 29 3b 0d 0a 20 20 20 20 20 20 49 46 20 73 6f 65 67 65 6f 72 64 20 3d 20 74 61 62 65 6c 28   ┆nd);        IF soegeord = tabel(┆
0x480…4a0      2e 6d 69 64 74 2e 29 0d 0a 20 20 20 20 20 20 20 20 54 48 45 4e 20 62 69 6e 73 6f 65 67 20 3a 3d   ┆.midt.)          THEN binsoeg :=┆
0x4a0…4c0      20 54 52 55 45 0d 0a 20 20 20 20 20 20 20 20 45 4c 53 45 20 62 69 6e 73 6f 65 67 20 3a 3d 20 46   ┆ TRUE          ELSE binsoeg := F┆
0x4c0…4e0      41 4c 53 45 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20   ┆ALSE;      END;        BEGIN    ┆
0x4e0…500      20 20 57 52 49 54 45 28 43 4c 52 48 4f 4d 29 3b 0d 0a 20 20 20 20 41 53 53 49 47 4e 28 64 61 74   ┆  WRITE(CLRHOM);      ASSIGN(dat┆
0x500…520      61 66 69 6c 2c 20 27 49 44 45 4e 54 49 46 49 2e 44 41 54 27 29 3b 0d 0a 20 20 20 20 52 45 53 45   ┆afil, 'IDENTIFI.DAT');      RESE┆
0x520…540      54 28 64 61 74 61 66 69 6c 29 3b 0d 0a 20 20 20 20 69 20 3a 3d 20 30 3b 0d 0a 20 20 20 20 57 48   ┆T(datafil);      i := 0;      WH┆
0x540…560      49 4c 45 20 4e 4f 54 20 45 4f 46 28 64 61 74 61 66 69 6c 29 20 44 4f 0d 0a 20 20 20 20 20 20 42   ┆ILE NOT EOF(datafil) DO        B┆
0x560…580      45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 69 20 3a 3d 20 69 20 2b 20 31 3b 0d 0a 20 20 20 20 20   ┆EGIN          i := i + 1;       ┆
0x580…5a0      20 20 20 52 45 41 44 28 64 61 74 61 66 69 6c 2c 20 74 61 62 65 6c 28 2e 69 2e 29 29 3b 0d 0a 20   ┆   READ(datafil, tabel(.i.));   ┆
0x5a0…5c0      20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 43 4c 4f 53 45 28 64 61 74 61 66 69 6c 29 3b 0d 0a   ┆     END;      CLOSE(datafil);  ┆
0x5c0…5e0      20 20 20 20 74 61 62 65 6c 6c 61 65 6e 67 64 65 20 3a 3d 20 69 3b 0d 0a 20 20 20 20 57 52 49 54   ┆    tabellaengde := i;      WRIT┆
0x5e0…600      45 28 27 48 76 69 6c 6b 65 6e 20 50 61 73 63 61 6c 2d 6b 69 6c 64 65 74 65 6b 73 74 20 73 6b 61   ┆E('Hvilken Pascal-kildetekst ska┆
0x600…620 (3,) 6c 20 7b 6e 64 72 65 73 3a 20 27 29 3b 0d 0a 20 20 20 20 52 45 41 44 4c 4e 28 69 6e 64 6e 61 76   ┆l ændres: ');      READLN(indnav┆
0x620…640      6e 29 3b 0d 0a 20 20 20 20 41 53 53 49 47 4e 28 69 6e 64 66 69 6c 2c 20 69 6e 64 6e 61 76 6e 29   ┆n);      ASSIGN(indfil, indnavn)┆
0x640…660      3b 0d 0a 20 20 20 20 52 45 53 45 54 28 69 6e 64 66 69 6c 29 3b 0d 0a 20 20 20 20 57 52 49 54 45   ┆;      RESET(indfil);      WRITE┆
0x660…680      4c 4e 3b 0d 0a 20 20 20 20 57 52 49 54 45 28 27 48 76 61 64 20 73 6b 61 6c 20 64 65 74 20 6b 6f   ┆LN;      WRITE('Hvad skal det ko┆
0x680…6a0      72 72 69 67 65 72 65 64 65 20 70 72 6f 67 72 61 6d 20 68 65 64 64 65 3a 20 27 29 3b 0d 0a 20 20   ┆rrigerede program hedde: ');    ┆
0x6a0…6c0      20 20 52 45 41 44 4c 4e 28 75 64 6e 61 76 6e 29 3b 0d 0a 20 20 20 20 41 53 53 49 47 4e 28 75 64   ┆  READLN(udnavn);      ASSIGN(ud┆
0x6c0…6e0      66 69 6c 2c 20 75 64 6e 61 76 6e 29 3b 0d 0a 20 20 20 20 52 45 57 52 49 54 45 28 75 64 66 69 6c   ┆fil, udnavn);      REWRITE(udfil┆
0x6e0…700      29 3b 0d 0a 20 20 20 20 57 52 49 54 45 4c 4e 3b 0d 0a 20 20 20 20 57 48 49 4c 45 20 4e 4f 54 20   ┆);      WRITELN;      WHILE NOT ┆
0x700…720      45 4f 46 28 69 6e 64 66 69 6c 29 20 44 4f 0d 0a 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20   ┆EOF(indfil) DO        BEGIN     ┆
0x720…740      20 20 20 20 20 6c 69 6e 69 65 20 3a 3d 20 27 27 3b 0d 0a 20 20 20 20 20 20 20 20 57 48 49 4c 45   ┆     linie := '';          WHILE┆
0x740…760      20 4e 4f 54 20 45 4f 4c 4e 28 69 6e 64 66 69 6c 29 20 44 4f 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆ NOT EOLN(indfil) DO            ┆
0x760…780      42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 45 41 44 28 69 6e 64 66 69 6c 2c 20   ┆BEGIN              READ(indfil, ┆
0x780…7a0      63 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 69 65 20 3a 3d 20 6c 69 6e 69 65   ┆ch);              linie := linie┆
0x7a0…7c0      20 2b 20 63 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 20   ┆ + ch;            END;          ┆
0x7c0…7e0      6c 69 6e 69 65 20 3a 3d 20 6c 69 6e 69 65 20 2b 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 20 20 52   ┆linie := linie + ' ';          R┆
0x7e0…800      45 41 44 4c 4e 28 69 6e 64 66 69 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 49 46 20 4c 45 4e 28 6c   ┆EADLN(indfil);          IF LEN(l┆
0x800…820 (4,) e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
       […0xf…]
0xa00…a20 (5,) 50 52 4f 47 52 41 4d 20 69 6e 74 65 72 68 79 70 3b 0d 0a 20 20 0d 0a 20 20 43 4f 4e 53 54 0d 0a   ┆PROGRAM interhyp;        CONST  ┆
0xa20…a40      20 20 20 20 6d 61 78 61 6e 74 61 6c 20 3d 20 32 30 30 3b 0d 0a 20 20 0d 0a 20 20 54 59 50 45 0d   ┆    maxantal = 200;        TYPE ┆
0xa40…a60      0a 20 20 20 20 74 61 62 65 6c 74 79 70 65 20 3d 20 41 52 52 41 59 28 2e 31 20 2e 2e 20 6d 61 78   ┆     tabeltype = ARRAY(.1 .. max┆
0xa60…a80      61 6e 74 61 6c 2e 29 20 4f 46 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 0d 0a 20 20 56 41 52 0d 0a   ┆antal.) OF INTEGER;        VAR  ┆
0xa80…aa0      20 20 20 20 74 61 62 65 6c 20 3a 20 74 61 62 65 6c 74 79 70 65 3b 0d 0a 20 20 20 20 6d 69 6e 2c   ┆    tabel : tabeltype;      min,┆
0xaa0…ac0      20 6d 61 78 2c 20 69 6e 74 65 72 76 61 6c 62 72 65 64 64 65 20 3a 20 49 4e 54 45 47 45 52 3b 0d   ┆ max, intervalbredde : INTEGER; ┆
0xac0…ae0      0a 20 20 0d 0a 20 20 50 52 4f 43 45 44 55 52 45 20 66 69 6e 64 74 61 6c 28 56 41 52 20 74 61 62   ┆       PROCEDURE findtal(VAR tab┆
0xae0…b00      65 6c 20 3a 20 74 61 62 65 6c 74 79 70 65 29 3b 0d 0a 20 20 0d 0a 20 20 20 20 56 41 52 0d 0a 20   ┆el : tabeltype);          VAR   ┆
0xb00…b20      20 20 20 20 20 69 2c 20 78 2c 20 79 2c 20 7a 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20   ┆     i, x, y, z : INTEGER;      ┆
0xb20…b40      0d 0a 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 46 4f 52 20 69 20 3a 3d 20 31 20 54 4f   ┆      BEGIN        FOR i := 1 TO┆
0xb40…b60      20 6d 61 78 61 6e 74 61 6c 20 44 4f 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20   ┆ maxantal DO          BEGIN     ┆
0xb60…b80      20 20 20 20 20 20 20 78 20 3a 3d 20 52 41 4e 44 4f 4d 28 34 37 29 20 2b 20 33 30 3b 0d 0a 20 20   ┆       x := RANDOM(47) + 30;    ┆
0xb80…ba0      20 20 20 20 20 20 20 20 79 20 3a 3d 20 52 41 4e 44 4f 4d 28 33 32 29 20 2b 20 32 30 3b 20 20 28   ┆        y := RANDOM(32) + 20;  (┆
0xba0…bc0      2a 20 52 65 74 20 74 69 6c 66 7b 6c 64 69 67 74 20 76 61 6c 67 74 21 20 2a 29 0d 0a 20 20 20 20   ┆* Ret tilfældigt valgt! *)      ┆
0xbc0…be0      20 20 20 20 20 20 7a 20 3a 3d 20 52 41 4e 44 4f 4d 28 31 31 29 20 2b 20 34 30 3b 0d 0a 20 20 20   ┆      z := RANDOM(11) + 40;     ┆
0xbe0…c00      20 20 20 20 20 20 20 74 61 62 65 6c 28 2e 69 2e 29 20 3a 3d 20 78 20 2b 20 79 20 2b 20 7a 3b 0d   ┆       tabel(.i.) := x + y + z; ┆
0xc00…c20 (6,) 0a 20 20 20 20 20 20 20 20 20 20 57 52 49 54 45 28 74 61 62 65 6c 28 2e 69 2e 29 20 3a 20 34 29   ┆           WRITE(tabel(.i.) : 4)┆
0xc20…c40      3b 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 57 52 49 54 45 4c 4e 3b 20   ┆;          END;        WRITELN; ┆
0xc40…c60      20 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 0d 0a 20 20 50 52 4f 43 45 44 55 52 45 20 6d   ┆       END;          PROCEDURE m┆
0xc60…c80      69 6e 6d 61 78 28 56 41 52 20 6d 69 6e 2c 20 6d 61 78 20 3a 20 49 4e 54 45 47 45 52 3b 20 56 41   ┆inmax(VAR min, max : INTEGER; VA┆
0xc80…ca0      52 20 74 61 62 65 6c 20 3a 20 74 61 62 65 6c 74 79 70 65 29 3b 0d 0a 20 20 0d 0a 20 20 20 20 56   ┆R tabel : tabeltype);          V┆
0xca0…cc0      41 52 0d 0a 20 20 20 20 20 20 69 20 3a 20 49 4e 54 45 47 45 52 3b 0d 0a 20 20 20 20 0d 0a 20 20   ┆AR        i : INTEGER;          ┆
0xcc0…ce0      20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 6d 69 6e 20 3a 3d 20 74 61 62 65 6c 28 2e 31 2e 29   ┆  BEGIN        min := tabel(.1.)┆
0xce0…d00      3b 0d 0a 20 20 20 20 20 20 6d 61 78 20 3a 3d 20 74 61 62 65 6c 28 2e 31 2e 29 3b 0d 0a 20 20 20   ┆;        max := tabel(.1.);     ┆