abc Programski jezik BASIC
GOSUB - Potprogrami
Potprogram omogućuje jednostavnije pisanje programa, jednom napisane
naredbe se mogu više puta koristiti.
Koraci izvođenje programa sa potprogramom:
- Naredba GOSUB labela - prelazi se na naredbu labela
- Izvođenje potprograma pod imenom labela
- Posednja naredba potprograma RETURN
- Vraćanje na prvu naredbu poslije naredbe GOSUB labela
Sintaksa korištenja GOSUB |
Dijagram potprograma |
Animacija izvođenja potprograma |
REM: glavni program
naredbe5
GOSUB labela1
naredbe6
GOSUB labela2
naredbe7
STOP
labela1:
REM opis1
naredba potprograma 1
RETURN
labela2:
REM opis2
naredba potprograma 2
RETURN
END
|
Slika 1. Primjer korištenja potprograma GOSUB |
Glavni program
potprogram labela1
potprogram labela2
Slika 2. Primjer animacije potprograma GOSUB |
Primjer1: Pogađanje slučajnog broja u intervalu od 0 do 9.
Listing programa
REM Pogadjanje slucajno izabranog broja od 0 do 9
REM Glavni program
GOSUB inicijalizacija: REM inicijalizacija - pocetne vrijednosti
GOSUB slucajanBroj: REM generisanje slucajnog broja
DO
GOSUB ulaz: REM ucitavanje broja
GOSUB analiza: REM analizira odnos slucajnog i vaseg broja
LOOP UNTIL broj = slBroj: REM ponavljanje do pronalaska broja
IF broj <> slBroj THEN PRINT "Pronasao :)"
INPUT "Kraj "; DA$
STOP
inicijalizacija:
REM Inicijalizacija - pocetne vrijednosti i naslovi
CLS
PRINT "Pogadjanje broja izmedju 0 i 9"
RETURN
slucajanBroj:
REM generisanje slucajnog broja
RANDOMIZE TIMER: REM novi slucajan broj
slBroj = INT(10 * RND)
RETURN
ulaz:
REM ucitavanje novog broja
PRINT "Vas broj (0 i 9)";
INPUT broj
RETURN
analiza:
REM analizira odnos slucajnog i vaseg broja
IF broj > slBroj THEN PRINT "Vas broj je veci"
IF broj < slBroj THEN PRINT "Vas broj je manji"
RETURN
END
Ispis na ekranu:
- RETURN - Vraćanje na naredbu poslije naredbe GOSUB koja je izvela pozivanje potprograma.
Primjer1: Izvođenjem naerdbe GOSUB labela1: se prelazi na izvođenje naredbe labela1
Poslednja naredba potprograma labela1 je RETURN. Izvođenjem ove naredbe prelazi
se na izvođenje naredbe naredbe6.
Index
|