26.2.. Provjera pamćenja četiri prakazana pojma od 20 iz baze pojmova.

Opis rješenja: Program ispisuje 4 pojma na ekran od 20 mogućih. Poslije izvjesnog vremena očekuje od nas da učitamo ispisane (viđene) pojmove da provjerimo našu sposobnost pamćenja. Redoslijed prikazanih pojmova ne moramo zadržati pri kucanju. Igru možemo ponavljati.
Na početku rada program očita podatke iz DATA naredbe i pridruži im članovima niza X$ (1inije 760, 780). Izbor novih pojmova se obavija u potprogramu počevši od linije 400 i pridružuju se članovima niza POJ$. Potprogram za očitavanje pojmova sa tastature počinje na liniji 600. Provjera da li je to prethodno prikazan pojam na ekranu se izvodi u potprogramu od linije 600. Ispis broja pogodaka i promašaja, kao i nepogođene pojmove ispisuje od linije 100,

Spisak varijabi:
POJ$( ~ izabrana riječ ~ pojam
RJ - broj riječi koji se pogada
RT( - broj riječi ~ pojmova
X$( - moguce riječi :
ZN( - indikator da li je riječ - pojam pogođena, vrijednost 1

Listing programa:

REM 26011080
1 REM PAMCENJE POJMOVA
2 REM GLAVNI PROGRAM
2 REM GLAVNI PROGRAM
REM 10 GOSUB 300: REM naslov
GOSUB 200: REM dimenzionisanje
30 GOSUB 700: REM pocetne vrijednosti
GOSUB 400: REM novi pojam
GOSUB 500: REM ucitavanje i provjera pojmova
GOSUB 800: REM Ispis rezultata
INPUT "Hoces li jos (/N) "; DA$: REM nastavak sa novim izdvojenim rijecima
IF LEFT$(DA$, 1) <> "N" THEN GOTO 30
END

200 REM Dimenzionisanje
RANDOMIZE TIMER: REM omogucuje generisanje novog broja pri svakom startanju programu
t = 0: REM broj pogodaka
bg = 0: REM broj gresaka
rt = 20: REM broj rijeci ukupno
rj = 4: REM broj rijeci za pogajanije
DIM X$(rt): REM moguce rijeci
DIM POJ$(rj): REM izabrana rijec - pojam
DIM ZN(rj): REM indikator da li je rijec - pojam pogodjen
DIM izdvojen(rt): REM indeks izdvojenih rijeci
RESTORE: REM pocetak DATA oblasti
FOR j = 1 TO rt: REM ocitaj pojmove iz DATA
    READ X$(j)
NEXT j
DATA STO,PAS,TATA,MAMA,LAMPA
DATA CVIJET,SUNCE,RUZA,BROD,SESTRA
DATA VODA,PAKET,MACA,SAT,PLAN
DATA RIBA,REP,RADIO,KNJIGA,BAKA
RETURN

300 REM Naslov
CLS: PRINT TAB(10); "PAMCENJE POJMOVA"
PRINT TAB(10);:
FOR j = 1 TO 16: PRINT "-";: NEXT j: PRINT
RETURN

400 REM Generisanje pojmova za pogadjanje
GOSUB 300: REM naslov
PRINT TAB(10); "Pojmovi koje treba zapamtiti"
FOR j = 1 TO rj
    i = INT(rt * RND(1)) + 1
    WHILE izdvojen(i) = 1: REM ako je vec izdvojen generisi novi indeks pojmova
        i = INT(rt * RND(1)) + 1
    WEND
    izdvojen(i) = 1: REM indeks izdvojenog pojma    = 1
    POJ$(j) = X$(i): REM izdvojeni pojama u niz izdvojenih
    PRINT POJ$(j): REM prikazi izdvojeni pojam
    ZN(j) = 0: REM indikator izdvojenog = 0 kod poredjenja ce posatati 1
NEXT j
FOR K = 1 TO 1000: NEXT K: REM kasni
RETURN

500 REM ucitavanje pojmova
PRINT: PRINT
PRINT TAB(10);: INPUT "Startaj ucitavanje pojmova (Enter) "; nista$
CLS:
PRINT: PRINT
FOR j = 1 TO rj
    INPUT "Otkucaj pojam: "; IM$
    GOSUB 600: REM provjera odgovora
NEXT j
RETURN

600 REM Provjera odgovora
nasao = 1: REM pretpostavljamo da nije nasao
FOR i = 1 TO rj
    IF POJ$(i) = IM$ AND ZN(i) = 0 THEN
        t = t + 1: REM brojac tacnih uvecaj za 1
        ZN(i) = 1: REM rijec je pogodjena (nemoze 2x ista rijec)
        nasao = 0: REM brojac grasak nece biti uvecan
    END IF
NEXT i
bg = bg + nasao: REM ako nije nasao uvecaj broj grasaka
RETURN

700 REM Pocetne vrijednosti
FOR j = 1 TO rj
    ZN(j) = 0: REM indikator da li je rijec - pojam pogodjen
NEXT j

FOR j = 1 TO rt
    izdvojen(j) = 0: REM indeks izdvojenih rijeci
NEXT j
RETURN

800 REM Ispis rezultata
PRINT: PRINT
PRINT "Rijeci koje je trebalo pogadati"
PRINT
FOR i = 1 TO rj
    PRINT POJ$(i)
NEXT i
PRINT
PRINT "Od "; t + bg; " pokusaja "; t; "je tacno, a "; bg; "je pogresno"
RETURN

990 END
Daljnji rad: Promjenom krajnje vrijednosti u FOR petlji u lini 470 možemo regulisati kašnjenje. Broj pojmova koji se ispisuje je regulisan samo u jednoj liniji (740). Sad je RJ broj riječi 4. Pojmovi se mogu promjeniti izmjenom u u linijama od 790 do 820. Ako mijenjamo ukupan broj pojmova moramo ga uskladiti ne samo jednom mjestu (linija 750). RT je sa 20

Ispis na ekranu:

Index