|
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: PLOT, UNPLOT
| 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 |
Oto niektóre z najbardziej eleganckich cech ZX81; używają one tzw. pikseli
(elementów obrazu). Na ekranie można wyświetlić 22 wiersze po 32 kolumny,
co daje

Piksel jest określany przez dwie liczby, jego współrzędne. Pierwsza, współrzędna x, określa jak daleko znajduje się on w poziomie od skrajnej, lewej kolumny, a druga, współrzędna y, mówi jak daleko jest on od spodu. Współrzędne te są zwykle zapisywane jako para w nawiasach, zatem (0,0), (63,0), (0,43) i (63,43) określają narożniki lewy dolny, prawy dolny, lewy górny i prawy górny.
Polecenie
zaczernia piksel na tych współrzędnych, natomiast polecenie
wybiela go.
Wypróbuj ten krościaty program:
|
10 PLOT INT (RND*64),INT (RND*44) 20 INPUT A$ 30 GOTO 10 |
Rysuje on przypadkowy piksel przy każdym naciśnięciu NEWLINE.
Oto nieco bardziej użyteczny program. Rysuje on wykres funkcji SIN (falę sinusoidalną) dla wartości pomiędzy 0 a 2π.
|
10 FOR N=0 TO 63 20 PLOT N, 22+20*SIN (N/32*PI) 30 NEXT N |
Następny program rysuje wykres SQR (część paraboli) pomiędzy 0 i 4:
|
10 FOR N=0 TO 63 20 PLOT N,20*SQR (N/16) 30 NEXT N |
Zwróć uwagę, iż współrzędne pikseli są raczej inne od numerów wierszy i kolumn w elemencie AT. Na końcu tego rozdziału jest plansza, która może być pomocna przy wyliczaniu współrzędnych pikseli oraz wierszy i kolumn.
Piksele i ich współrzędne
Polecenia: PLOT i UNPLOT
Są trzy różnice pomiędzy liczbami w elemencie AT a współrzędnymi pikseli; jakie?
Załóżmy, iż pozycja wydruku PRINT odpowiada
Zrób dziurkacz do sera przez zmianę programu krościatego, tak aby najpierw wypełnił ekran na czarno (czarny kwadrat jest spacją w negatywie - otrzymujesz ją w trybie graficznym G ), a następnie rysuje białe przypadkowe punkty; jeśli masz tylko 1K pamięci - czyli tzw. standardową maszynę bez rozszerzenia pamięci - to zabraknie ci jej przy wykonywaniu tego programu, zatem będziesz musiał go nieco przerobić, aby wykorzystywał tylko część ekranu.
Zmodyfikuj program tworzący wykres SIN, tak aby przed rysowaniem wykresu narysował poziomą linię dla
Napisz programy rysujące wykresy innych funkcji, np. COS, EXP, LN, ATN, INT itd. Dla każdego z nich musisz upewnić się, iż wykres zmieści się na ekranie, zatem będziesz musiał wziąć pod uwagę:
(i) dla jakiego zakresu argumentów chcesz rysować wykres funkcji (dla wykresu SIN odpowiada to zakresowi od 0 do 2π).
(ii) w którym miejscu ekranu należy umieścić
(iii) jak skalować oś y wykresu (odpowiada to 20 w wierszu 20 dla programu wykresu SIN).
Odkryjesz, że najprostszy jest COS - taki jak SIN.
|
10 PLOT 15,21 20 PRINT "GRUBY CUDZYSLOW" 30 PLOT 46,21 |
Polecenie PLOT przesuwa pozycję wydruku PRINT (UNPLOT również).
Ten podprogram rysuje prostą linie (względnie)
Użyj go jako część jakiegoś programu głównego, który dostarczy wartości dla A, B, C i D.
(jeśli nie posiadasz rozszerzenia pamięci, to będziesz musiał pominąć polecenia REM).
|
1000 LET U=C-A 1005 REM U POKAZUJE, ILE KROKOW WZDLUZ NALEZY POJSC 1010 LET V=D-B 1015 REM V POKAZUJE ILE KROKOW W GORE 1020 LET D1X=SGN U 1030 LET D1Y=SGN V 1035 REM (D1X,D1Y) JEST POJEDYNCZYM KROKIEM W KIERUNKU PRZEKATNYM 1040 LET D2X=SGN U 1050 LET D2Y=0 1055 REM (D2X,D2Y) JEST POJEDYNCZYM KROKIEM W LEWO LUB W PRAWO 1060 LET M=ABS U 1070 LET N=ABS V 1080 IF M>N THEN GOTO 1130 1090 LET D2X=0 1100 LET D2Y=SGN V 1105 REM TERAZ (D2X,D2Y) JEST POJEDYNCZYM KROKIEM W GORE LUB W DOL 1110 LET M=ABS V 1120 LET N=ABS U 1130 REM M JEST WIEKSZA Z ABS U I ABS V, N JEST MNIEJSZA 1140 LET S=INT (M/2) 1145 REM CHCEMY PRZEJSC Z (A,B) DO (C,D) W M KROKACH, 1146 REM UZYWAJAC N KROKOW D2 W GORE-DOL LUB PRAWO-LEWO, 1147 REM A M-N KROKOW PRZEKATNYCH, ROWNO ROZPROSZONYCH 1150 FOR I=0 TO M 1160 PLOT A,B 1170 LET S=S+N 1180 IF S<M THEN GOTO 1230 1190 LET S=S-M 1200 LET A=A+D1X 1210 LET B=B+D1Y 1215 REM KROK PRZEKATNY 1220 GOTO 1250 1230 LET A=A+D2X 1240 LET B=B+D2Y 1245 REM KROK W GORE-DOL LUB W PRAWO-LEWO 1250 NEXT I 1260 RETURN |
Ostatnia część (wiersze od 1150)
miesza równomiernie M-N kroków D1 z N krokami D2. Wyobraź sobie
planszę do gry w Eurobiznes posiadającą M pól rozmieszczonych wokół
krawędzi, ponumerowanych od 0 do M-1. Twoje bieżące pole posiada numer S i
rozpoczyna się od narożnika leżącego naprzeciw pola GO. Każdy ruch przesuwa
cię o N pól wokół planszy, a w linii prostej na ekranie wykonujesz albo ruch
prawo-lewo/góra-dół (jeśli mijasz pole GO na planszy),
albo krok po przekątnej w przeciwnym razie. Ponieważ twoja całkowita podróż
na planszy składa się z

Zmień program, tak aby w przypadku jeszcze jednego parametru, np.

![]() |
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.