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 ::
|