|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 3840 (0xf00) Names: »HASHTAB.PAS«
└─⟦f983c2ef3⟧ Bits:30004681 Pascal opgaver (Butler) └─⟦this⟧ »HASHTAB.PAS«
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 ┆ ┆