Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Tłumaczenie: mgr Jerzy Wałaszek

©2021 mgr Jerzy Wałaszek
I LO w Tarnowie

Rozdział 5

Podprogramy

GOSUB, RETURN

SPIS TREŚCI

Rozdział 5: Podprogramy

Podsumowanie

GO SUB, RETURN


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.

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2021 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: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.