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:

  1. Naredba GOSUB labela - prelazi se na naredbu labela
  2. Izvođenje potprograma pod imenom labela
  3. Posednja naredba potprograma RETURN
  4. 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