Object Pascal/Instrukcje

Instrukcje proste

edytuj

Instrukcja przypisania

edytuj

Instrukcja 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

edytuj
 a:=2;
 b:=a*(b+12);
 cecylia:=true;
 p:='Pascal';
 d:=a=b.

Instrukcja skoku (goto)

edytuj

Instrukcja 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

edytuj
 label
 et1;
 begin
   {fragment programu}
   goto et1;
   {fragment programu}
   et1:
   writeln ('etykieta');
   {fragment programu}
 end.

Instrukcja pusta

edytuj

Instrukcja nie powoduje wykonania żadnych czynności, nie zawiera żadnych znaków, potrzebna z przyczyn formalnych.

Instrukcja wywołania procedury lub funkcji

edytuj

Instrukcje strukturalne

edytuj

Instrukcje strukturalne łączą jedną lub więcej instrukcji, tzw. wewnętrznych wg pewnego schematu strukturalizacji.

Instrukcja złożona

edytuj

Instrukcja polega na sekwencyjnym wykonaniu instrukcji wewnętrznych zawartych w tej instrukcji.

 begin
 instrukcja1;
 instrukcja2;
 {...}
 instrukcja n;
 end.

Instrukcje warunkowe

edytuj

Instrukcja IF ("jeśli")

edytuj

Instrukcja if w języku Object Pascal służy do zapisania rozgałęzienia obliczeń.

Składnia

edytuj

Skł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

edytuj
 if a<>0 then b:=b/a;
   if a>0 then b:=b+1
          else b:=b+a;

Instrukcja CASE (wyboru)

edytuj

Instrukcja case w języku Object Pascal służy do zapisania rozgałęzienia obliczeń.

Składnia

edytuj

Skł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

edytuj
 case 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

edytuj

Instrukcja FOR ("dla")

edytuj

Instrukcja for w języku Object Pascal służy do wielokrotnego wykonywania czynności w niej zapisanych.

Składnia

edytuj

Skł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

edytuj
        procedure 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)

edytuj

Instrukcja while w języku (Object) Pascal służy do wielokrotnego wykonywania grupy instrukcji w niej zapisanych.

Składnia

edytuj

Skł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

edytuj
 var 
 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)

edytuj

Instrukcja repeat w języku Object Pascal służy do wielokrotnego wykonywania grupy instrukcji w niej zapisanych.

Składnia

edytuj

Skł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

edytuj
 var 
 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

edytuj

Składnia

edytuj
 with lista_zmiennych do instrukcja;

obsługi warunków i stanów wyjątkowych

edytuj

Try except

edytuj

Składnia

edytuj
 try
  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

edytuj

Składnia

edytuj
 try
  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.