|
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
|
Kilka bardziej skomplikowanych zastosowań tych rozkazów z użyciem separatorów: , ; ' TAB, AT, LINE i CLS
| SPIS TREŚCI |
|
CLS
Elementy
polecenia
PRINT: puste polecenie
Wyrażenia
(typu liczbowego lub łańcuchowego): TAB
wyrażenie liczbowe, AT wyrażenie liczbowe, wyrażenie liczbowe
Separatory polecenia
PRINT: , ; '
Elementy polecenia INPUT: zmienne (typu
liczbowego lub łańcuchowego)
LINE zmienna łańcuchowa
Dowolny
element polecenia
PRINT nie rozpoczynający się literą.
(Tokeny nie uważa się za rozpoczynające się od litery, ponieważ są całością o jednym kodzie.)
Przewijanie ekranu.
SCREEN$
Polecenie PRINT widziałeś już dosyć często, zatem posiadasz pewne pojęcie, jak się je używa. Wyrażenia, których wartości się drukuje, nazywają się elementami PRINT i rozdziela się je przecinkami lub średnikami, które nazywamy separatorami PRINT. Elementu PRINT może wcale nie być, co pozwala wyjaśnić zachowanie się tego polecenia, gdy użyjesz w wierszu dwa przecinki.
Istnieją dwa dodatkowe rodzaje elementów PRINT, których używa się, aby
powiedzieć komputerowi nie co, lecz gdzie ma drukować. Na przykład,
przesuwa pozycję PRINT (miejsce, gdzie zostanie wydrukowany kolejny element) do podanego wiersza i kolumny. Wiersze są numerowane od 0 (u góry ekranu) do 21, a kolumny od 0 (po lewej) do 31.
SCREEN$ jest funkcją odwrotną do
odczyta gwiazdkę wydrukowaną przez poprzednie polecenie.
Znaki wzięte z tokenów zostaną rozpoznane jako pojedyncze litery, a puste miejsca jako spacje. Niestety, linie rysowane przez PLOT, DRAW lub CIRCLE, grafika definiowana przez użytkownika i znaki graficzne dają w wyniku pusty łańcuch. Tak samo będzie, gdy zostanie zastosowana funkcja OVER do otrzymania znaku złożonego. Powodem takiego zachowania się SCREEN$ jest to, iż porównuje ona zawartość pola znaku na ekranie z matrycami kształtów znaków w ROM. Jeśli wystąpi niezgodność na poziomie choćby jednego piksela, znak nie zostanie rozpoznany – aż takie mądre to nie jest, to tylko prosta namiastka optycznego rozpoznawania znaków.
drukuje wystarczającą liczbę spacji, aby przesunąć pozycję druku do określonej kolumny. Pozostaje w tym samym wierszu lub , jeśli wymagałoby to cofania się, przechodzi do następnego wiersza. Zwróć uwagę, że komputer redukuje
numer kolumny 'modulo 32' (dzieli przez 32 i bierze resztę z dzielenia); zatem
Poniższy przykład:
pokazuje, w jaki sposób mógłbyś wydrukować nagłówek strony ze spisem treści jakiejś książki.
Spróbuj uruchomić to:
| 10 FOR n=0 TO 20 20 PRINT TAB 8*n;n; 30 NEXT n |
Pokazuje to, co oznacza, że liczby TAB są redukowane modulo 32.
Aby otrzymać bardziej elegancki przykład, zmień 8 w wierszu 20 na 6.
Kilka małych uwag:
(i) Te nowe elementy najlepiej kończyć średnikami, jak robiliśmy to powyżej. Możesz używać przecinków (a na końcu polecenia nawet niczego), lecz będzie to oznaczało, że po troskliwym ustawieniu pozycji PRINT natychmiast przenosisz ją gdzieś indziej – zwykle niezbyt użyteczne.
(ii) Nie możesz drukować w dwóch dolnych wierszach (22 i 23) ekranu, ponieważ są one zarezerwowane na rozkazy, dane dla INPUT, raporty itd. 'Dolny wiersz' zwykle oznacza wiersz 21.
(iii) Możesz stosować AT, aby umieścić pozycję PRINT nawet tam, gdzie już coś zostało wydrukowane; poprzednia treść zostanie usunięta w niebyt, gdy zaczniesz więcej drukować.
Kolejnym poleceniem związanym z PRINT jest CLS. Czyści ono cały ekran, czyli wykonuje coś, co również robią polecenia CLEAR i RUN.
Gdy wydruk osiąga spód ekranu, ekran zaczyna się przewijać w górę jak w maszynie do pisania. Zobaczysz to, jeśli wykonasz:
a następnie kilka razy:
Jeśli komputer wypisuje na ekran mnóstwo tekstu, to troszczy się, aby nic nie zostało przewinięte poza górny margines ekranu, zanim zdążysz się temu przyjrzeć. Zobaczysz ten efekt, jeśli wpiszesz:
Gdy zostanie zapisany ekran tekstu, program zatrzyma wydruk i wypisze scroll? (przewinąć?) na spodzie ekranu. Teraz możesz wygodnie przeglądnąć pierwsze 22 liczby. Gdy z nimi skończysz, naciśnij y (dla 'yes' – tak), a komputer da ci kolejny ekran pełen liczb. Właściwie kontynuację powoduje każdy klawisz z wyjątkiem n (dla 'no' – nie), STOP (SYMBOL SHIFT i A) lub SPACE (klawisz BREAK). Powodują one zatrzymanie wykonywania programu z komunikatem D BREAK - CONT repeats (D PRZERWANIE - CONT powtarza).
Polecenie INPUT może robić o wiele więcej, niż powiedzieliśmy ci dotychczas. Widziałeś już polecenia INPUT w stylu:
w których komputer wypisuje napis Ile masz lat? na spodzie ekranu, a następnie musisz wpisać swój wiek.
W rzeczywistości polecenie INPUT zbudowane jest z elementów i separatorów dokładnie w taki sam sposób jak polecenie PRINT, zatem zarówno Ile masz lat? jak i wiek są elementami INPUT. Elementy te są zwykle takie same jak elementy PRINT, lecz istnieje kilka bardzo ważnych różnic.
Po pierwsze, oczywistym dodatkowym elementem INPUT jest zmienna, której wartość masz wpisać – w powyższym przykładzie wiek. Regułą jest, że jeśli element INPUT rozpoczyna się od litery, to musi być zmienną, której wartość ma być wprowadzona.
Po drugie, to oznaczałoby, że nie możesz wydrukować wartości zmiennych jako części napisu; jednakże możesz to obejść przez umieszczenie zmiennej w nawiasach. Każde wyrażenie rozpoczynające się od litery musi być umieszczone w nawiasach, jeśli ma zostać wydrukowane jako część napisu.
Dowolnego rodzaju element PRINT, na którego nie wpływają te reguły, jest również elementem INPUT. Oto przykład ilustrujący nasze wywody:
Zmienna moj wiek jest umieszczone w nawiasach, zatem jej zawartość zostanie wydrukowana. Zmienna twoj wiek nie jest umieszczona w nawiasach, zatem będziesz musiał wpisać jej wartość.
Wszystko wypisywane przez polecenie INPUT trafia do dolnej części ekranu, która działa jakby niezależnie od górnej części. W szczególności wiersze są numerowane względem górnego wiersza dolnej części, nawet gdy została ona powiększona w górę ekranu telewizyjnego (co się zdarza, jeśli wpisujesz mnóstwo danych dla polecenia INPUT).
Aby zobaczyć, jak AT działa w poleceniach INPUT, spróbuj uruchomić to:
(za każdym razem, gdy się zatrzyma, po prostu naciskaj ENTER.) Gdy jest drukowane To jest wiersz 2., dolna część ekranu rozbudowuje się w górę, aby zrobić na nie miejsce; lecz numeracja też idzie w górę, aby wiersze zachowały te same numery.
Teraz spróbuj tego:
| 10 For n=0 TO 19: PRINT AT n,0;n;: NEXT n 20 INPUT AT 0,0;a$; AT 1,0;a$; AT 2,0;a$; AT 3,0;a$; AT 4,0;a$;AT 5,0;a$ |
Gdy dolna część rośnie w górę ekranu, górnej to nie przeszkadza aż do momentu, gdy część dolna grozi nadpisaniem tego samego wiersza, w którym znajduje się pozycja PRINT. Wtedy górna część ekranu również zaczyna się przewijać w górę, aby temu zapobiec.
Kolejna subtelność polecenia INPUT, której jeszcze nie widzieliśmy, nazywa się LINE i pozwala wprowadzać w inny sposób dane dla zmiennych łańcuchowych. Jeśli przed nazwą zmiennej łańcuchowej umieścisz LINE, jak w:
to komputer nie wyświetli znaków cudzysłowu, które zwykle pojawiają się przy zmiennej łańcuchowej, chociaż będzie on udawał, że tam są. Zatem, gdy wpiszesz:
jako dane dla INPUT, zmienna a$ otrzyma wartość kot. Ponieważ cudzysłowy łańcucha nie pojawiają się przy wprowadzaniu danych, nie możesz ich wykasować i wpisać innego rodzaju wyrażenia łańcuchowego jako danych dla INPUT. Pamiętaj, że element LINE nie może być stosowany przy zmiennych liczbowych.
Znaki sterujące
ma dokładnie takie samo działanie jak:
Dzieje się tak, nawet gdy
Znakiem sterującym TAB jest
ma takie samo działanie jak:
Aby zakazać komputerowi pytania się o przewijanie ekranu napisem scroll?, możesz używać za każdym razem polecenia POKE
Po jego wykonaniu ekran będzie przewijany przez 255 wierszy, zanim ponownie zatrzyma się z napisem scroll?. Jako przykład, wypróbuj:
| 10 FOR n=0 TO 10000 20 PRINT n: POKE 23692,255 30 NEXT n |
i patrz, jak wszystko śwista z ekranu!
Jeśli są one spostrzegawcze, to mogą odkryć, że wcale nie muszą same
robić tych obliczeń. Na przykład, gdy komputer prosi je o wpisanie
odpowiedzi na 2*3, wystarczy, że wpiszą
To ich oszuka. Jednakże po kilku dniach jeden z nich może odkryć, że wciąż jest w stanie obejść rachunki przez wymazanie cudzysłowów łańcucha
i wpisanie
![]() |
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.