26.6.. Aritmetičke operacije - dva broja. Korisnik bira aritmetičku operaciju. Na osnovu slučajno generisana dva broja treba otkucati odgovor. Programom je obezbjeđena provjera ispravnosti otkucanog rezultata.
Opis rješenja: Program omogućuje provjeru poznavanja aritmetičkih operacija od strane karisnika programa.
Opis programa: Program se sastoji od glavnog programa i potprograma. Potprogrami obavljaju slijedeće aktivnosti:
- postavijanje početnih vrijednosti;
- izbor aritmetičke operacije;
- ispis naslova izabrane aritmetičke operacije;
- generisanje dva slučajna broja;
- očitavanje i provjera otkucacnog odgovora korisnika.
Glavni program poziva pojedine potprograme i upravlja ponavljanje pogađanja rezultata u DO LOOP UNTIL petlji.
Ispis menija aritmetičkih operacija i izbor jedne od operacije se izvodi u potprogramu od 100 linije. Naslov izabrane aritmetičke operacija je u potprogramu od linije 300.
Generisanje dva slučajna broja u intervalu od 1 do 100 je potprogramu od linije 400. Generisanje prirodnih brojeva u intervalu od 1 do 100 se izvodi INT(100 * RND(1)) + 1. Generisanje slučajnog broja u odrađenom opsegu je objašnjeno u prilogu.
Ispis generisanih brojeva, povezanih izabranim operatorom se obavlja u liniji 500-560.
Korisnik treba da otkuca vrijednost odgovora na tastaturi. Provjera tačnosti otkucane vrijednosti obavlja se u linijama od 600 do 670.
Potprogram postavljanja početnih vrijednosti (linije 700-770) je prvo pozina. Radi preglednosti se nalazi na kraju listinga. Dok pišete program znate gdje su početne vrijednosti, kao i u kasnijem testiranju prvo pregledate kod koji izvodi aktivnosti...
Program nudi ponavljanje provjere operacije za nove vrijednosti.
Listing programa:
REM 26011060
REM Glavni program
GOSUB 700: REM pocetne vrijednosti
GOSUB 100: REM izbor operacije
DO
GOSUB 400: REM novi brojevi
GOSUB 500: REM aritmeticke operacije
GOSUB 600: REM provjera odgovora
INPUT "Hoces li jos (/n) "; ne$
LOOP UNTIL (LEFT$(ne$, 1) = "N" OR LEFT$(ne$, 1) = "n")
GOTO 990: REM idi na kraj
REM potprogrami
100 REM Izbor operacije
CLS
LOCATE , 10: REM pomjeri kursor horizontalno 10 mjesta
PRINT "ARITMETCKE OPERACIJE": REM naslov i meni
120 PRINT
130 PRINT "1. SABIRANJE"
140 PRINT "2. ODUZIMANJE"
150 PRINT "3. MNOZENJE"
160 PRINT "4. DIJELJENJE"
170 PRINT "5. KRAJ"
LOCATE , 8: REM pomjeri kursor horizontalno na 8 mjesto
INPUT "Izbor "; i
190 IF (i < 1 OR i > 5) THEN GOTO 100: REM izvan ponudjenog opsega vrijednosti
200 GOSUB 300: REM MASLOV ARITMETICKE OPERACIJE
REM 210 GOTO 990: REM idi na kraj
RETURN
300 REM Naslov aritmeticke operacije
LOCATE , 10: REM pomjeri kursor horizontalno 10 mjesta
PRINT x$(i)
LOCATE , 10: REM pomjeri kursor horizontalno 10 mjesta
FOR j = 1 TO LEN(x$(i))
PRINT "=";
NEXT j
PRINT
350 RETURN
400 REM Novi slucajni brojevi
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
410 a = INT(100 * RND(1)) + 1
420 b = INT(100 * RND(1)) + 1
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
530 r = a - b: PRINT a; " - "; b: GOTO 560
540 r = a * b: PRINT a; " * "; b: GOTO 560
550 r = INT(a / b): PRINT a; " / "; b: GOTO 560
560 RETURN
600 REM Provjera odgovora
610 INPUT " Otkucaj rezultat "; 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 "; bp; " ima tacnih "
650 RETURN
700 REM Pocetne vrijednosti
710 bp = 0 REM brojac pogodataka
720 bg = 0 REM brojac gresaka
730 FOR j = 1 TO 4
740 READ x$(j): REM pridruzivanja naziva aritmeticke operacije
750 NEXT j
760 DATA SABIRANJE,ODUZIMANJE,MNOZENJE,DIJELJENJE
770 RETURN
990 END
Ispis na ekranu:
Index
|
|