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 |
©2023 mgr Jerzy Wałaszek |
Wyrażenia matematyczne używające +, -, *, /
notacja naukowa i nazwy zmiennych
SPIS TREŚCI |
|
Operacje: +, -, *, /
Wyrażenia, notacja naukowa, nazwy zmiennych
Już zapoznałeś się z kilkoma sposobami przeprowadzania obliczeń na komputerze ZX Spectrum. Potrafi on wykonywać cztery operacje arytmetyczne +, -, * i / (pamiętaj, że * używa się do mnożenia, a / używa się do dzielenia) oraz że potrafi on znaleźć wartość zmiennej, mając jej nazwę.
Poniższy przykład:
LET podatek=suma*15/100 |
to pokazuje bardzo ważny fakt, iż obliczenia te można ze sobą łączyć. Takie połączenie, jak suma*15/100, jest nazywane wyrażeniem: zatem wyrażenie jest jedynie skrótem, który każe komputerowi wykonać kilka obliczeń, jedno po drugim. W naszym przykładzie wyrażenie suma*15/100 oznacza: 'poszukaj wartości zmiennej o nazwie "suma", pomnóż ją przez 15 i podziel przez 100'.
Jeśli jeszcze tego nie zrobiłeś, to zalecamy ci przejrzenie broszury wprowadzającej, aby zobaczyć, jak ZX Spectrum posługuje się liczbami oraz jaka jest kolejność obliczania wyrażeń matematycznych.
Dla przypomnienia:
Najpierw wykonywane są mnożenia i dzielenia. Posiadają one wyższy priorytet niż dodawanie i odejmowanie. W stosunku do siebie mnożenie i dzielenie mają ten sam priorytet, co oznacza, że mnożenia i dzielenia są wykonywane w kierunku z lewa na prawo. Gdy już zostaną wykonane, nadchodzi kolej na dodawania i odejmowania - te również mają taki sam priorytet względem siebie, zatem są wykonywane z lewa na prawo.
Chociaż właściwie musisz jedynie wiedzieć, która z operacji posiada wyższy lub niższy priorytet od drugiej, to komputer wykonuje je, przydzielając im liczbę od 1 do 16, która reprezentuje priorytet każdej operacji: * i / mają priorytet 8, a + i - mają priorytet 6.
Ta kolejność obliczeń jest bezwzględnie stała, lecz możesz ją obejść, stosując nawiasy: cokolwiek w nawiasach zostaje obliczone najpierw, a później jest traktowane jak pojedyncza liczba.
Wyrażenia są użyteczne, ponieważ zawsze, gdy komputer oczekuje od ciebie liczby, możesz zamiast niej podać mu wyrażenie, a on wyliczy odpowiedź. Wyjątki od tej reguły są tak nieliczne, że zajmiemy się nimi osobno w każdym przypadku.
W pojedynczym wyrażeniu możesz dodawać do siebie dowolną liczbę łańcuchów (zmiennych tekstowych), a jeśli chcesz, to nawet wolno ci używać nawiasów.
Powinniśmy bezwzględnie powiedzieć ci, czego możesz, a czego nie możesz używać jako nazw zmiennych. Jak już powiedziano wcześniej, nazwa zmiennej łańcuchowej musi być pojedynczą literą z następującym za nią znakiem $; a nazwa zmiennej sterującej pętli FOR - NEXT również musi być pojedynczą literą; lecz nazwy zwykłych zmiennych liczbowych są bardziej swobodne. Można w nich używać dowolnych liter i cyfr, o ile pierwszy znak nazwy jest literą. W nazwach możesz wstawiać spacje, aby zwiększyć ich czytelność, lecz nie będą one wliczane jako elementy nazwy. Również nie ma znaczenia, czy w nazwach stosujesz duże, czy małe litery.
Oto kilka przykładów dozwolonych nazw zmiennych:
x t42 ta nazwa jest tak dluga ze nigdy nie bede w stanie wpisac jej ponownie bez popelnienia bledu teraz mamy siedem (te dwie nazwy są traktowane tak samo i odnoszą się do tej samej zmiennej) tERAZmaMYsIEdeM |
Te nazwy nie są dozwolone dla zmiennych:
2001 3 niedzwiedzie M*A*S*H Fotherington-Thomas |
(rozpoczyna
się od cyfry) (rozpoczyna się od cyfry) (* nie jest ani literą, ani cyfrą) (- nie jest ani literą, ani cyfrą) |
Wyrażenia liczbowe mogą być przedstawiane przez liczbę oraz wykładnik: ponownie odsyłamy do broszury wprowadzającej. Aby się przekonać, wypróbuj poniższe rozkazy:
PRINT 2.34e0 PRINT 2.34e1 PRINT 2.34e2 |
i tak dalej do
PRINT 2.34e15 |
Zobaczysz, że po chwili komputer również zacznie używać notacji naukowej. Dzieje się tak dlatego, iż do zapisu liczby nie może być użytych więcej niż czternaście znaków. Podobnie wypróbuj:
PRINT 2.34e-1 PRINT 2.34e-2 |
i tak dalej.
PRINT daje tylko osiem znaczących cyfr liczby. Spróbuj:
PRINT 42949667295, 42949667295-429e7 |
Dowodzi to, że komputer może przechować cyfry 42949667295, nawet jeśli nie jest gotowy wyświetlić je wszystkie naraz.
ZX Spectrum stosuje arytmetykę zmiennoprzecinkową, co oznacza, że przechowuje osobno cyfry liczby (jej mantysę) oraz pozycję przecinka (wykładnik). Nie zawsze jest to dokładne, nawet dla liczb całkowitych. Wpisz:
PRINT 1e10+1-1e10,1e10-1e10+1 |
Liczby są przechowywane z dokładnością około dziewięciu i pół cyfry, zatem 1e10 jest za duże, aby było dokładnie przechowane. Niedokładność (w zasadzie około 2) jest większa od 1, zatem liczby 1e10 i 1e10+1 wyglądają dla komputera tak samo.
Dla jeszcze dziwniejszego przykładu wpisz:
PRINT 5e9+1-5e9 |
Tutaj niedokładność w 5e9 jest tylko około 1, a 1 dodana do liczby w rzeczywistości zostaje zaokrąglona w górę do 2. Liczby 5e9+1 i 5e9+2 wyglądają dla komputera na równe.
Największa liczba całkowita, którą można w całości przechować dokładnie jest o 1 mniejsza od 232 (lub 4294967295).
Łańcuch "" nie zawierający żadnych znaków jest nazywany pustym lub zerowym łańcuchem. Pamiętaj, że spacje są znaczące i i pusty łańcuch to ni to samo co łańcuch jedynie ze spacjami.
Spróbuj:
PRINT "Czy juz przeczytales "W pustyni i w puszczy"?" |
Gdy naciśniesz ENTER, otrzymasz mrugający znak zapytania, który pokazuje, że gdzieś wewnątrz wiersza jest błąd. Gdy komputer napotka znak cudzysłowu na początku "W pustyni i w puszczy", to dojdzie on do wniosku, że jest to znacznik końca łańcucha "Czy juz przeczytales ", a dalej nie będzie on w stanie odgadnąć, co oznacza napis 'W pustyni i w puszczy'.
Istnieje specjalna metoda rozwiązania tego problemu: gdy chcesz umieścić znak cudzysłowu wewnątrz łańcucha, musisz wpisać go dwukrotnie, jak poniżej:
PRINT "Czy juz przeczytales ""W pustyni i w puszczy""?" |
Jak widzisz z tego, co zostało wydrukowane na ekranie, każdy podwójny znak cudzysłowu na wydruku pojawia się tylko jeden raz; jedynie musisz wpisać go dwa razy, aby został rozpoznany jako znak cudzysłowu, a nie jako koniec łańcucha tekstowego.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2023 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.