8.1.. Aritmetičke operacije
Program omogućuje provjeru poznavanja aritmetičkih operacija od strane korisnika.

Opis rješenja: Program se sastoji od glavnog programa i potprograma. Potprogrami obavljaju slijedeće aktivnosti:
- Postavljanje početnih vrijednosti (linija 700);
- Izbor jedne od aritmetičkih operacija (linija 100);
- Ispis naslova za izabranu aritmetičku operaciju (linija 300);
- Generisanje dva slučajna broja (linija 400);
- Računanje rezultata za generisane slučajne brojeve (linija 500)
- Očitavanje i provjera odgovora korisnika (linija 600);
Glavni program poziva potprograme u linijama 30 do 60. Poslije postavljanja početnih vrijednosti (linija 700) i ispisa naslova i menija sa ponuđenim aritmetičkim operacijama očekuje se da korisnik izvrši izbor jedne od aritmetičkih operacija (potrogram od linije 100). Zatim se ispisuje naslov izabrane aritmetičke operacije (pp od linije 300).
Generisanje dva slučajna broja u intervalu od min=1 do max=99 je u pp od linije 400. Promjenu intervala izvodi se promjenom vrijednosti u linijama 410 i 420. Generisanje slučajne vrijednosti u određenom opsegu je objašnjeno na linku.

Opis programa:

Listing programa:

1 REM aritmeticke operacije
10 REM glavni program
20 GOSUB 700: REM pocetne vrijednosti
30 GOSUB 100: REM izbor operacije
40 GOSUB 400: REM novi brojevi
50 GOSUB 500: REM aritmeticke operacije
60 GOSUB 600: REM PROVJERA odgovora
70 PRINT "Hoces li jos (D/)";: INPUT da$: REM izbor operacije
80 IF RIGHT$(da$, 1) = "D" THEN GOTO 40
90 GOTO 30

100 REM IZBOR ARITMETICKE OPERACIJE
110 CLS
111 PRINT TAB(10);
PRINT "ARITMETCKE OPERACIJE"
120 PRINT
130 PRINT "1. SABIRANJE"
140 PRINT "2. ODUZIMANJE"
150 PRINT "3. MNOZENJE"
160 PRINT "4. DIJELJENJE"
170 PRINT "5. KRAJ"

REM  180 VTAB20
PRINT TAB(5);
INPUT "Izbor operacije (1-5): "; I
190 IF (I < 1 OR I > 6) THEN GOTO 100: REM
200 GOSUB 300: REM naslov aritmeticke operacije
210 RETURN

300 REM NASLOV ARTMETICKE OPERACIJE
310 CLS
PRINT TAB(10);: REM horizontalno pomjeranje kursora
PRINT X$(I)
PRINT TAB(10);
330 FOR J = 1 TO LEN(X$(I))
    332 PRINT "=";
335 NEXT J
340 PRINT
350 RETURN

400 REM NOVI SLUCAJNI BROJEVI - RND()
405 min = 1: max = 99: REM za opseg 1 - 99
410 A = INT(max * RND(1)) + min: REM slucajan broj a
420 B = INT(max * RND(1)) + min: REM slucajan broj b
430 RETURN

500 REM rezultat aritmeticke operacije
510 ON I GOTO 520, 530, 540, 550, 990
520 R = A + B: PRINT A; " + "; B;: GOTO 560: REM sabiranje
530 R = A - B: PRINT A; " - "; B;: GOTO 560: REM oduzimanje
540 R = A * B: PRINT A; " * "; B;: GOTO 560: REM mnozenje
550 R = INT(A / B): PRINT A; " / "; B;: GOTO 560: REM dijeljenje
560 RETURN

600 REM Provjera odgovora
610 INPUT " = "; o
620 IF R = o THEN BP = BP + 1: PRINT "TACNO"
630 IF R <> o THEN BG = BG + 1: PRINT "Pogresno, ispravan rezultat = "; R
640 PRINT "OD "; BP + BG; " pokusaja; Tacno = "; BP; "  pogresno = "; BG
650 RETURN

700 REM pocetne vrijednosti
710 BP = 0: REM broj pogodaka
720 BG = 0: REM BROJ gresaka
723 RANDOMIZE TIMER: REM omogucuje razlicite slucajnje brojeve pri svakom startanju programa
730 FOR J = 1 TO 4
    740 READ X$(J)
750 NEXT J
760 DATA SABIRANJE,ODUZIMANJE,MNOZENJE,DIJELJENJE,KRAJ
770 RETURN
990 END

Ispis na ekranu:

Daljnj i rad: Trocifreni i četverocifreni broј dobijamo promjenom u liniji 110 vrljednostі, vriјeмe prikaza je regulisano u liniji 120. Probajte napisati program u kojem:
- igra vaše igrača,
- treba zapamtiti viša brојеvа.

Index