background image

 

 

Instrukcje 1

Definicje wstępne

Formalny opis akcji wykonywanej przez 

komputer nazywamy instrukcją.

statement

 – instrukcja,

Każda instrukcja kończona jest średnikiem.
Efektem wykonania instrukcji jest 

przekształcenie stanu obliczeń.

Stanem obliczeń nazywamy wartości 

wszystkich zmiennych programu.

Kolejność wykonywania instrukcji w programie 

nazywamy czasami przepływem sterowania 
(

flow of control

).

background image

 

 

Instrukcje 2

W danej chwili komputer steruje (kontroluje) 

wykonaniem jednej instrukcji

Najprostszą sytuację mamy w przypadku 

sekwencyjnego przepływu 
(przekazywania) sterowania.

1.

Ciąg instrukcji

Instrukcja_1;
Instrukcja_2;

.

Instrukcja_N;

sequence_of_statements

 – ciąg instrukcji.

background image

 

 

Instrukcje 3

2.

Instrukcja skoku –

 goto

Każda instrukcja może być poprzedzona 

etykietą, która jest identyfikatorem 
ujętym w podwójne nawiasy kątowe.
<<Etykieta>> Instrukcja;

Umożliwia to wykonanie skoku do takiej 

instrukcji. Realizuje to instrukcja skoku

goto

 Etykieta

Wynikiem skoku jest przekazanie 

sterowania do instrukcji poprzedzonej 
etykietą.

background image

 

 

Instrukcje 4

Nie można przekazać sterowania do wnętrza 

instrukcji warunkowych i pętli lub pomiędzy 
rozgałęzieniami instrukcji warunkowych. Można 
jej użyć do wyjścia z pętli, albo z bloku.

Zalecenie.

 

Nie stosować instrukcji skoku.

Wymaganie dotyczące ćwiczeń 

laboratoryjnych.

 

Nie wolno stosować instrukcji skoku.

3.

Instrukcja pusta

;

background image

 

 

Instrukcje 5

4.

Instrukcja podstawienia (

assignment 

statement

)

Desygnator := Wyrazenie;

Akcje:
• Wyznaczenie wartości desygnatora opisującego 

zmienną

• Wyznaczenie wartości wyrażenia
• Zastąpienie wartości zmiennej opisanej 

desygnatorem przez wartość wyrażenia

Desygnator i wyrażenie muszą być zgodnych 

typów.

Wartość wyrażenia musi spełniać ograniczenia 

nałożone na zmienną.

background image

 

 

Instrukcje 6

Pierwsza reguła sprawdzana jest podczas 

kompilacji.

Druga reguła sprawdzana jest podczas 

wykonywania instrukcji i w przypadku 

naruszenia ograniczeń zgłaszany jest wyjątek 

Constraint_Error

5.

Instrukcja

 declare

 -

 

bloku

 

(

block statement

)

declare

  [Deklaracje;]

begin

  Instrukcje;

end

;

Przykład 1.

 Blok_Nazwy

background image

 

 

Instrukcje 7

Zasięg i widzialność

 

(

scope and visibility

) 

Zasięgiem nazywamy fragment tekstu 

programu, w którym obiekt ma znaczenie.

Obiekt jest widzialny w swoim zasięgu tzn. 

można się do niego odwoływać, chyba że 
zostanie przesłonięty przez nową 
deklarację obiektu o tej samej nazwie.

background image

 

 

Instrukcje 8

6.

Instrukcja warunkowa

if_then_else_statement ::=
  

if

 condition 

then

    sequence_of_statements
  

else

    sequence_of_statements
  

end if

;

condition ::= Boolean_expression
sequence_of_statements ::= 

statement{statement}

condition

 – warunek – wyrażenie typu 

logicznego (Boolean)

background image

 

 

Instrukcje 9

if_then_statement ::=
  

if

 condition 

then

    sequence_of_statements
  

end if

;

 
if_statement ::=
  

if

 condition 

then

    sequence_of_statements
 {

elsif

 condition 

then

    sequence_of_statements}
 [

else

    sequence_of_statements]
  

end if

;

background image

 

 

Instrukcje 10

7.

Instrukcja wyboru

case_statement ::=

case

 expression 

is

  case_statement_alternative
 {case_statement_alternative}

end case

;

 
case_statement_alternative ::=

when

 discrete_choice_list => 

sequence_of_statements

background image

 

 

Instrukcje 11

discrete_choice_list ::= choice{|choice}
choice ::=

component_simple_name |
discrete_range

|

subtype_indication

|

expression

|

others

Przykład 2.

 Funkcja_Signum

background image

 

 

Instrukcje 12

Słowniczek

• case_statement_alternative

 – alternatywa 

instrukcji wyboru

• discrete_choice_list

 – dyskretna lista 

wyboru

• choice

 – wybór

• component_simple_name

 – nazwa składowej

• discrete_range

 – zakres dyskretny

• subtype_indication

 – nazwa podtypu 

(dyskretnego)

background image

 

 

Instrukcje 13

Reguły
• Zbiory określone przez listy wyboru muszą 

być wzajemnie rozłączne 

• Suma tych zbiorów musi być całym 

zbiorem wartości typu selektora 

• Wariant 

others

 musi być umieszczony na 

końcu 

• Wszystkie wyrażenia określające listy 

wyboru muszą być statyczne 

Przykład 3.

 Musztra, Dni_Tygodnia_Case, 

Czytanie_Znakow

background image

 

 

Instrukcje 14

Definicja 1.

 Skalarnym typem danych (

scalar 

data type

) nazywamy typ, w którym wartości 

są uporządkowane i każda jest niepodzielna.

Definicja 2.

 Dyskretnym typem danych 

(

discrete data type

) nazywamy typ skalarny, w 

którym każda wartość (z wyjątkiem pierwszej) 
ma jednoznacznie określony poprzednik i 
każda wartość (z wyjątkiem ostatniej) ma 
jednoznacznie określony następnik.

background image

 

 

Instrukcje 15

Zalecenia

Jeżeli istnieją tylko dwie możliwości to używaj instrukcji 

if

Jeżeli decyzja wyboru nie bazuje na wartości jednego 

wyrażenia dyskretnego, to używaj instrukcji 

if

Jeżeli jest wiele możliwości bazujących na wartości 

jednego wyrażenia dyskretnego, używaj instrukcji 

case

Jeżeli istnieje kilka możliwości bazujących na wartości 

jednego wyrażenia dyskretnego używaj 

case

, albo 

if

 

tak, aby uzyskać bardziej czytelny program

Instrukcję wyboru należy stosować tylko wtedy, gdy 

podzbiory wartości określone listami wyboru ściśle do 
siebie przylegają. Jeżeli tak nie jest, to często lepiej 
stosować instrukcję 

if

Część 

others

 powinna być wykonywana w przypadkach 

szczególnych tzn. takich, które rzadko mogą wystąpić.

background image

 

 

Instrukcje 16

exit when

 Warunek

Ciąg_Instrukcji

FALSE

TRUE

Następna_Instrukcja

end loop

Pętla z testem początkowym

8. Pętle

background image

 

 

Instrukcje 17

exit when

 Warunek

Ciąg_Instrukcji

FALSE

TRUE

Następna_Instrukcja

end loop

Pętla z testem końcowym

background image

 

 

Instrukcje 18

exit when

 Warunek

Ciąg_Instrukcji_1

FALSE

TRUE

Następna_Instrukcja

end loop

Pętla z testem pośrednim

Ciąg_Instrukcji_2

background image

 

 

Instrukcje 19

Pętle z warunkiem początkowym występują tak 

często, że istnieje specjalna instrukcja do 
realizacji takich pętli. Jest to instrukcja, albo 
pętla 

while

while

 Warunek 

loop

...

end loop

;

Przykład 4.

 Odliczanie

Przykład 5. 

Najwiekszy_Wspolny_Dzielnik

background image

 

 

Instrukcje 20

Warto zwrócić uwagę na następujące 

zagadnienia:

1. Wykonanie każdego ciągu instrukcji pętli powinno 

powodować zbliżanie się do spełnienia warunku 
zakończenia pętli. Oznacza to, że na warunek zakończenia 
powinny mieć wpływ powtarzane obliczenia.

2.

Jeżeli warunek reprezentowany wyrażeniem logicznym nie 
jest początkowo spełniony, to instrukcja 

while

 jest pusta.

3.

Dobrym zwyczajem programistycznym jest sformułowanie 
zależności nazywanej niezmiennikiem pętli, która 
pozwala kontrolować stan iteracji.

4.

Należy unikać powtarzania tych samych obliczeń. Oznacza 
to, że wewnątrz pętli nie należy stosować wyrażeń, w 
których żadna ze zmiennych nie zmienia swojej wartości.

Przykład 6.

 Niezmiennik_Petli

background image

 

 

Instrukcje 21

Typy pętli
Pętle sterowane zdarzeniem
 (

event driven 

loops

) – wykonanie pętli odbywa się do 

zaistnienia pewnego zdarzenia wewnątrz 
pętli

Pętle sterowane licznikiem (

counter driven 

loops

) – 

for

 – wykonanie pętli odbywa się 

określoną ilość razy

Przykład 7.

 Odliczanie_For

background image

 

 

Instrukcje 22

Zalecenia

1. Teoretycznie każdą instrukcję 

while

 i 

for

 

można wyrazić jako instrukcję 

loop

 

zawierającą jedną instrukcję 

exit

. W praktyce 

prowadziłoby to do niejasnych programów. 

Należy używać 

while

 i 

for

 tam gdzie jest to 

możliwe, a 

loop

 gdy nie ma innej możliwości.

2. Instrukcja 

loop

 jest wygodna, gdy 

zakończenie procesu iteracyjnego 

powodowane jest przez spełnienie jednego z 

kilku niezależnych warunków.

Przykład 8.

 Zloty_Podzial

background image

 

 

Zadania. Literatura podstawowa

Literatura podstawowa
Morawski, M., i Zajączkowski, A. M. 

(2003). 
Wstęp do programowania w języku 
Ada’95
. Rozdział 4.

Użyteczne materiały dydaktyczne:

 

zskl.zsk.p.lodz.pl/~zajaczko


Document Outline