|
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
|
Rozkaz: RAND
Funkcje: ABS, SGN, SIN, COS, TAN, ASN,
ACS, ATN, LN, EXP, SQR, INT, PI,
RND, FUNCTION
| 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 |
Matematycznie funkcja jest regułą dającą w wyniku liczbę (wynik) w zamian za inną liczbę (argument lub operand) i tak jest w rzeczywistości operacją jednoargumentową. ZX81 posiada wbudowane niektóre z funkcji matematycznych, a ich nazwy znajdują się pod klawiszami. Na przykład SQR jest znaną funkcją pierwiastka kwadratowego (ang. SQuare Root), a:
daje wynik 3, czyli pierwiastek kwadratowy z 9 (aby wprowadzić funkcję SQR, najpierw naciskasz na klawisz FUNCTION – NEWLINE z SHIFT. Kursor zmienia się na F . Teraz naciśnij klawisz SQR – H; na ekranie pojawi się SQR, a kursor zmieni się z powrotem na L . Ta sama procedura działa dla wszystkich słów o nazwach umieszczonych pod klawiszami, z których prawie wszystkie są nazwami funkcji).
Wpisz:
Dokładność wyniku możesz przetestować następująco:
co powinno dać 2. Zwróć uwagę, iż obie funkcje SQR zostały wyliczone przed *, a w rzeczywistości wszystkie funkcje (z wyjątkiem jednej - NOT) są obliczane przed pięcioma operacjami +, -, *, / oraz **. Regułę tę możesz ponownie obejść stosując nawiasy:
daje 2.
Oto niektóre funkcje (w dodatku C umieszczona jest kompletna lista). Jeśli twoja znajomość matematyki nie pozwala ci ich zrozumieć, nie ma to znaczenia - wciąż będziesz mógł używać tego komputera.
| SGN | Funkcja znaku (zwana czasami signum w celu odróżnienia od SIN). Wynikiem jest -1, 0 lub +1 w zależności od tego, czy argument jest ujemny, zerowy lub dodatni. |
| ABS | Wartość bezwzględna, inaczej moduł. Wynikiem jest argument
przekształcony na liczbę dodatnią, zatem |
| SIN | sinus* |
| COS | cosinus* |
| TAN | tangens* |
| ASN | arcus sinus* |
| ACS | arcus cosinus* |
| ATN | arcus tangens* |
| LN | logarytm naturalny (o podstawie 2.71828..., zwanej inaczej e) |
| EXP | funkcja wykładnicza |
| SQR | pierwiastek kwadratowy |
| INT | część całkowita. Zawsze jest zaokrąglana w dół, więc |
| PI | π = 3.1415265358979..., obwód w łokciach okręgu o średnicy jednego łokcia. PI nie posiada argumentu (komputer pamięta tylko 10 cyfr tej liczby, a wyświetla jedynie 8). |
| RND | Również RND nie ma argumentu. Zwraca przypadkową liczbę w zakresie od 0 (może tyle wynieść) do 1 (tyle nigdy nie wynosi). |
Używając żargonu z ostatniego rozdziału, wszystkie funkcje z wyjątkiem PI i RND są jednoargumentowymi operacjami o priorytecie 11 (PI i RND są bezargumentowymi operacjami, ponieważ nie posiadają żadnych argumentów).
Funkcje trygonometryczne, EXP, LN i SQR są zwykle wyliczane z dokładnością do 8 cyfr znaczących.
RND i RAND: znajdują się na tym samym klawiszu, jednakże RND jest funkcją, a RAND jest słowem kluczowym, podobnie jak PRINT. RAND wykorzystuje się do sterowania przypadkowością funkcji RND.
Funkcja RND nie jest naprawdę przypadkowa, lecz kolejno przechodzi przez ciąg 65536 liczb tak pomieszanych, iż wyglądają jak przypadkowe (RND jest funkcją pseudoprzypadkową). Możesz wykorzystać RAND do ustawienia RND na określonej pozycji tego ciągu wpisują RAND, a następnie liczbę w zakresie od 1 do 65535 i NEWLINE. Znajomość położenia w ciągu, od którego rozpoczyna RND, nie jest tak ważna jak to, iż ta sama liczba za RAND spowoduje, iż RND będzie startować zawsze z tego samego miejsca. Na przykład wpisz:
a następnie
i powtórz te dwa polecenia kilka razy (pamiętaj o użyciu FUNCTION, aby otrzymać RND). Wynik RND zawsze wyniesie
(0 możesz pominąć) działa nieco inaczej: określa startowe położenie dla RND na podstawie czasu pracy telewizora, a to powinno już być rzeczywiście przypadkowe.
Uwaga: W niektórych dialektach języka BASIC argumenty funkcji należy umieszczać wewnątrz nawiasów. W języku ZX81 BASIC zasada ta nie obowiązuje. |
Polecenie: RAND
Funkcje: SGN. ABS, SIN, COS, TAN, ASN, ACS, ATN, LN, EXP, SQR, INT, PI, RND
FUNCTION
Aby otrzymać logarytm dziesiętny (o podstawie 10), który możesz znaleźć w tablicach logarytmicznych, podziel logarytm naturalny przez LN 10. Na przykład aby znaleźć log 2, wpisz:
co da ci wynik 0.30103.
Spróbuj wykonać mnożenie i dzielenie za pomocą logarytmów wykorzystując ZX81 jako zestaw tablic logarytmicznych. Sprawdź wynik używając * oraz /, które są łatwiejsze, szybsze i bardziej dokładne, a z tego powodu preferowane.
EXP i LN są funkcjami wzajemnie odwrotnymi w takim sensie, iż jeśli zastosujesz jedną z nich, a następnie drugą, to powrócisz do pierwotnej liczby. Na przykład:
Ta sama zasada dotyczy SIN i ASN, COS i ACS, oraz TAN i ATN. Możesz wykorzystać to do przetestowania dokładności wyznaczania wartości tych funkcji przez komputer.
π radianów odpowiada 180°, więc zamiana ze stopni na radiany polega na podzieleniu przez 180 i pomnożeniu przez π, zatem
daje tangens 45° (1).
Aby z radianów przejść na stopnie, dzielisz przez π i mnożysz przez 180.
Wpisz kilka razy
aby zobaczyć, jak zmieniają się wyniki. Czy możesz wyczuć jakąś regularność? (Mało prawdopodobne)
Jak użyć RND oraz INT do otrzymania przypadkowej liczby całkowitej pomiędzy 1 a 6, która przedstawiałaby wynik rzutu kostką?
Sprawdź tę regułę:
Załóżmy, iż wybierasz dowolną liczbę pomiędzy 1 a 872 i wpisujesz:
Wtedy następną wartością RND będzie
(Tylko dla matematyków)
Niech p będzie (dużą) liczbą pierwszą i niech a będzie pierwiastkiem pierwotnym modulo p.
Wtedy, jeśli bi jest resztą z ai modulo p
65537 jest liczbą pierwszą Mersenne'a,
ZX81 używa
RAND n (przy
INT zawsze zaokrągla w dół. Aby zaokrąglić do najbliższej wartości całkowitej, dodaj najpierw 0.5. Na przykład:
| INT (2.9+0.5) = 3 | INT (2.4+0.5) = 2 |
| INT (-2.9+0.5) = -3 | INT (-2.4+0.5) = -2 |
Porównaj wyniki z wynikami bez dodania 0.5.
Wpisz
![]() |
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.