|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Tłumaczenie: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
GOSUB, RETURN
| SPIS TREŚCI |
|
Czasem różne fragmenty programu będą wykonywały dosyć podobne zadania i stwierdzisz, że musisz wpisywać takie same wiersze dwa lub więcej razy; jednakże nie ma takiej potrzeby. Możesz wpisać takie wiersze jeden raz w postaci tzw. podprogramu, a następnie wykorzystywać je w dowolnym miejscu programu bez konieczności ich ponownego wprowadzenia.
Aby to wykonać, używa się poleceń GO SUB (idź do podprogramu) i RETURN (wróć z podprogramu).
Przyjmują one postać
gdzie n jest
numerem pierwszego wiersza w podprogramie. To działa podobnie do
pobiera adres powrotu ze szczytu stosu
Jako przykład, spójrzmy jeszcze raz na program odgadujący liczby. Przepisz go jak niżej:
| 10 REM "zmieniona gra w odgadywanie" 20 INPUT a: CLS 30 INPUT "Zgadnij liczbe ",b 40 IF a=b THEN PRINT "Dobrze":STOP 50 IF a<b THEN GO SUB 100 60 IF a>b THEN GO SUB 100 70 GO TO 30 100 PRINT "Sprobuj jeszcze raz" 110 RETURN |
Polecenie GO TO w wierszu 70 jest bardzo ważne, ponieważ bez niego
program wszedłby w podprogram i spowodował błąd
(7 RETURN without
Oto następny, raczej głupi program ilustrujący użycie
| 100 LET x=10 110 GO SUB 500 120 PRINT s 130 LET x=x+4 140 GO SUB 500 150 PRINT s 160 LET x=x+2 170 GO SUB 500 180 PRINT s 190 STOP 500 LET s=0 510 FOR y=1 TO x 520 LET s=s+y 530 NEXT y 540 RETURN |
Gdy uruchomisz ten program, sprawdź, czy wiesz co się w nim dzieje. Podprogram rozpoczyna się w wierszu nr 500.
Podprogram może spokojnie wywołać inny lub nawet samego siebie (podprogram wywołujący sam siebie nazywa się rekursyjnym), więc nie obawiaj się posiadania kilku poziomów.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.