home *** CD-ROM | disk | FTP | other *** search
- 1 POKE53280,14:POKE53281,6:POKE646,14
- 5 DIMDA$(100,2)
- 6 FORL=1 TO 100:DA$(L,2)="0":DA$(L,0)="":NEXT
- 8 FR=31
- 10 REM *******************************
- 20 REM * AN EXAMPLE OF HASH TABLES *
- 30 REM * *
- 40 REM * WRITTEN BY STEVEN P BURGESS *
- 50 REM * *
- 60 REM * COPYRIGHT 1989 *
- 70 REM *******************************
- 80 REM
- 90 REM
- 95 GOSUB5000
- 100 PRINTCHR$(147);
- 110 PRINT"[176][192][192][192][192][174]"
- 120 PRINT"[221]MENU[221]"
- 130 PRINT"[173][192][192][192][192][189]"
- 140 PRINT"1..ADD RECORDS"
- 150 PRINT"2..SEARCH FOR RECORD"
- 160 PRINT"3..DELETE RECORD"
- 170 PRINT"4..END PROGRAM"
- 180 GETA$:IFA$=""THEN180
- 190 IF A$<"1" OR A$>"4"THEN180
- 200 IF A$="1"THEN GOSUB1000
- 210 IF A$="2"THEN GOSUB2000
- 220 IF A$="3"THEN GOSUB3000
- 230 IF A$="4"THEN PRINTCHR$(147):END
- 250 GOTO 100
- 260 REM***************
- 270 REM*HASH FUNCTION*
- 280 REM***************
- 290 H=0:T=0:FORE=1 TO LEN(A$):T=T+ASC(MID$(A$,E,1))
- 300 NEXT
- 310 T=T/LEN(A$)
- 320 H=INT(ABS(SIN(T))*29)+1
- 330 H=INT(H)
- 340 RETURN
- 350 REM***************
- 360 REM*ADD PROCEDURE*
- 370 REM***************
- 380 INS=0:IF DA$(H,0)=""THEN DA$(H,0)=A$:DA$(H,1)=B$:RETURN
- 390 IFDA$(H,2)="0"THEN DA$(H,2)=STR$(FR):DA$(FR,0)=A$:DA$(FR,1)=B$:INS=1:FR=FR+1
- 400 IF INS<>1 THEN H=VAL(DA$(H,2)):GOTO 380
- 410 RETURN
- 1000 REM*************
- 1010 REM*ADD RECORDS*
- 1020 REM*************
- 1030 PRINTCHR$(147);
- 1040 PRINT"ADD RECORDS"
- 1050 PRINT"";:INPUT"ENTER COUNTRY";A$
- 1060 PRINT"";:INPUT"ENTER CAPITAL";B$
- 1070 GOSUB260:GOSUB350
- 1080 RETURN
- 2000 REM*************
- 2010 REM*SEARCH FOR RECORD*
- 2020 REM*******************
- 2021 FI=0
- 2025 IF DI$<>"DELETE"THEN DI$="SEARCH FOR"
- 2030 PRINTCHR$(147);
- 2040 PRINTDI$+" RECORD"
- 2050 PRINT"";:INPUT"ENTER COUNTRY";A$
- 2060 GOSUB260
- 2070 IF DA$(H,0)=A$ THEN F=1
- 2080 IF F=0 THEN H=VAL(DA$(H,2))
- 2090 IF H<>0 AND F<>1 THEN 2070
- 2100 IFH=0ANDF=0 THEN PRINT"[147]SORRY BUT THE COUNTRY YOU ENTERED IS NOT PRESENT"
- 2105 IF H=0 AND F=0 THEN PRINT"PRESS ANY KEY TO RETURN TO THE MENU"
- 2106 IF H=0 AND F=0 THEN GETA$:IFA$=""THEN2106
- 2107 IF H=0 AND F=0 THEN RETURN
- 2110 PRINT"[147]";
- 2120 PRINT"COUNTRY:";DA$(H,0)
- 2130 PRINT"CAPITAL:";DA$(H,1)
- 2140 PRINT"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
- 2150 PRINT"IS THIS THE RECORD YOU REQUIRE"
- 2160 PRINT"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
- 2170 GETR$:IFR$=""THEN2170
- 2180 IF R$="N"THENH=VAL(DA$(H,2)):F=0:GOTO 2070
- 2190 PRINT"[145][145]PRESS ANY KEY TO RETURN "
- 2200 GETA$:IFA$=""THEN 2200
- 2205 IF DI$<>"DELETE"THEN H=0:F=0
- 2210 RETURN
- 3000 REM***************
- 3010 REM*DELETE RECORD*
- 3020 REM***************
- 3025 DI$="DELETE"
- 3030 PRINT"[147]";
- 3040 PRINT"DELETE RECORD"
- 3050 GOSUB2000
- 3080 IF H=0 AND F=0 THEN RETURN
- 3090 DA$(H,0)="":DA$(H,1)=""
- 3095 DI$=""
- 3096 H=0:F=0
- 3100 RETURN
- 5000 FORL=1 TO 5:READA$,B$
- 5010 GOSUB260
- 5020 GOSUB350
- 5030 NEXT
- 5036 RETURN
- 5040 DATAFRANCE,PARIS,ENGLAND,LONDON,RUSSIA,MOSCOW,AUSTRAILIA,CANBERRA,ETHIOPIA
- 5050 DATAADDIS ABABA
-