Object Pascal/Instrukcje
Instrukcje proste
edytujInstrukcja przypisania
edytujInstrukcja powoduje zastąpienie dotychczasowej wartości podanej zmiennej wartością otrzymaną w wyniku wartościowania wyrażenia. Po lewej stronie operatora przypisania znajduje się zmienna, do której zostanie nałożona wartość wyrażenia zapisanego po prawej stronie. Wyrażeniem tym może być inna zmienna lub stała. Nie wolno używać po lewej stronie przypisania wartości stałej lub wyrażenia. Przy instrukcji przypisania obowiązuje: Zgodność typów w sensie przypisania.
Przykłady
edytuja:=2; b:=a*(b+12); cecylia:=true; p:='Pascal'; d:=a=b.
Instrukcja skoku (goto)
edytujInstrukcja powoduję zmianę naturalnego i sekwencyjnego porządku wykonywania instrukcji. Kolejną wykonywaną instrukcją będzie instrukcja poprzedzoną etykietą użytą w instrukcji skoku. Każda etykieta musi być zadeklarowana!
Przykład
edytujlabel et1; begin {fragment programu} goto et1; {fragment programu} et1: writeln ('etykieta'); {fragment programu} end.
Instrukcja pusta
edytujInstrukcja nie powoduje wykonania żadnych czynności, nie zawiera żadnych znaków, potrzebna z przyczyn formalnych.
Instrukcja wywołania procedury lub funkcji
edytujInstrukcje strukturalne
edytujInstrukcje strukturalne łączą jedną lub więcej instrukcji, tzw. wewnętrznych wg pewnego schematu strukturalizacji.
Instrukcja złożona
edytujInstrukcja polega na sekwencyjnym wykonaniu instrukcji wewnętrznych zawartych w tej instrukcji.
begin instrukcja1; instrukcja2; {...} instrukcja n; end.
Instrukcje warunkowe
edytujInstrukcja IF ("jeśli")
edytujInstrukcja if w języku Object Pascal służy do zapisania rozgałęzienia obliczeń.
Składnia
edytujSkładnia instrukcji wygląda następująco:
if wyrażenie then instrukcja;
albo
if wyrażenie then instrukcja1 else instrukcja2;
gdzie:
wartością wyrażenia jest jedna z dwóch wartości logicznych TRUE lub FALSE:
- Jeżeli TRUE to wykonywana jest instrukcja występująca po then.
- Jeżeli FALSE to wykonywana jest instrukcja po else.
Instrukcja, instrukcja1 lub instrukcja2 mogą być kolejnymi instrukcjami if (tzn. mogą być zagnieżdżone).
Instrukcja, instrukcja1 lub instrukcja2 mogą być grupą instrukcji wewnętrznych, należy wtedy zastosować poniższą postać:
if wyrażenie then begin {zestaw instrukcji} end {<- przed else nie stawiamy średnika} else begin {zestaw instrukcji} end;
Przykład
edytujif a<>0 then b:=b/a; if a>0 then b:=b+1 else b:=b+a;
Instrukcja CASE (wyboru)
edytujInstrukcja case w języku Object Pascal służy do zapisania rozgałęzienia obliczeń.
Składnia
edytujSkładnia instrukcji wygląda następująco:
case selektor of sekwencja_instrukcji_wyboru end.
albo
case selektor of sekwencja_instrukcji_wyboru else instrukcja end.
gdzie:
- selektor - dowolne wyrażenie typu porządkowego (od tego wyrażenia zależy wybór dalszej operacji w instrukcji.
- sekwencja_instrukcji_wyboru - lista instrukcji, których każda poprzedzona jest stałą.
- else - stanowi w tej instrukcji zabezpieczenie na wypadek, gdyby wartość selektora nie odpowiadała żadnej instrukcji z sekwencji_instrukcji_wyboru.
Dowolna instrukcja lub instrukcje z sekwencji_instrukcji_wyboru mogą być grupą instrukcji wewnętrznych, należy wtedy zastosować poniższą postać:
case selektor of wartość1: begin {zestaw_instrukcji}; end; wartość2: instrukcja2; {dalsza część instrukcji case} end;
Wykonanie instrukcji polega na:
- wyznaczeniu wartości selektora.
- wykonaniu instrukcji wewnętrznej, która jest poprzedzona stałą równą obliczonej wartości selektora, jeżeli nie ma takiej stałej to wykonywana jest instrukcja po else lub instrukcja pusta.
Przykład
edytujcase x*y of 0: writeln('x*y=0'); -25..-1,1..25: writeln('|x*y|<25'); //stałe wyboru nie mogą się powtarzać else writeln ('x*y poza przedziałem'); end.
Instrukcje iteracyjne
edytujInstrukcja FOR ("dla")
edytujInstrukcja for w języku Object Pascal służy do wielokrotnego wykonywania czynności w niej zapisanych.
Składnia
edytujSkładnia instrukcji wygląda następująco:
for z:=w1 to w2 do begin ciąg instrukcji do wykonania w każdym przebiegu pętli end
albo
for z:=w1 downto w2 do begin ciąg instrukcji do wykonania w każdym przebiegu pętli end
gdzie:
- z to zmienna typu porządkowego;
- w1,w2 to wyrażenia typu porządkowego
informacje:
- minimum wykonań instrukcji w pętli to 0 razy
- maksimum wykonań instrukcji w pętli jest ustalona w momencie rozpoczęcia pętli.
Przykład
edytujprocedure Wypisz(); var tablica : array[0..9] of integer; i : integer; begin for i:=0 to 9 do tablica[i] := i; for i:=9 downto 0 do ShowMessage(IntToStr(tablica[i])); end;
Procedura najpierw wypełnia liczbami od 0 do 9 kolejne pola tablicy, a następnie odczytuje je w odwrotnej kolejności i wyświetla po kolei w formie komunikatów.
Instrukcja WHILE (dopóki)
edytujInstrukcja while w języku (Object) Pascal służy do wielokrotnego wykonywania grupy instrukcji w niej zapisanych.
Składnia
edytujSkładnia instrukcji wygląda następująco:
while wyrażenie do instrukcja;
Wartością wyrażenia jest wartość logiczna TRUE lub FALSE.
Instrukcji używamy wtedy, gdy w wyniku iteracji chcemy doprowadzić do tego aby warunek w wyrażeniu był fałszywy.
Jeżeli po słowie do ma wystąpić grupa instrukcji należy użyć konstrukcji:
while wyrażenie do begin {grupa instrukcji} end;
Przykład
edytujvar x,i: integer; begin x:= 0; i:= 1; while i<= 5 do begin x:= x+i; i:= i+1; end; writeln ('x= ',x); readln; end.
Instrukcja REPEAT (powtarzaj)
edytujInstrukcja repeat w języku Object Pascal służy do wielokrotnego wykonywania grupy instrukcji w niej zapisanych.
Składnia
edytujSkładnia instrukcji wygląda następująco:
repeat ciąg_instrukcji until wyrażenie
Wartością wyrażenia jest wartość logiczna TRUE lub FALSE.
Instrukcji używamy wtedy, gdy w wyniku iteracji chcemy doprowadzić do tego aby warunek w wyrażeniu był prawdziwy. Minimum wykonań iteracji to 1 raz.
Przykład
edytujvar x,i: integer; begin x:= 0; i:= 1; repeat x:= x+i; readln (i); until i>8; writeln ('x= ',x); readln; end.
Instrukcja wiążąca
edytujSkładnia
edytujwith lista_zmiennych do instrukcja;
obsługi warunków i stanów wyjątkowych
edytujTry except
edytujSkładnia
edytujtry sekwencja-instrukcji; {*} except [on identyfikator-warunku do] instrukcja [else sekwencja-instrukcji] end;
Informacje:
edytuj- jeśli podczas wykonywania ciągu instrukcji {*} nie zostanie wywołany żaden warunek, to ciąg instrukcji po słowie except jest ignorowany i program przechodzi do wykonania następnej instrukcji po słowie end,
- jeśli w ciągu {*} wystąpi wywołanie warunku (błąd, stan wyjątkowy, instrukcja raise), to zostanie on obsłużony przez odpowiedni blok po słowie except, ponowne naciśnięcie run spowoduje wykonanie dalszej części programu,
- instrukcje try ... except mogą być zagnieżdżone.
Try finally
edytujSkładnia
edytujtry sekwencja_instrukcji; {*} finally sekwencja_instrukcji end;
Informacje
edytuj- instrukcje po słowie finally zostaną wykonane zawsze,
- jeśli w ciągu testowanym {*} zostanie wygenerowany warunek lub stan wyjątkowy, to pozostałe instrukcje są ignorowane i następuje natychmiastowe przejście do wykonania instrukcji po słowie finally.