1 REM ***************************** 2 REM * LANGUAGE.BAC - 16 K Minne * 3 REM * 81-10-30 / VER 3.0 * 4 REM * (c) Alf Wirdling <4230> * 5 REM ***************************** 10 PRINT CHR$(12);TAB(7);"SPR]K-TR[NING - VERSION 3" 20 PRINT TAB(7);STRING$(25,61) : ; 30 PRINT : ; "***************************************" 40 PRINT "* *" 50 PRINT "* OBS. ANV[ND BARA EN TECKEN-STORLEK *" 60 PRINT "* *" 70 PRINT "***************************************" 80 RANDOMIZE 90 DIM V%(99),E$(99)=25,S$(99)=25 100 GOSUB 11111 : REM * KLOCKAN * 110 PRINT : ; TAB(10);"MENY" : ; 120 PRINT "1 - L[SA IN ORD-FIL" 130 PRINT "2 - SPARA ORD-FIL P] BAND" 140 PRINT "3 - SKAPA ORD-VEKTOR" 150 PRINT "4 - LISTA ORD-VEKTORN" 160 PRINT "5 - ORD-TR[NING" 170 PRINT "6 - TA BORT ORD UR VEKTORN" 180 PRINT "7 - LISTA ORD-VEKTORN P] SKRIVARE" 190 PRINT "8 - AVSLUTA SPR]K-TR[NING" 200 ONERRORGOTO 110 : PRINT : ; "SVARA MED SIFFRA "; : GET R$ : ; R$ 210 R%=VAL(R$) : IF R%<1% OR R%>8% THEN 200 220 ON R% GOTO 232,340,400,600,640,1010,1160,1120 230 REM *** INL[SNING ORD-FIL *** 232 PRINT : ; "SKALL FILEN L[GGAS TILL (J/N) "; 234 GET R$ : ; R$ : IF R$="J" OR R$="j" THEN X2%=I% : GOTO 240 236 IF R$="N" OR R$="n" THEN X2%=0% ELSE 232 240 PRINT : ; "TRYCK RETURN F\R INL[SNING "; : GET R$ : ; R$ 245 ONERRORGOTO 300 250 OPEN "SPR]KFIL" ASFILE 1 260 PRINT : ; "SPR]KFILEN HITTAD !!!" 280 INPUTLINE #1,L$ 290 FOR I%=X2% TO 99% : INPUTLINE #1,S$(I%) : INPUTLINE #1,E$(I%) : NEXT I% 300 CLOSE 1 : PRINT : ; I%;" ORD I VEKTORN !" 310 L$=LEFT$(L$,LEN(L$)-2%) 320 FOR X%=X2% TO I%-1% : E$(X%)=LEFT$(E$(X%),LEN(E$(X%))-2%) : S$(X%)=LEFT$(S$(X%),LEN(S$(X%))-2%) : NEXT X% : GOTO 110 330 REM *** SPARAR ORD-FIL *** 340 PRINT : ; "TRYCK RETURN F\R LAGRING "; : GET R$ : ; R$ 350 PREPARE "SPR]KFIL" ASFILE 2 360 PRINT #2,L$ 370 FOR J%=0% TO I%-1% : PRINT #2,S$(J%) : PRINT #2,E$(J%) : NEXT J% 380 CLOSE 2 : PRINT : ; J%;" ORD [R SPARADE !" : GOTO 110 390 REM *** SKAPA ORD-FIL *** 400 PRINT : ; "1 - HELT NY FIL" 410 PRINT "2 - TILL[GG TILL FIL" 420 PRINT : ; "SVARA MED SIFFRA "; : GET R$ : ; R$ 430 IF R$="1" THEN X%=0% : GOTO 460 440 IF R$<>"2" THEN 420 450 X%=I% : GOTO 470 460 PRINT : ; "SPR]K: "; : INPUTLINE L$ : L$=LEFT$(L$,LEN(L$)-2%) : ; 470 PRINT : ; "Sl} in 'B' f|r att backa inmatning" 480 PRINT "Tryck enbart RETURN f|r avslutning" 490 FOR I%=X% TO 99% : ; : ; "ORD -";I%+1% : ; 500 PRINT L$;": "; : W%=1% 510 INPUTLINE C$ : ; : C$=LEFT$(C$,LEN(C$)-2%) : IF LEN(C$)=0% THEN 580 520 IF C$="B" OR C$="b" THEN 570 530 ON W% GOTO 540,550 540 E$(I%)=C$ : ; "SVENSKA: "; : W%=2% : GOTO 510 550 S$(I%)=C$ 560 NEXT I% : GOTO 580 570 I%=I%-2% : GOTO 560 580 PRINT : ; I%;" ORD FINNS I VEKTORN !" : GOTO 110 590 REM *** LISTA ORD-VEKTOR *** 600 PRINT : ; "LISTNING AV ORD-VEKTORN:" 610 FOR P%=0% TO I%-1% : ; : ; "ORD -";P%+1% : ; 620 PRINT L$;": ";E$(P%) : ; "SVENSKA: ";S$(P%) : GET R$ : NEXT P% : ; : ; "SLUT P] LISTNING !" : GOTO 110 630 REM *** ORD-TR[NING *** 640 PRINT : ; "SPR]K-TR[NING !!!" : ; 650 PRINT "1 - SVENSKA till ";L$ 660 PRINT "2 - ";L$;" till SVENSKA" 670 PRINT : ; "SVARA MED SIFFRA "; : GET R$ : ; R$ : T%=VAL(R$) : IF T%<1% OR T%>2% THEN 670 680 FOR N%=0% TO I%-1% : V%(N%)=0% : NEXT N% 690 FOR P%=1% TO I% : A%=0% 700 L%=RND*I% : IF V%(L%)>0% THEN 700 ELSE V%(L%)=1% 710 PRINT : ; STRING$(39,46) 720 PRINT : ; "ORD -";P% : ; 730 ON T% GOTO 740,810 740 PRINT "SVENSKA :";S$(L%) 750 PRINT L$;": "; : INPUTLINE R$ : ; : R$=LEFT$(R$,LEN(R$)-2%) 755 IF LEN(R$)=0% THEN 860 760 IF R$=E$(L%) THEN PRINT : ; "R[TT SVARAT !" : GOTO 800 770 IF A%=1% THEN 860 780 IF INSTR(1%,E$(L%),R$)=0% THEN 860 790 PRINT : ; "DU T[NKER NOG R[TT - ETT F\RS\K TILL" : A%=1% : GOTO 720 800 NEXT P% : GOTO 900 810 PRINT L$;": ";E$(L%) 820 PRINT "SVENSKA: "; : INPUTLINE R$ : ; : R$=LEFT$(R$,LEN(R$)-2%) 825 IF LEN(R$)=0% THEN 860 830 IF R$=S$(L%) THEN PRINT : ; "R[TT SVARAT !" : GOTO 800 840 IF A%=1% THEN 860 850 IF INSTR(1%,S$(L%),R$)>0% THEN 790 860 PRINT : ; "FEL SVARAT !!!" : V%(L%)=2% : ; : ; "R[TT SVAR: "; 870 ON T% GOTO 880,890 880 PRINT E$(L%) : GOTO 800 890 PRINT S$(L%) : GOTO 800 900 PRINT : ; "SLUT P] ORDEN !!!" 910 PRINT : ; STRING$(39,46) 920 PRINT : ; "DESSA ORD KLARADE DU INTE:" 930 A%=0% : FOR P%=0% TO I%-1% 940 IF V%(P%)=2% THEN A%=A%+1% : ; : ; "ORD -";P%+1% : ; ELSE 970 950 PRINT L$;": ";E$(P%) 960 PRINT "SVENSKA: ";S$(P%) : GET R$ 970 NEXT P% 980 PRINT : ; "ANTAL FEL =";A%;" ELLER"; 990 A=A% : ; INT(A/I%*100);" %" : GOTO 110 1000 REM *** DELETE I ORD-FILEN *** 1010 PRINT : ; "SL] IN NUMRET P] DE ORD DU VILL TA BORT" 1020 PRINT "Tryck enbart RETURN f|r avslutning" : ; 1025 PRINT "OBS. I STIGANDE ORDNING !!!" : ; 1030 ONERRORGOTO 1050 1040 FOR J%=0% TO I%-1% : ; "ORD NR "; : INPUT V%(J%) : V%(J%)=V%(J%)-1% : NEXT J% 1050 PRINT : ; "BORT-TAGING/PACKNING SKER NU" 1060 FOR P%=0% TO J%-1% 1070 FOR N%=V%(P%) TO I%-2% 1080 E$(N%)=E$(N%+1%) : S$(N%)=S$(N%+1%) : NEXT N% 1090 FOR X%=P%+1% TO J%-1% : V%(X%)=V%(X%)-1% : NEXT X% 1100 I%=I%-1% : NEXT P% : GOTO 110 1110 REM *** SLUT SPR]K-TR[NING *** 1120 PRINT : ; "TACK F\R IDAG - ANV[ND TID:"; 1130 GOSUB 22222 : REM * KLOCKAN * 1140 END 1150 REM *** SPR]K-VEKTOR > PRINTER *** 1160 PRINT : ; "G\R SKRIVAREN REDO "; 1170 GET R$ : ; : S2%=0% 1180 OPEN "PR:" ASFILE 3 1190 GOSUB 1270 1200 FOR P%=0% TO I%-1% 1210 PRINT #3,TAB(4);P%+1%;".";TAB(10);E$(P%);TAB(40);S$(P%) 1220 X%=X%+1% : IF X%<56% THEN 1240 1230 PRINT #3,CHR$(12) : GOSUB 1270 1240 NEXT P% 1250 PRINT : ; "SPR]KFILEN LISTAD !" 1260 PRINT #3,CHR$(12); : GOTO 110 1270 PRINT #3,TAB(5);"LISTNING AV SPR]K-VEKTOR, SPR]K = ";L$; 1280 S2%=S2%+1% 1290 PRINT #3,TAB(60);"SIDA";S2% 1300 PRINT #3,TAB(5);STRING$(61,61) : ; #3 1310 PRINT #3,TAB(5);"ORD";TAB(10);L$;TAB(40);"SVENSKA" 1320 PRINT #3,TAB(5);"===";TAB(10);STRING$(LEN(L$),61);TAB(40);STRING$(7,61) : ; #3 1330 X%=0% : RETURN 11111 POKE 65008%,255%,255%,255% : RETURN 22222 C7%=PEEK(65008%) : C8%=PEEK(65009%) : C9%=PEEK(65010%) : IF PEEK(65008%)<>C7% THEN 22222 22223 C7=C7% : C8=C8% : C9=C9% : PRINT ((255-C7)+((255-C8)*256)+((255-C9)*256*256))/50;" s" : RETURN