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

⟦64f2210dc⟧

    Length: 3840 (0xf00)
    Names: »HASHTAB.PAS«

Derivation

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

Hex Dump

0x000…020 (0,) 20 20 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆          BEGIN                 ┆
0x020…040      20 20 20 20 20 57 52 49 54 45 28 27 55 6c 6f 76 6c 69 67 74 20 63 70 72 6e 72 2e 20 2d 20 74 61   ┆     WRITE('Ulovligt cprnr. - ta┆
0x040…060      73 74 20 3c 52 45 54 55 52 4e 3e 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆st <RETURN>');                  ┆
0x060…080      20 20 20 20 52 45 41 44 4c 4e 28 63 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆    READLN(ch);                 ┆
0x080…0a0      20 20 20 45 4e 44 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4c 53 45 20 49 46 20 20 4e   ┆   END                ELSE IF  N┆
0x0a0…0c0      4f 54 20 73 6f 65 67 28 74 61 62 28 2e 69 6e 64 65 78 2e 29 2c 20 6e 72 29 0d 0a 20 20 20 20 20   ┆OT soeg(tab(.index.), nr)       ┆
0x0c0…0e0      20 20 20 20 20 20 20 20 20 20 20 54 48 45 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆           THEN                 ┆
0x0e0…100      20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 45   ┆   BEGIN                      NE┆
0x100…120      57 28 70 70 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 70 5e 2e   ┆W(pp);                      pp^.┆
0x120…140      6e 61 65 73 74 65 20 3a 3d 20 74 61 62 28 2e 69 6e 64 65 78 2e 29 3b 0d 0a 20 20 20 20 20 20 20   ┆naeste := tab(.index.);         ┆
0x140…160      20 20 20 20 20 20 20 20 20 20 20 20 20 70 70 5e 2e 6e 75 6d 6d 65 72 20 3a 3d 20 6e 72 3b 0d 0a   ┆             pp^.nummer := nr;  ┆
0x160…180      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 62 28 2e 69 6e 64 65 78 2e 29   ┆                    tab(.index.)┆
0x180…1a0      20 3a 3d 20 70 70 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 0d 0a   ┆ := pp;                    END  ┆
0x1a0…1c0      20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆              ELSE              ┆
0x1c0…1e0      20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆      BEGIN                     ┆
0x1e0…200      20 57 52 49 54 45 28 6e 72 2c 20 27 20 66 69 6e 64 65 73 20 61 6c 6c 65 72 65 64 65 20 2d 20 74   ┆ WRITE(nr, ' findes allerede - t┆
0x200…220 (1,) 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   ┆                                ┆
       […0x1f…]
0x600…620 (3,) 20 20 20 20 20 20 20 20 50 52 4f 47 52 41 4d 20 68 61 73 68 74 61 62 3b 0d 0a 20 20 20 20 20 20   ┆        PROGRAM hashtab;        ┆
0x620…640      20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 28 2a 20 63 70 72 2d 6b 6f 6e 74 72 6f 6c 6c 65 6e 20   ┆              (* cpr-kontrollen ┆
0x640…660      69 20 64 65 74 74 65 20 70 72 6f 67 72 61 6d 20 63 68 65 63 6b 65 72 20 6b 75 6e 20 2a 29 0d 0a   ┆i dette program checker kun *)  ┆
0x660…680      20 20 20 20 20 20 20 20 20 20 28 2a 20 6f 6d 20 64 65 20 74 72 65 20 73 69 64 73 74 65 20 74 65   ┆          (* om de tre sidste te┆
0x680…6a0      67 6e 20 65 72 20 6c 6f 76 6c 69 67 65 20 20 20 20 20 20 20 20 20 20 20 2a 29 0d 0a 20 20 20 20   ┆gn er lovlige           *)      ┆
0x6a0…6c0      20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 54 59 50 45 0d 0a 20 20 20 20 20 20 20 20   ┆                  TYPE          ┆
0x6c0…6e0      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 20   ┆    str10 = STRING(.10.);       ┆
0x6e0…700      20 20 20 20 20 20 20 69 6e 64 65 78 74 79 70 65 20 3d 20 30 20 2e 2e 20 39 39 39 3b 0d 0a 20 20   ┆       indextype = 0 .. 999;    ┆
0x700…720      20 20 20 20 20 20 20 20 20 20 70 6f 69 6e 74 65 72 20 3d 20 5e 20 70 6f 73 74 3b 0d 0a 20 20 20   ┆          pointer = ^ post;     ┆
0x720…740      20 20 20 20 20 20 20 20 20 70 6f 73 74 20 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 20 20 20 20   ┆         post = RECORD          ┆
0x740…760      20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 65 73 74 65 20 3a 20 70 6f 69 6e 74 65 72 3b 0d 0a   ┆             naeste : pointer;  ┆
0x760…780      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 6d 65 72 20 3a 20 73 74   ┆                     nummer : st┆
0x780…7a0      72 31 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20   ┆r10;                     END;   ┆
0x7a0…7c0      20 20 20 20 20 20 20 20 20 20 20 68 61 73 68 74 61 62 65 6c 20 3d 20 41 52 52 41 59 28 2e 69 6e   ┆           hashtabel = ARRAY(.in┆
0x7c0…7e0      64 65 78 74 79 70 65 2e 29 20 4f 46 20 70 6f 69 6e 74 65 72 3b 0d 0a 20 20 20 20 20 20 20 20 20   ┆dextype.) OF pointer;           ┆
0x7e0…800      20 0d 0a 20 20 20 20 20 20 20 20 20 20 56 41 52 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 61   ┆             VAR              ta┆
0x800…820 (4,) 61 73 74 20 3c 52 45 54 55 52 4e 3e 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ast <RETURN>');                 ┆
0x820…840      20 20 20 20 20 52 45 41 44 4c 4e 28 63 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆     READLN(ch);                ┆
0x840…860      20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 20 28 2a 20 69 6e   ┆    END;              END; (* in┆
0x860…880      64 73 61 65 74 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆dsaet *)                        ┆
0x880…8a0      42 45 47 49 4e 20 28 2a 20 68 61 73 68 74 61 62 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆BEGIN (* hashtab *)             ┆
0x8a0…8c0      20 46 4f 52 20 69 20 3a 3d 20 30 20 54 4f 20 39 39 39 20 44 4f 0d 0a 20 20 20 20 20 20 20 20 20   ┆ FOR i := 0 TO 999 DO           ┆
0x8c0…8e0      20 20 20 20 20 74 61 62 65 6c 28 2e 69 2e 29 20 3a 3d 20 4e 49 4c 3b 0d 0a 20 20 20 20 20 20 20   ┆     tabel(.i.) := NIL;         ┆
0x8e0…900      20 20 20 20 20 52 45 50 45 41 54 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 52 49 54 45   ┆     REPEAT                WRITE┆
0x900…920      28 43 4c 52 48 4f 4d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 52 49 54 45 4c 4e   ┆(CLRHOM);                WRITELN┆
0x920…940      28 27 20 20 20 20 20 49 2e 20 49 6e 64 73 7b 74 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆('     I. Indsæt');             ┆
0x940…960      20 20 20 57 52 49 54 45 4c 4e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 52 49 54 45   ┆   WRITELN;                WRITE┆
0x960…980      4c 4e 28 27 20 20 20 20 20 53 2e 20 53 7c 67 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆LN('     S. Søg');              ┆
0x980…9a0      20 20 57 52 49 54 45 4c 4e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 52 49 54 45 4c   ┆  WRITELN;                WRITEL┆
0x9a0…9c0      4e 28 27 20 20 20 20 20 41 2e 20 41 66 73 6c 75 74 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆N('     A. Afslut');            ┆
0x9c0…9e0      20 20 20 20 57 52 49 54 45 4c 4e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 45 50 45   ┆    WRITELN;                REPE┆
0x9e0…a00      41 54 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 45 41 44 28 4b 42 44 2c 20 63 68   ┆AT                  READ(KBD, ch┆
0xa00…a20 (5,) 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 4e 54 49 4c 20 63 68 20 49 4e 20 28 2e   ┆);                UNTIL ch IN (.┆
0xa20…a40      27 49 27 2c 20 27 69 27 2c 20 27 53 27 2c 20 27 73 27 2c 20 27 41 27 2c 20 27 61 27 2e 29 3b 0d   ┆'I', 'i', 'S', 's', 'A', 'a'.); ┆
0xa40…a60      0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 41 53 45 20 63 68 20 4f 46 0d 0a 20 20 20 20 20   ┆               CASE ch OF       ┆
0xa60…a80      20 20 20 20 20 20 20 20 20 20 20 27 49 27 2c 20 27 69 27 20 3a 20 42 45 47 49 4e 0d 0a 20 20 20   ┆           'I', 'i' : BEGIN     ┆
0xa80…aa0      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 57 52 49 54 45 28   ┆                          WRITE(┆
0xaa0…ac0      27 54 61 73 74 20 63 70 72 6e 75 6d 6d 65 72 3a 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆'Tast cprnummer: ');            ┆
0xac0…ae0      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 55 46 4c 45 4e 20 3a 3d 20 31 30 3b   ┆                   BUFLEN := 10;┆
0xae0…b00      0d 0a 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 52   ┆                               R┆
0xb00…b20      45 41 44 4c 4e 28 63 70 72 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆EADLN(cpr);                     ┆
0xb20…b40      20 20 20 20 20 20 20 20 20 20 69 6e 64 73 61 65 74 28 74 61 62 65 6c 2c 20 63 70 72 29 3b 0d 0a   ┆          indsaet(tabel, cpr);  ┆
0xb40…b60      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 45 4e 44 3b 0d   ┆                           END; ┆
0xb60…b80      0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 53 27 2c 20 27 73 27 20 3a 20 42 45 47 49   ┆                 'S', 's' : BEGI┆
0xb80…ba0      4e 0d 0a 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   ┆N                               ┆
0xba0…bc0      57 52 49 54 45 28 27 48 76 69 6c 6b 65 74 20 63 70 72 6e 75 6d 6d 65 72 20 73 7c 67 65 73 3a 20   ┆WRITE('Hvilket cprnummer søges: ┆
0xbc0…be0      27 29 3b 0d 0a 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   ┆');                             ┆
0xbe0…c00      20 20 42 55 46 4c 45 4e 20 3a 3d 20 31 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆  BUFLEN := 10;                 ┆
0xc00…c20 (6,) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 45 41 44 4c 4e 28 63 70 72 29 3b 0d 0a 20 20 20 20   ┆              READLN(cpr);      ┆
0xc20…c40      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 56 41 4c 28 43 4f 50   ┆                         VAL(COP┆
0xc40…c60      59 28 63 70 72 2c 20 38 2c 20 33 29 2c 20 69 6e 64 65 78 2c 20 74 65 73 74 29 3b 0d 0a 20 20 20   ┆Y(cpr, 8, 3), index, test);     ┆
0xc60…c80      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 49 46 20 28 74 65   ┆                          IF (te┆
0xc80…ca0      73 74 20 3c 3e 20 30 29 20 4f 52 20 28 4c 45 4e 28 63 70 72 29 20 3c 20 31 30 29 0d 0a 20 20 20   ┆st <> 0) OR (LEN(cpr) < 10)     ┆
0xca0…cc0      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 54 48 45 4e   ┆                            THEN┆
0xcc0…ce0      0d 0a 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   ┆                                ┆
0xce0…d00      20 20 20 57 52 49 54 45 4c 4e 28 27 55 6c 6f 76 6c 69 67 74 20 63 70 72 6e 72 2e 27 29 0d 0a 20   ┆   WRITELN('Ulovligt cprnr.')   ┆
0xd00…d20      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 45 4c   ┆                              EL┆
0xd20…d40      53 45 0d 0a 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   ┆SE                              ┆
0xd40…d60      20 20 20 20 20 49 46 20 73 6f 65 67 28 74 61 62 65 6c 28 2e 69 6e 64 65 78 2e 29 2c 20 63 70 72   ┆     IF soeg(tabel(.index.), cpr┆
0xd60…d80      29 0d 0a 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   ┆)                               ┆
0xd80…da0      20 20 20 20 20 20 54 48 45 4e 20 57 52 49 54 45 4c 4e 28 63 70 72 2c 20 27 20 66 69 6e 64 65 73   ┆      THEN WRITELN(cpr, ' findes┆
0xda0…dc0      27 29 0d 0a 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   ┆')                              ┆
0xdc0…de0      20 20 20 20 20 20 20 45 4c 53 45 20 57 52 49 54 45 4c 4e 28 63 70 72 2c 20 27 20 66 69 6e 64 65   ┆       ELSE WRITELN(cpr, ' finde┆
0xde0…e00      73 20 69 6b 6b 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆s ikke');                       ┆
0xe00…e20 (7,) 20 20 20 20 20 20 20 20 57 52 49 54 45 28 27 54 61 73 74 20 3c 52 45 54 55 52 4e 3e 20 27 29 3b   ┆        WRITE('Tast <RETURN> ');┆
0xe20…e40      0d 0a 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 52   ┆                               R┆
0xe40…e60      45 41 44 4c 4e 28 63 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆EADLN(ch);                      ┆
0xe60…e80      20 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 3b 0d   ┆       END;                END; ┆
0xe80…ea0      0a 20 20 20 20 20 20 20 20 20 20 20 20 55 4e 54 49 4c 20 63 68 20 49 4e 20 28 2e 27 41 27 2c 20   ┆             UNTIL ch IN (.'A', ┆
0xea0…ec0      27 61 27 2e 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 45 4e 44 2e 20 28 2a 20 68 61 73 68 74 61   ┆'a'.);            END. (* hashta┆
0xec0…ee0      62 20 2a 29 0d 0a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a   ┆b *)                            ┆
0xee0…f00      1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a   ┆                                ┆