Kurs Ździcha #5
Dzisiaj poznasz zmienne i
instrukcje skoków. Najpierw zajmiemy się zmiennymi. Zmienna to
jakaś karteczka, na której jest coś napisane. Pewnie
pamiętasz ze szkoły podstawowej równania z x-em. Właśnie za
x będziemy podstawiać różne wartości. Widać, że
podstawianie takie jest bezsensowne, ale z biegiem czasu
zauważysz, że jest to bardzo przydatne. No więc jazda. Przed
użyciem zmiennej, musimy ją zadeklarować, czyli powiedzieć
kompilatorowi, że chcemy używać zmiennej x. Są dwa rodzaje
zmiennych. Pierwsze to są zmienne tekstowe mogące pomieścić
do 25 znaków a drugie to zmienne liczbowe, które mogą
zawierać wartości z przedziału 0-65535 bez znaku i ułamków.
Oto przykład :p
* Deklaruj zmienną Liczbax
Zmienna %Liczbax
czyść
* Nadaj zmiennej Liczbax wartość 35
%Liczbax=35
Koniec
Najpierw deklarujemy zmienną, a
potem nadajemy jej wartość. Zmienne możemy nazywać dowolnie,
ale nie mogą zawierać spacji i innych podobnych znaków. Każda
zmienna musi mieć pierwszą literę nazwy zarezerwowaną. To
znaczy, że zmienne tekstowe muszą się zaczynać od znaku $ a
zmienne liczbowe od znaku %. Dlaczego ? Bo oglądając taki
program od razu wiemy, jakie wartości przechowuje dana zmienna.
Jeśli chcemy nadać wartość zmiennej, to piszemy jej nazwę (
z znakiem identyfikującym rodzaj zmiennej ) znak = i wartość
jaką chcemy nadać zmiennej. Aby wyświetlić zmienną liczbową
używamy polecenia PISZ8 nazwa_zmiennej_liczbowej a zmienną
tekstową wyświetlamy instrukcją PISZ nazwa_zmiennej_tekstowej.
Teraz kolej na skoki. Aby użyć
instrukcji skoku, to musimy gdzieś postawić etykietę, do której
instrukcja skoczy. Etykieta to jakby drogowskaz, który informuje
instrukcję skoku, że ma tutaj skoczyć. Etykieta zaczyna się
od znaku dwukropka i może zawierać 25 liter swojej nazwy.
Etykieta nie może zawierać znaku spacji i innych głupich znaków.
Oto przykład skoków :
* Skocz do etykiety dalej
Skok :dalej
* Tu jest etykieta Kon i instrukcja kończąca ten program
:kon
Koniec
* etykieta dalej
:dalej
*Skok do instrukcji kon
Skok :kon
Jak widać instrukcja Skok
nazwa_etykiety powoduje skok do danego fragmentu programu. Oto
przebieg działania programu : Skok do etykiety Dalej. W
etykiecie dalej jest rozkaz skoku do etykiety kon. W etykiecie
kon jest instrukcja koniec kończąca program. Widać, że
etykiety i skoki zmieniają przebieg programu. Jednak takie
etykiety i skoki są bezużyteczne. Brakuje instrukcji warunkowej
czyli czegoś takiego, co spowoduje, że jeśli jakaś zmienna
wynosi x to skoczy do etykiety ET1 a jeśli wartość zmiennej
wynosi y to program skoczy do innej etykiety. No więc do dzieła
!!!
Aby porównać zmienną używamy
instrukcji POROWNAJ wartość1, wartość2. Oczywiście
wartość1 i wartość2 to mogą być liczby, zmienne i rejestry
( o nich później ). Jednak czegoś tu brakuje. Jeśli jest
instrukcja porównaj, to powinna być jeszcze jakaś inna, która
skacze do etykiety jeśli dane wartości są równe. Do tego służy
nieco zmodyfikowana instrukcja SKOK. Oto różne warianty
instrukcji skok :
SKOK - bezwarunkowy skok do
etykiety
&SKOK - Jeśli obie wartości są równe, to skocz do danej
etykiety
<>SKOK - Jeśli obie wartości są różne od siebie (np. 2
i 3) to skacz
<SKOK - Jeśli druga wartość jest większa od pierwszej, to
skacz
>SKOK - Jeśli druga wartość jest mniejsza od pierwszej, to
skacz
&<SKOK - Jeśli druga wartość jest większa lub równa
od pierwszej, to skacz
&>SKOK - Jeśli druga wartość jest mniejsza lub równa
od pierwszej, to skacz
Teraz pokażę przykładowy
program z wykorzystaniem tych instrukcji :
Zmienna %Licz
%Licz=2
POROWNAJ %LICZ,2
&Skok :rowna
* Jeśli zmienna ma inna wartość to wykonuj poniższe rozkazy
lub skacz do innej etykiety
Skok :inna
:rowna
PISZ zmienna Licz wynosi 2
%LICZ=2
POROWNAJ %LICZ,3
<>SKOK :rozne
Skok :inna
:rozne
Pisz Zmienna licz nie jest rowna 3
skok :Kon
:inna
Pisz Kto zmieniał wartość zmiennej ?
:Kon
Koniec
Chyba się domyślasz jaki
będzie przebieg programu ? Spróbuj pozmieniać wartość
zmiennej i zobacz co się stanie. Zmieniaj też parametry w
instrukcji POROWNAJ i instrukcje SKOK na inne jej rodzaje. Jeśli
to zrobisz, to będziesz mógł pisać naprawdę zaawansowane
programy, które będą mogły w zależności od różnych
decyzji użytkownika robić inne rzeczy ( np. systemy menu ).
Teraz napiszmy prosty program (menu) wykorzystujący zmienne i
instrukcje skoków, ale przed tym poznamy dokładniej instrukcję
KLAWISZ. Mówiłem, że ta instrukcja wstrzymuje wykonywanie
programu dopóki użytkownik nie naciśnie dowolnego klawisza.
Ale, czasem chcemy wiedzieć, czy użytkownik nacisnął klawisz
Z czy G. Jak to rozpoznać ? Proste instrukcja KLAWISZ zwraca kod
naciśniętego klawisza do rejestru AL. Ale co to są rejestry ?
Rejestry są podobne do zmiennych. Można im nadawać różne
wartości i je porównywać. Jedyna (większa) różnica między
rejestrem a zmienną, to że rejestrów nie deklarujemy !!! Aha i
jeszcze jedno, w trakcie wykonywania programu wartości rejestrów
się zmieniają, nawet jeśli tego nie pisaliśmy. No więc spróbujmy
napisać prosty program z instrukcją KLAWISZ i z systemem menu :
:Poczatek
Czyść
Pisz Menu
Pisz
Pisz 1. Kurczak
Pisz
Pisz 2. Befsztyk
Pisz
Pisz 3. Kromka chleba
Pisz
Klawisz
Porównaj AL,49
&Skok :OpcjaA
Porównaj AL,50
&Skok :OpcjaB
Porównaj AL,51
&Skok :OpcjaC
Czyść
Pisz Nie jesteś głodny ?
Koniec
:OpcjaA
Czyść
Pisz Czy kurczak ci smakuje ?
Klawisz
Skok :Poczatek
:OpcjaB
Czyść
Pisz Czy befsztyk nie jest za twardy ?
Klawisz
Skok :Poczatek
:OpcjaC
Czyść
Pisz Czy najadłeś się kromką chleba ?
Klawisz
Skok :Poczatek
Ten program nadaje się do
restauracji. W zależności od naciśniętego klawisza 1,2,3
program serwuje danie. Jeśli nacisnąłeś inny klawisz, to
program pyta się czy nie jesteś głodny i kończy swoją
pracę. W programie widać, że rejestr wykorzystuje się tak
samo jak zmienną w instrukcji porównaj. Tylko dlaczego zamiast
1 jest 49 ? To są słynne kody ASCII. Czyli 2 to 50, 3 to 51
itd. Instrukcja KLAWISZ do rejestru AL wpisuje kod ASCII
naciśniętego znaku. Jeśli masz tabelę kodów ASCII, to nie będziesz
miał z tym najmniejszych problemów. Proponuję, abyś ten
ostatni program trochę pozmieniał i zastanowił się, co robi
każda linijka kodu. Możesz zmienić tak ten program, że
będzie np. 10 pozycji menu czy 5 różnych artykułów spożywczych
( program sklep ).
Kurs
pochodzi z serwisu :http://www.zdzich.prv.pl
_________________________ 49 _________________________
:: Poprzednia strona :: Wstęp :: Następna strona ::
|