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 |
©2024 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ć
GO SUB n
gdzie n jest numerem pierwszego wiersza w podprogramie. To działa podobnie do GO TO n, tylko że komputer zapamiętuje, gdzie w programie znajdowało się polecenie GO SUB, aby móc później powrócić po wykonaniu podprogramu. Numer wiersza oraz numer rozkazu wewnątrz wiersza (razem tworzą tzw. adres powrotu) komputer umieszcza na szczycie stosu zbudowanego z takich adresów (stos GO SUB);
RETURN
pobiera adres powrotu ze szczytu stosu GO SUB i idzie do polecenia, które się za nim znajduje.
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 GO SUB - RETURN bez GO SUB) po osiągnięciu rozkazu RETURN.
Oto następny, raczej głupi program ilustrujący użycie GO SUB.
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 ©2024 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.