|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor: Steven Vickers |
©2026 mgr Jerzy Wałaszek
|
Rozkazy: GOTO, CONT, INPUT,
NEW, REM, PRINT
STOP w danych INPUT
BREAK
| SPIS TREŚCI |
|
ROZDZIAŁ 1 Przygotowanie
ROZDZIAŁ 2 Wydawanie poleceń ROZDZIAŁ 3 Lekcja historii ROZDZIAŁ 4 Kalkulator ROZDZIAŁ 5 Funkcje ROZDZIAŁ 6 Zmienne ROZDZIAŁ 7 Teksty ROZDZIAŁ 8 Programowanie I ROZDZIAŁ 9 Programowanie II ROZDZIAŁ 10 Jeśli ... ROZDZIAŁ 11 Znaki ROZDZIAŁ 12 Pętle ROZDZIAŁ 13 Wolno i Szybko ROZDZIAŁ 14 Podprogramy ROZDZIAŁ 15 Programy ROZDZIAŁ 16 Pamięć taśmowa ROZDZIAŁ 17 Wyświetlanie ROZDZIAŁ 18 Grafika ROZDZIAŁ 19 Czas i ruch ROZDZIAŁ 20 Drukarka ROZDZIAŁ 21 Podłańcuchy ROZDZIAŁ 22 Tablice ROZDZIAŁ 23 Pamięć ROZDZIAŁ 24 Liczenie ROZDZIAŁ 25 Praca komputera ROZDZIAŁ 26 Kod maszynowy ROZDZIAŁ 27 Organizacja pamięci ROZDZIAŁ 28 Zmienne systemowe A Zestaw znaków B Numery komunikatów C ZX81 dla znających BASIC |
Wpisz:
NEW
Wymaże to każdy stary program i zmienne w ZX81 (podobne działanie ma CLEAR, lecz CLEAR wymazuje tylko zmienne). Teraz dokładnie wpisz poniższy program:
|
10 REM TEN PROGRAM OBLICZA PIERWIASTKI KWADRATOWE 20 INPUT A 30 PRINT A,SQR A 40 GOTO 20 |
(w wierszu 10 sam będziesz musiał wpisać większość spacji).
Teraz uruchom go. Ekran robi się biały i nic się nie dzieje, lecz spójrz na kursor w lewym dolnym rogu ekranu: tak, gdzie można się było spodziewać K , teraz jest L - maszyna przeszła w tryb wprowadzania danych. Stało się to w wyniku polecenia INPUT w wierszu 20. Maszyna czeka na ciebie, aż wpiszesz jakąś liczbę (albo nawet jakieś wyrażenie) i nie pójdzie dalej, dopóki tego nie zrobisz. Gdy dane zostaną dostarczone, będzie to miało taki sam efekt jak:
Zaczekaj chwilę, a co stało się z wierszem 10? Wygląda, jakby komputer go zupełnie zignorował. Właściwie to tak zrobił. REM w wierszu 10 oznacza komentarz, którego jedyną funkcją jest przypominanie ci, do czego służy ten program. Polecenie REM składa się ze słowa kluczowego REM, za którym można wpisać cokolwiek się chce, a komputer i tak to zignoruje.
Dobrze, jesteśmy zatem w trybie odczytu dla wiersza 20. Wpisz jakąś liczbę,
powiedzmy 4 i wciśnij następnie NEWLINE. Na ekranie pojawi się liczba 4 oraz jej pierwiastek kwadratowy i mogłeś pomyśleć, że to już wszystko. Ale nie - wydaje się, że komputer chce następną liczbę. Spowodowane to jest wierszem 40 z
poleceniem
Po kilku następnych liczbach możesz się zastanawiać, czy maszynie
kiedykolwiek się znudzi taka zabawa; nie znudzi się. Gdy ponownie zapyta o liczbę, wpisz zamiast niej STOP (A z SHIFT);
zrozumie aluzję. Komputer zgłosi komunikat
Nagle przypomniałeś sobie jednak, że potrzebujesz obliczyć pierwiastki kilku innych liczb? Zatem wpisz:
CONT
(skrót dla CONTINUE - KONTYNUUJ) a komputer wyczyści ekran i poprosi cię o kolejną liczbę.
Dla operacji CONT komputer zapamiętuje numer wiersza w ostatnim
komunikacie, który ci wyświetlił i który posiadał kod różny od 0 - i do zapamiętanego wiersza wykonywany jest skok. Ponieważ ostatnim komunikatem było
Teraz wpisuj liczby aż ekran się cały zapełni. Gdy to się stanie, komputer zatrzyma wykonywanie programu z komunikatem 5/30. Kod 5 oznacza "pełny ekran" a 30 jest numerem wiersza polecenia PRINT starającego się wykonać, gdy odkryło, iż brak dla niego miejsca na ekranie. Znów:
CONT
wyczyści ekran i program będzie kontynuowany - tym razem CONT oznacza GOTO 30.
Zauważ, iż ekran jest wymazywany nie z powodu tego, że jest to polecenie CONT, lecz ponieważ jest ono rozkazem. Wszystkie rozkazy (z wyjątkiem COPY, który pojawia się w rozdziale 20) czyszczą najpierw ekran.
Gdy się znudzisz, zatrzymaj program wykorzystując STOP i przywołaj listing naciskając NEWLINE.
Spójrz na polecenie PRINT w wierszu 30. Przy każdym wydruku para liczb
Jednakże polecenie PRINT może kończyć się przecinkiem lub średnikiem, a wtedy następne polecenie PRINT będzie wykonywało wydruk tak, jakby te dwa polecenia były jednym długim poleceniem.
Dla przykładu z przecinkami zastąp wiersz 30 przez:
i uruchom program, aby zobaczyć, jak kolejne polecenia PRINT mogą tworzyć wydruk w tym samym wierszu, lecz rozdzielony na dwie kolumny.
Z drugiej strony średniki:
upchają wszystko razem.
Wypróbuj również:
Teraz wpisz poniższe dodatkowe wiersze:
|
100 REM TEN PROGRAM MIERZY LANCUCHY TEKSTOWE 110 INPUT A$ 120 PRINT A$,LEN A$ 130 GOTO 110 |
Jest to oddzielny program w stosunku do poprzedniego, lecz możesz je mieć w komputerze oba naraz w tym samym czasie. Aby uruchomić ten nowy, wpisz:
Ten program wczytuje łańcuch tekstowy zamiast liczby, wyświetla go oraz jego długość. Wpisz:
Ponieważ komputer oczekuje łańcucha, wyświetla dwa cudzysłowy - w celu
przypomnienia ci o tym, co również zaoszczędza ci nieco wpisywania. Lecz nie
musisz się ograniczać do stałych łańcuchowych (łańcuchów z otwierającym i zamykającym cudzysłowem, które obejmują znaki wewnątrz stałej);
komputer wyliczy dowolne wyrażenie łańcuchowe, również takie, które zawiera
zmienne łańcuchowe. W takim przypadku musisz wymazać cudzysłowy, które
wyświetlił komputer. Wypróbuj tego. Wymaż je (klawisz
a następnie RUBOUT dwa razy) i wpisz:
A$
Ponieważ A$ wciąż zawiera wartość "KOT", to odpowiedzią znów będzie KOT 3.
Teraz wprowadź ponownie
A$
lecz tym razem nie usuwaj cudzysłowów. Zmienna A$ ma wartość "A$", a odpowiedź brzmi 2.
Jeśli zechcesz zastosować STOP przy wprowadzaniu łańcuchów, to najpierw musisz przesunąć kursor w tył na początek wiersza za pomocą
.
Teraz popatrz wstecz na
Następną różnicą jest to, iż RUN nie musi posiadać numeru wiersza - wtedy program startuje od pierwszego wiersza. GOTO zawsze musi towarzyszyć numer wiersza.
Oba te programy zatrzymały się, ponieważ wpisałeś STOP w wierszu INPUT, lecz czasami - pomyłkowo - piszesz program, którego nie możesz w ten sposób zatrzymać, a on sam z siebie nie zatrzymuje się. Wpisz:
| 200 GOTO 200 RUN 200 |
Wygląda to tak, jakby miało się wykonywać wiecznie, chyba że wyciągniesz wtyczkę zasilania; lecz istnieje mniej drastyczne lekarstwo. Naciśnij klawisz SPACE, który ma u góry napis "BREAK" (PRZERWA). Program się zatrzyma z komunikatem D/200.
Na końcu każdego wiersza programu komputer sprawdza, czy nie jest wciśnięty ten klawisz, a jeśli jest, to zatrzymuje wykonanie. Klawisz BREAK może być również wykorzystywany w trakcie pracy z magnetofonem lub z drukarką.
Dotychczas zapoznałeś się z poleceniami PRINT, LET, INPUT, RUN, LIST, GOTO, CONT, CLEAR, NEW i REM, a większość z nich można użyć albo jako rozkazów, albo jako wierszy programu - obowiązuje to prawie dla wszystkich poleceń w języku BASIC. Jedynym rzeczywistym wyjątkiem jest INPUT, którego nie można użyć w charakterze rozkazu (jeśli spróbujesz, otrzymasz komunikat 8; powodem jest to, iż wewnątrz komputera ten sam obszar jest wykorzystywany na zarówno dla wprowadzanych danych jak i dla rozkazów, co dla rozkazu INPUT wprowadziłoby niezły bałagan). RUN, LIST, CONT, CLEAR i NEW w programach mają raczej zwykle mizerne zastosowanie, co nie oznacza, iż nie można ich tam używać.
Polecenia: GOTO, CONT, INPUT, NEW, REM, PRINT
STOP w danych wejściowych
BREAK
W programie pierwiastka kwadratowego spróbuj zamienić wiersz 40 przez GOTO 5, GOTO 10 lub GOTO 15 - nie powinno to powodować zauważalnej różnicy w uruchomionym programie. Jeśli numer wiersza w poleceniu GOTO odwołuje się do nieistniejącego wiersza, to skok zostanie wykonany do pierwszego wiersza za tym numerem. To samo dotyczy RUN; w rzeczywistości samo RUN znaczy właściwie RUN 0.
Uruchom program obliczający długość łańcucha tekstowego, a gdy zapyta o dane wejściowe, wpisz:
Oczywiście X$ jest niezdefiniowaną zmienną i otrzymasz komunikat 2/110.
Jeśli teraz wpiszesz:
(co samo z siebie da komunikat 0/0) a następnie wpiszesz:
CONT
odkryjesz, iż możesz bez problemu użyć X$ jako danych wejściowych. Ignoruje ono komunikat 0/0. ponieważ zawierał kod 0, a bierze numer wiersza z poprzedniego komunikatu 2/110. To naprawdę jest użyteczne. Jeśli program zatrzyma się z powodu jakiegoś błędu, to możesz wykonać wiele różnych rzeczy, aby błąd usunąć, a następnie zastosować CONT do kontynuowania pracy programu.
Wypróbuj ten program:
|
10 INPUT A$ 20 PRINT A$;" = ";VAL A$ 30 GOTO 10 |
(zobacz na ćwiczenie 1 z rozdziału 7)
Wstaw dodatkowe polecenia PRINT, aby komputer zapowiadał, co ma zamiar zrobić, i aby prosił o łańcuch tekstowy z nadzwyczajną uprzejmością.
Napisz program wczytujący ceny i wypisujący od nich podatek VAT (przy stawce 22%). Znów wstaw polecenia PRINT, aby komputer wypisywał, co ma zamiar zrobić. Zmodyfikuj program, tak aby ś mógł również wprowadzać stawkę podatku VAT (np. dla zerowego podatku lub przyszłych budżetów).
Napisz program wyliczający bieżącą sumę wprowadzanych liczb (sugestia: utwórz dwie zmienne: TOTAL - ustawioną na 0 na początku programu - oraz ITEM. Wprowadzaj ITEM i dodawaj ją do TOTAL, drukuj obie i powtarzaj).
Automatyczne listingi (te nie będące wynikiem polecenia LIST) mogą z powodzeniem wprawić cię w zakłopotanie. Jeśli wpiszesz program z 50 wierszami, wszystkie z poleceniami REM,
|
1 REM 2 REM 3 REM : : : : 49 REM 50 REM |
to będziesz mógł sobie poeksperymentować.
Pierwszą rzeczą do zapamiętania jest to, iż bieżący wiersz (z kursorem > ) zawsze pojawi się na ekranie, najczęściej w pobliżu jego środka.
Wpisz:
a następnie jeszcze raz naciśnij NEWLINE. Na ekranie powinieneś otrzymać wiersze od 1 do 22. Teraz wpisz:
a na ekranie pojawią się wiersze od 2 do 23; wpisz:
otrzymasz wiersze od 27 do 48 (w obu przypadkach wprowadzają nowy wiersz przesunąłeś kursor programu tak, iż stało się konieczne utworzenie nowego listingu).
Czy nie wydaje ci się to nieco samowolne? W rzeczywistości komputer stara się dać ci dokładnie to, czego chcesz, chociaż trudno mu zawsze poprawnie zgadnąć, skoro ludzie są istotami nieprzewidywalnymi matematycznie.
Komputer zapamiętuje nie tylko bieżący wiersz mający się pojawić na ekranie, lecz również górny wiersz na ekranie. Przy tworzeniu listingu najpierw porównuje górny wiersz z bieżącym.
Jeśli górny wiersz występuje po bieżącym, to nie ma sensu rozpoczynać od niego listingu, zatem użyje bieżącego wiersza jako nowego górnego i od niego rozpocznie listing.
W przeciwnym razie próbuje zrobić listing rozpoczynający się od górnego wiersza. Jeśli bieżący wiersz trafi na ekran, to wszystko jest w porządku; jeśli bieżący wiersz jest tuż pod spodem ekranu, to przesuwa górny wiersz w dół na następny wiersz programu i próbuje jeszcze raz; a jeśli bieżący wiersz jest daleko od spodu ekranu, to zmienia górny wiersz na wiersz bezpośrednio poprzedzający wiersz bieżący.
Poeksperymentuj przesuwanie bieżącego wiersza wpisując:
numer wiersza REM
LIST przesuwa wiersz z kursorem, lecz nie górny wiersz, zatem kolejne listingi mogą być różne. Na przykład wpisz:
LIST
aby otrzymać listing z polecenia LIST i następnie wciśnij ponownie NEWLINE, aby wiersz 0 stał się górnym wierszem. Powinieneś otrzymać na ekranie wiersze od 1 do 22. Wpisz:
co da ci wiersze od 22 do 43; gdy znów naciśniesz NEWLINE, powrócisz do wierszy od 1 do 22. Wydaje się, iż ten mechanizm jest bardziej użyteczny dla krótkich niż dla długich programów.
Co robiłyby polecenia CONT, CLEAR i NEW w programie? Czy możesz sobie wymyślić jakiekolwiek dla nich zastosowanie?
![]() |
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.