Object Pascal/Instrukcje

Instrukcje prosteEdytuj

Instrukcja przypisaniaEdytuj

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

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

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

Instrukcja pustaEdytuj

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

Instrukcja wywołania procedury lub funkcjiEdytuj

Instrukcje strukturalneEdytuj

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

Instrukcja złożonaEdytuj

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

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

Instrukcje warunkoweEdytuj

Instrukcja IF ("jeśli")Edytuj

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

SkładniaEdytuj

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

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

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

 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 iteracyjneEdytuj

Instrukcja FOR ("dla")Edytuj

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

SkładniaEdytuj

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

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

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

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

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

 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ążącaEdytuj

SkładniaEdytuj

 with lista_zmiennych do instrukcja;

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

Try exceptEdytuj

SkładniaEdytuj

 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 finallyEdytuj

SkładniaEdytuj

 try
  sekwencja_instrukcji;	{*}
 finally
   sekwencja_instrukcji
 end;

InformacjeEdytuj

  • 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.