Rozdział 7


WYRAŻENIA

 

Podsumowanie

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.

 

 


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2018 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe