Object Pascal/Instrukcje

Z Wikibooks, biblioteki wolnych podręczników.

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.