Piątek 04 Kwiecień 2025r. Godz 00:00:00      
Postów: 251      

Turbo Pascal - Instrukcje

      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;