
Instrukcja
warunkowa

Instrukcję
tą stosuje się
wtedy, kiedy
chcemy wykonać
jakąś operację
jeśli zostaje
spełniony jakiś
warunek. Język
Turbo Pascal
daje nam do
dyspozycji dwa
rodzaje
instrukcji
warunkowych:
Instrukcja
IF
Składnia
jej jest następująca:
IF
warunek THEN
instrukcja1;
lub
IF
warunek THEN
Instrukcja1 ELSE
Instrukcja2;
Przy
pierwszym
zapisie komenda
znajdująca się
po słowie THEN
zostanie
wykonana tylko
wtedy, gdy
"warunek"
jest spełniony,
np.
X:=10;
Y:=5;
IF X>Y THEN Writeln('X jest większy od Y');
IF X<Y THEN Writeln('Y jest większy od X');
IF X=Y THEN Writeln('X jest równe Y');
Powyższy
program wyświetla
jeden z napisów
znajdujących się
po słowie THEN,
w tym wypadku
napis pierwszy,
czyli "X
jest większy od
Y".
W
drugim zapisie,
"instrukcja1"
zostanie
wykonana tylko
wtedy, gdy
"warunek"
jest spełniony,
w przeciwnym
wypadku zostanie
wykonana
"instrukcja2".
Instrukcja1 nie
może być zakończona
średnikiem,
np.:
X:=5;
Y:=10;
IF X>Y THEN Writeln('X jest większe od Y')
ELSE Writeln('Y jest większe niż X');
Jeśli
chcemy wykonać
więcej niż
jedną instrukcję
w przypadku gdy
zostanie spełniony
warunek lub nie,
to możemy
zastosować
instrukcję
strukturalną używając
BEGIN i END. Gdy
używamy
instrukcji
strukturalnej i
słowa
kluczowego ELSE,
należy pamiętać,
że zamknięcie
tej instrukcji,
czyli END
stawiamy bez średnika.
np.:
X:=5;
Y:=10;
IF X>5 THEN
BEGIN
Writeln('X jest większe od Y');
...
END ELSE
BEGIN
Writeln('Y jest większe od X');
...
END;
Przy
pisaniu warunków
można używać
następujących
operatorów
logicznych:
- AND
-
"i"
- OR
-
"lub"
- NOT
-
"nie"
Kiedy
warunek składa
się z kilku
podwarunków, to
każdy taki
podwarunek musi
znajdować się
w nawiasach np.:
IF (Imie='Jan') AND (Nazwisko="Kowalski') THEN ...
IF (Imie="Jan') OR (Imie='Piotr') THEN ...
Do
określania
warunków służą
następujące
operatory:
- =
"równe"
- <
"mniejsze"
- >
"większe"
- <=
"mniejsze
bądź
równe"
- >=
"większe
bądź
równe"
- <>"różne"
Instrukcja
CASE
Instrukcja
ta posiada następującą
składnię:
CASE wyrażenie OF
wartość1 : Instrukcja1;
wartość2 : Instrukcja2;
...
END;
lub
CASE wyrażenie OF
wartość1 : Intrsukcja1;
wartość2 : Instrukcja2;
...
ELSE Instrukcja3
End;
Działanie
jej jest następujące:
zostanie
obliczone [wyrażenie]
i jeśli jest
ono równe
[wartość1]
zostanie
wykonana
[Instrukcja1],
Jeśli wartość
wyrażenia jest
równe [wartość2],
zostanie
wykonana
[instrukcja2]
itd. Jeśli
wynikiem wyrażenia
nie jest żaden
z podanych poniżej
wartości
zostanie
wykonana
instrukcja
znajdująca się
po opcjonalnym
parametrze ELSE.

Instrukcja
iteracyjna

Instrukcje
iteracyjne służą
do wielokrotnego
wykonania pewnej
grupy lub jednej
instrukcji. W
Turbo Pascal'u są
następujące
instrukcje
iteracyjne:
Instrukcja
FOR
Powoduje
ona wykonanie
jakiejś
operacji określoną
liczbę razy. Ma
ona następującą
składnię:
FOR
licznik:=poczatek
TO koniec DO
Instrukcja;
lub
FOR
licznik:=koniec
DOWNTO poczatek
DO Instrukcja;
Oczywiście
zamiast jednej
instrukcji można
wpisać szereg
poleceń między
BEGIN i END;.
[Licznik]
- jest to
zmienna sterująca
pracą. W
zapisie
pierwszym
nadajemy jej
początkową
wartość [poczatek].
Następnie
[Instrukcja]
jest wykonywana
tyle razy, aż
[licznik] będzie
równy [koniec].
Za każdą
"pętlą"
licznik zostaje
zwiększony o
jeden. Jeśli
mamy zapis drugi
to [licznik] ma
początkową
wartość
[koniec], i
[instrukcja]
jest tak długo
wykonywana, aż
[licznik] będzie
równy [poczatek].
Przy każdej pętli
licznik jest
zmniejszany o
jeden. Przykładowy
program wyświetlający
10 liczb może
wyglądać tak:
VAR i:Integer; {licznik}
BEGIN
For i:=1 to 10 DO Writeln(i); {napisz liczbę i}
END.
Instrukcja
REPEAT
Instrukcja
ta ma następującą
składnię:
REPEAT
Instrukcja;
...
Instrukcja;
UNTIL warunek;
Instrukcję
między słowami
REPEAT i UNTIL są
tak długo
wykonywane, aż
wartość
[warunek]
zostanie spełniony.
W warunku tym można
używać
instrukcji
matematycznych.
W module CRT
znajduje się
funkcja
KEYPRESSED, która
jest typu
BOOLEAN i
przyjmuje wartość
TRUE, jeśli
zostanie wciśnięty
jakiś klawisz
na klawiaturze.
Jeśli mamy więc
program, który
ma działać tak
długo, aż
zostanie wciśnięty
dowolny klawisz
na klawiaturze
napiszemy:
USES CRT;
BEGIN
Writeln('Coś tam');
REPEAT UNTIL KeyPressed;
END.
Instrukcja
WHILE
Posiada
ona następującą
składnię:
WHILE
wyrażenie DO
instrukcja;
[Instrukcja]
jest tak długo
wykonywana, aż
wartość wyrażenia
jest prawdziwa.
Ten sam program
co powyżej, z użyciem
tej instrukcji
wyglądałby
tak:
USES CRT;
BEGIN
Writeln('Coś tam');
WHILE NOT KeyPressed DO ;
END.
Jeśli
klawisz nie
został wciśnięty,
to funkcja
KEYPRESSED
zwraca wartość
FALSE. Powyższy
program wyświetla
napis i czeka, aż
zostanie wciśnięty
klawisz.
Instrukcja WHILE
jest spełniona,
gdy KeyPressed
ma wartość
FALSE i jeśli
jest spełniona
to wykonuje
instrukcję
znajdującą się
po słowie DO,
czyli
";".
Średnik oznacza
instrukcję pustą,
więc nie
zostaje wykonane
żadne
polecenie. Kiedy
wciśniemy jakiś
klawisz, funkcja
KeyPressed zwróci
wartość TRUE,
wartość wyrażenia
NOT KeyPressed
jest FALSE, więc
zostaje zakończone
wykonywanie tej
instrukcji i wyłączenie
programu.

Instrukcja wiążąca

Instrukcja
wiążąca ma
następującą
składnię:
WITH
nazwa DO
instrukcja;
Zamiast
[instrukcji] można
wstawić również
blok instrukcji.
Pozwala ona na
odwoływanie się
do pól rekordu
lub obiektu bez
konieczności
stosowania
kwantyfikatora,
np.:
Mamy
następujący
typ:
TYPE Dane = RECORD
Imie : String;
Nazwisko : String;
Wiek : Byte;
END;
VAR osoba : Dane;
Odwołujemy
się do poszczególnych
pól rekordu w
następujący
sposób:
WITH osoba DO
BEGIN
Imie:='Jan';
Nazwisko:='Kowalski';
Wiek:=13;
END;

Instrukcja kodu

Posiada
następującą
składnię:
INLINE
(lista_elementów);
Wszystkie
elementy[listy_elemtow]
oddzielone są
od siebie ukośnikami
i mogą być:
- stałymi
określającymi
wartości
liczbowe
- identyfikatorami
zmiennych
- identyfikatorami
zmiennych
ze
stałą
poprzedzoną
+
lub
-
- operatorami
rozmiaru
kody
<i>
Przykładowe
użycie tej
procedury:
INLINE($EA/$F0/$FF/$00/$F0);
{spowoduje
zresetowanie się
komputera}

Instrukcja
asemblerowa

Składnia
jej jest następująca:
ASM
Instrukcja;
...
Instrukcja;
END;
|