HOME BASIC
GOSUB

L'istruzione gosub e' simile a quella goto, ma con una importante differenza.

Con l'istruzione goto il programma salta su una riga diversa da quella numericamente successiva. Dopo il salto il programma prosegue regolarmente secondo la sequenza numerica delle righe.

Anche con l'istruzione gosub il programma salta su una riga diversa da quella numericamente successiva. Il salto serve per var eseguire un gruppo di righe chiamate subroutine (da cui gosub cioe' vai alla subroutine). La subroutine termina con l'istruzione return, per indicare che e' terminata e il programma deve tornare indietro, cioe' alla riga succesiva al gosub da cui e' partito.

confronto goto gosub

Come col goto anche in questo caso bisogna impostare un'etichetta. Si utilizza la seguente scrittura

nome etichetta:

Vediamo che questa volta manca il cancelletto dopo i due punti. Quindi nel punto in cui impostare il salto basta scrivere

gosub nome etichetta

Vediamo un esempio: vengono richiesti tre numeri e successivamente viene chiesto se sommarli o moltiplicarli.
Notiamo subito le due subroutine indicate dalle etichette somma (riga 10) e moltiplicazione (riga 13). Queste subroutine terminano con i rispettivi return rispettivamente alla riga 12 e alla riga 15.

prgramma con gosub

- righe 1, 2, 3 - con l'istruzione input vengono memorizzati i tre nuemeri nelle variabili x, y, z
- riga 4 - viene lasciata una riga vuota con l'istruzione print vuota
- riga 5 - avviene la scelta, memorizzata nella variabile k, tra somma (s) e moltiplicazione (m) con l'istruzione input
- riga 6 - se (if) la scelta e' s, avviene il salto (gosub) alla subroutine somma (riga 10); in caso contrario la riga viene ignorata
- riga 7 - se (if) la scelta e' m, avviene il salto (gosub) alla subroutine moltiplicazione (riga 13); in caso contrario la riga viene ignorata
- riga 8 - viene lasciata una riga vuota con l'istruzione print vuota
- riga 9 - il risultato memorizzato nella variabile r, calcolato in una delle due subroutine in base alla scelta, viene visualizzato
- riga 10 - inizio subroutine somma
- riga 11 - calcolo della somma e memorizzazione del risultato nella variabile r
- riga 12 - l'istruzione return termina la subroutine somma e provoca il ritorno del programma alla riga 7 (che verra' ignorata perche' se e' stata eseguita questa subroutine, significa che la scelta e' stata s)
- riga 13 - inizio subroutine moltiplicazione
- riga 14 - calcolo del prodotto e memorizzazione del risultato nella variabile r
- riga 15 - l'istruzione return termina la subroutine moltiplicazione e provoca il ritorno del programma alla riga 8

Il programma termina alla riga 9. Le altre righe sono subroutine, che vengono eseguite solo se richiamate col gosub.

esempio gosub con somma esempio gosub con prodotto




sicurezza elettrica ing. Vito Barone


HOME BASIC