:: Redakcyjne :: Klasyka & Emulacja :: Komputery & Internet :: Inne :: W sieci :: MS on-line ::



Komputery & Internet



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



     

Prenumerata

Adres e-mail:





Kontakt

redaktor naczelny
macland@topnet.pl

z-ca red. nacz.
bosss@box43.gnet.pl


Zalecana konfiguracja

- Windows
- IE 4.0 +
- 800 x 600
- High Color (16 bit)
















































































































































































































Copyright(C)'2001 Memories Service
Wszystkie prawa zastrzeżone!