Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor: Steven Vickers
Tłumaczył: mgr Jerzy Wałaszek

©2021 mgr Jerzy Wałaszek
I LO w Tarnowie

ROZDZIAŁ 6 – Zmienne

Rozkazy: LET, CLEAR
Proste zmienne numeryczne

SPIS TREŚCI
ROZDZIAŁ 1 Przygotowanie ZX81
ROZDZIAŁ 2 Wydawanie komputerowi poleceń
ROZDZIAŁ 3 Lekcja historii
ROZDZIAŁ 4 Sinclair ZX81 jako kalkulator kieszonkowy
ROZDZIAŁ 5 Funkcje
ROZDZIAŁ 6 Zmienne
ROZDZIAŁ 7 Łańcuchy tekstowe
ROZDZIAŁ 8 Programowanie komputera
ROZDZIAŁ 9 Dalsze programowanie komputera
ROZDZIAŁ 10 Jeśli ...
ROZDZIAŁ 11 Zestaw znaków
ROZDZIAŁ 12 Pętle
ROZDZIAŁ 13 Wolno i Szybko
ROZDZIAŁ 14 Podprogramy
ROZDZIAŁ 15 Uruchamianie programów
ROZDZIAŁ 16 Pamięć taśmowa
ROZDZIAŁ 17 Wyświetlanie z bajerami
ROZDZIAŁ 18 Grafika
ROZDZIAŁ 19 Czas i ruch
ROZDZIAŁ 20 Drukarka dla ZX81
ROZDZIAŁ 21 Podłańcuchy
ROZDZIAŁ 22 Tablice
ROZDZIAŁ 23 Gdy zaczyna brakować pamięci
ROZDZIAŁ 24 Liczenie na palcach
ROZDZIAŁ 25 Jak pracuje komputer
ROZDZIAŁ 26 Stosowanie kodu maszynowego
ROZDZIAŁ 27 Organizacja pamięci
ROZDZIAŁ 28 Zmienne systemowe
DODATKI
A Zestaw znaków
B Numery komunikatów
C ZX81 dla znających język BASIC

ROZDZIAŁ 6 – Zmienne

Powiesz: "Mój kalkulator kieszonkowy może zapamiętać jakąś liczbę i użyć jej później. Czy ZX81 potrafi to samo?"

Tak. W rzeczywistości jest on w stanie zapamiętać dosłownie setki liczb przy pomocy polecenia LET. Załóżmy, iż jaja kosztują 58p (pensów) za tuzin i chcesz to zapamiętać. Wpisz:

LET JAJA=58     (i oczywiście NEWLINE)

Teraz po pierwsze komputer zarezerwował miejsce wewnątrz siebie, gdzie można przechować liczbę, po drugie nadał temu miejscu nazwę "JAJA", abyś mógł się do niego odwołać później. Taka kombinacja miejsca w pamięci i nazwy zwana jest zmienną. Po trzecie w zarezerwowanym miejscu umieścił liczbę 58; mówimy, iż przypisał wartość 58 do zmiennej (o nazwie) JAJA. Zmienna JAJA jest zmienną liczbową, ponieważ jej wartością jest liczba.

Czy chcesz się dowiedzieć, ile kosztują jaja? Wpisz

PRINT JAJA

Jeśli chcesz znać cenę pół tuzina jaj, to wpisz:

PRINT JAJA/2

W zasadzie gdybyś zechciał poznać wartość kwadratu kosinusa ceny jednego jaja, mógłbyś wpisać:

PRINT COS (JAJA/12)**2

"Jak naprawdę łatwo" musisz pomyśleć sobie i będziesz zastanawiał się, co z tym możesz zrobić w dalszej kolejności, gdy wbiegnie twój gospodarz krzycząc "O Boże, jaja właśnie podskoczyły do 61p za tuzin".

Więc nie ma czasu do stracenia. Wpisz

LET JAJA=61

Nie zarezerwuje to żadnego dodatkowego miejsca, lecz zastąpi starą wartość 58 nową 61. Teraz możesz wpisać:

PRINT JAJA

oczekując z wiarą, iż otrzymasz najbardziej aktualną cenę z możliwych.

Teraz wpisz:

PRINT MLEKO

Dostaniesz komunikat 2/0 i wyszukując go w dodatku B zobaczysz, iż mówi on -  "zmienna nie odnaleziona" - komputer nie ma zielonego pojęcia, ile kosztuje mleko, ponieważ mu o tym nie powiedziałeś. Wpisz:

LET MLEKO=18.5

a wszystko będzie w porządku. Wpisz ponownie:

PRINT MLEKO

Zmienna nie musi się nazywać zgodnie z produktami spożywczymi - możesz użyć dowolnych liter i cyfr pod warunkiem, iż pierwsza będzie litera. Możesz również wstawiać spacje w celu zwiększenia czytelności nazwy, lecz nie będą one się do niej zaliczać. Na przykład poniższe nazwy są dozwolone jako nazwy zmiennych:

DWA FUNTY JABLEK ALE NIE TYCH ZLOTYCH PYSZNYCH
RADIO 3
RADIO 33
X
K9P

ale te już nie:

3 MISIE (rozpoczyna się od cyfry)
TALBOT? (? nie jest ani literą, ani cyfrą)
 CZARNE NA BIALYM   (znaki w negatywie są niedozwolone)
FOTHERINGTON-THOMAS (- nie jest ani literą, ani cyfrą)

Teraz wpisz:

CLEAR

a następnie:

PRINT JAJA

Znów dostaniesz komunikat 2 (zmienna nie odnaleziona). Wynikiem CLEAR jest zwolnienie całej pamięci zarezerwowanej dla zmiennych - wtedy każda zmienna jest jakby nigdy nie zdefiniowana. Wyłączenie i włączenie komputera również to robi - lecz wtedy nie pamięta on zupełnie nic z poprzedniej sesji.

Wyrażenia mogą zawierać nazwy zmiennych wszędzie tam, gdzie można umieścić liczbę.

Uwaga: w niektórych wersjach języka BASIC wolno opuścić słowo LET i po prostu wpisać (powiedzmy):

JAJA=58

Na ZX81 jest to niedozwolone. Z drugiej strony trudno byłoby ci to wpisać.

Również w niektórych wersjach sprawdzane są tylko dwa pierwsze znaki nazwy, tak że RADIO 3 i RADIO 33 jest traktowane jak odwołanie do tej samej zmiennej, a w innych wersjach nazwa zmiennej musi się składać z litery i następującej za nią cyfry. Oba te ograniczenia nie dotyczą ZX81.

W jeszcze innych wersjach języka BASIC istnieje reguła, iż jeśli zmienna nie pojawiła się dotychczas po lewej stronie polecenia LET, to ma przypisaną wartość 0. Jak zauważyłeś powyżej przy poleceniu PRINT MLEKO, nie obowiązuje to na ZX81.

Podsumowanie

Zmienne

Polecenia LET, CLEAR

Ćwiczenia

  1. Dlaczego nazwy zmiennych muszą rozpoczynać się od litery?
  1. Jeśli nie znasz operacji podnoszenia do potęgi (** - H z SHIFT), to wykonaj to ćwiczenie.

    Na najbardziej podstawowym poziomie "A**B" oznacza "A pomnożone przez siebie B razy", lecz oczywiście ma to sens tylko dla dodatnich liczb całkowitych. W celu znalezienia definicji pasującej również do innych wartości B rozważmy wzór:

    A ** (B+C) = A**B * A**C

    Nie potrzeba specjalnie przekonywać, iż jest on słuszny dla dodatnich liczb całkowitych B i C, lecz jeśli zdecydujemy, iż chcemy, aby był również słuszny dla liczb niecałkowitych, to zmuszeni jesteśmy przyjąć, że:
A**0 = 1
A**(-B) = 1/A**B
A**(1/B) = pierwiastek B-tego stopnia z A

oraz

A**(B*C) = (A**B)**C

Jeśli żadnego z tych wzorów wcześniej nie widziałeś, nie staraj się ich od razu zapamiętywać, po prostu zapamiętaj, że:

A**-1 = 1/A
A**(1/2) = pierwiastek kwadratowy z A

a być może gdy się z tym oswoisz, to reszta zacznie mieć dla ciebie sens.

Eksperymentuj z tym rozkazując komputerowi wyświetlanie różnych wyrażeń zawierających **, np.:

PRINT 3**(2+0),3**2*3**0

PRINT 4**-1,1/4

  1. Wpisz

    LET
    E=EXP 1

    Teraz E posiada wartość 2.718281828..., równą podstawie logarytmów naturalnych. Dla różnych liczb sprawdź regułę:

    EXP
    liczba = E ** liczba
 
Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2021 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.