Paradygmaty programowania wyk 4

background image

Paradygmaty

Paradygmaty

programowania

programowania

Wykład 4 – Wyrażenia i komendy

background image

Wyrażenia

Wyrażenia

Większość języków programowania ma zaimplementowane

Wyrażenie

– konstrukcja języka programowania, która będzie

przetworzona w celu wyznaczenia jej wartości.

Większość języków programowania ma zaimplementowane
następujące rodzaje wyrażeń:

literały

konstrukcje

wywołanie funkcji

wyrażenia warunkowe

dostęp do stałych i zmiennych

background image

Wyrażenia

Wyrażenia –

– literały i konstrukcje

literały i konstrukcje

Literały

– najprostszy rodzaj wyrażania oznaczający ustaloną,

stałą wartość pewnego typu

1 3.14 ”ala” 1/2 false

Konstrukcje

– wyrażenie tworzące wartość złożoną z jej wartości

składowych.

C++: int lDni[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 31, 30};

ADA: lDni: array (Miesiace) of Integer :=

(feb => 28, apr|jun|sep|nov => 30, others => 31);

Haskell: [31, if przest(rok) then 29 else 28, 31, 30, 31, 30, 31,

31, 30, 31, 30, 31]

background image

Wyrażenia

Wyrażenia –

– wywołanie funkcji

wywołanie funkcji

Wywołanie funkcji

– oblicza wynik poprzez zastosowanie

procedury funkcyjnej (lub metody) do jednego lub wielu
argumentów.

Wywołanie funkcji najczęściej przyjmuje formę:

F(E) lub F(E ,…,E )

F(E) lub F(E

1

,…,E

N

)

W niektórych językach np. Scheme wywołanie funkcji przyjmuje inną formę:

(F E

1

E

2

… E

N

)

W przypadku języków, w których funkcje są wartościami pierwszej klasy
(np. Scheme) F może być wyrażeniem np.

((if (…) sin cos) x))

background image

Wyrażenia

Wyrażenia -- operatory

operatory

Operatory

Operatory mogą być traktowane podobnie jak funkcje.

Zastosowanie jedno lub dwu argumentowego operatora jest
równoznaczne z wywołaniem funkcji z jednym lub dwoma

równoznaczne z wywołaniem funkcji z jednym lub dwoma
argumentami.

W jezykach programowania można spotkać dwie notacje zpisu
operatorów:

• infiksowa – większość języków programowania.
• prefiksowa – Lisp i jego dialekty (np. Scheme)

background image

Wyrażenia warunkowe

– wyrażenia warunkowe obliczają

wartość, która jest zależna od zadanego warunku.

Zawierają w sobie dwa lub więcej podwyrażeń, z których

Wyrażenia

Wyrażenia

Zawierają w sobie dwa lub więcej podwyrażeń, z których
dokładnie jedno wybierane jest do obliczenia warunku.

C++:

int max = x>y ? x : y;

background image

Wyrażenia

Wyrażenia –

– dostęp do stałych i zmiennych

dostęp do stałych i zmiennych

Dostęp do stałej

jest to odniesienie do nazwanej stałej i zwraca

jej wartość.

Dostęp do zmiennej

jest to odniesienie do nazwanej zmiennej

Dostęp do zmiennej

jest to odniesienie do nazwanej zmiennej

i zwraca obecną wartość tej zmiennej.

C++:

const float pi = 3.14;

float r, pole;

pole = pi * r *r;

background image

Wyrażenia z efektem ubocznym

Wyrażenia z efektem ubocznym

W przypadku

wyrażenia z efektem ubocznym

oprócz

wyznaczenia jego wartości, modyfikowane są również
wartości pewnych zmiennych.

enum Token {litera, cyfra, inny};
Token t;
if((getchar(f) >= ‘a’ && getchar(f) <= ‘z’) ||

(getchar(f) >= ‘A’ && getchar(f) <= ‘Z’))

t = litera;

else if(getchar(f) >= ‘0’ && getchar(f) <= ‘9’)

t = cyfra;

else

t = inny;

background image

Wyrażenia blokowe

Wyrażenia blokowe

Wyrażenie blokowe

jest wyrażeniem, które zawiera pewne

lokalne deklaracje i podwyrażenia.
Wiązania stworzone przez deklaracje służą jedynie do
wyznaczenia

wartości

podwyrażeń

i

całego

wyrażenia

blokowego.

blokowego.

float PoleKola(float r)
{

const float pi = 3.14;
return pi * r * r;

}

background image

Komendy

Komendy

Komenda

– jest konstrukcją programu, która będzie wykonana

w celu zmodyfikowania wartości zmiennych.

Komendy są charakterystyczną cechą języków imperatywnych
i ich pochodnych (obiektowych i konkurencyjnych).

i ich pochodnych (obiektowych i konkurencyjnych).

Komendy

Proste

Złożone

Blokowe

Obsługi

wyjątków

background image

Komendy proste

Komendy proste

Wyróżniamy następujące rodzaje

komend prostych

:

komenda pusta

– najprostszy rodzaj komendy, nie mającej żadnego

efektu

przypisanie

najczęściej

przyjmuje

formę

V

=

E

lub

przypisanie

najczęściej

przyjmuje

formę

V

=

E

lub

V

:=

E

, gdzie E jest wyrażeniem zwracającym wartość, a V

dostępem do zmiennej, który zwraca referencje do zmiennej.

wywołanie procedury

– komenda, która osiąga efekt przez

zastosowanie procedury (lub metody) na podanych argumentach.
Wywołanie

procedury

zazwyczaj

ma

formę

P(E

1

,…,E

N

).

background image

Komendy złożone

Komendy złożone –

– komenda sekwencyjna

komenda sekwencyjna

Komenda sekwencyjna

– określa, że dwie lub więcej komend

jest wykonywanych w określonym porządku.

Komendy sekwencyjne najczęściej są zapisywane w formie:

C1; C2

co oznacza, że komenda C

1

jest wykonywana przed komendą C

2

background image

Komendy złożone

Komendy złożone –

– komenda warunkowa

komenda warunkowa

Komenda warunkowa

– zawiera dwie lub więcej komend,

z których wykonywana jest tylko jedna, zgodnie z zadanym warunkiem

Najprostszą formą komendy warunkowej jest komenda if

if(E) C

1

else C

2

C++

Pascal

Często stosuje się skróconą wersję komendy warunkowej:

if(E) C

1

którą przedstawić można również w postaci:

if(E) C1 else ;

C++

Pascal

if(warunek)

komenda1;

else

komenda2;

if warunek then

komenda1;

else

komenda2;

background image

Komendy złożone

Komendy złożone –

– komenda wyboru

komenda wyboru

Komenda wyboru

– jest bardziej ogólną formą komendy warunkowej.

Pozwala na wybranie jednej z wielu komend na podstawie sprawdzenia
wystąpienia wartości prostego i dyskretnego typu.

C++

Pascal

C++

Pascal

switch(E)
{

case v

1

: C

1

break;

case v

2

: C

2

break;


case v

n

: C

n

break;

default: C

0

}

case E of

v

1

: C

1

;

v

2

: C

2

;


v

n

: C

n

;

else

C

0

;

end;

background image

Komenda iteracyjna

– zawiera komendy, które są wykonywane wielokrotnie.

Ze względu na liczbę powtórzeń, komendy iteracyjne można podzielić na:

zdefiniowane – liczba powtórzeń jest ściśle określona z góry:

for

niezdefiniowane – liczba powtórzeń nie jest ściśle określona z góry
np.

while

,

do while

.

Komendy złożone

Komendy złożone –

– komenda iteracyjna

komenda iteracyjna

while

do while

for

while(E) C

if(E)
{

C
while(E) C

}

do C while(E);

C
while(E) C

for(C

1

;E

1

;E

2

)

C

2

;

C

1

while(E

1

) {

C

2

E

2

;

}

background image

Komenda iteracyjna: while

C++

Pascal

while(E)

C;

while E do

C;

Komendy złożone

Komendy złożone –

– komenda iteracyjna

komenda iteracyjna

while(E)
{

C

1

;

C

2

;

}

while E do

begin

C

1

;

C

2

;

end;

background image

Komendy złożone

Komendy złożone –

– komenda iteracyjna

komenda iteracyjna

Komenda iteracyjna: do while

C++

Pascal

do

C;

while(E);

repeat

C;

until E;

while(E);

do
{

C

1

;

C

2

;

}
while(E);

until E;

repeat

C1;
C2;

until E;

background image

Komendy złożone

Komendy złożone –

– komenda iteracyjna

komenda iteracyjna

Komenda iteracyjna: for

C++

Pascal

for(C1; E1; E2)

C2;

for v:=E

1

to E

2

do

C;

for(C1; E1; E2)
{

C2;
C3;

}

for v:=E

1

to E

2

do

begin

C1;
C2;

end;

background image

Komendy złożone

Komendy złożone –

– komenda iteracyjna

komenda iteracyjna

Komenda iteracyjna: for / foreach

W niektórych nowoczesnych językach programowania tj. Java, C# można
odnaleźć dodatkową postać komendy iteracyjnej for pozwalającej na przejście
po wszystkich elementach pewnej kolekcji.

Java

C#

Java

C#

for(T v : E)

C;

for(Date date : dates)

System.out.println(date);

foreach(T v in E)

C;

foreach(Date date in dates)

Console.WriteLine(

date.toString());

background image

Komendy blokowe

Komendy blokowe

Komenda blokowa –

jest rodzajem komendy, która zawiera

lokalne deklarację (lub grupę deklaracji) oraz inne komendy.
Wiązania powstałe w wyniku tych deklaracji służą wyłącznie
do wykonania komend zawartych w komendzie blokowej.

C++

Pascal

for(C1; E1; E2)
{

C2;
C3;

}

for v:=E

1

to E

2

do

begin

C1;
C2;

end;


Wyszukiwarka

Podobne podstrony:
Paradygmaty programowania wyk 1
Paradygmaty programowania wyk 5
Paradygmaty programowania wyk 2
Paradygmaty programowania wyk 3
Paradygmaty programowania wyk 1
Program wyk adow Podstawy marketingu, Marketing
Tresci kursu, studia Polibuda Informatyka, III semestr, języki paradygmaty programowania (jipp)
Kol W2, studia Polibuda Informatyka, III semestr, języki paradygmaty programowania (jipp), kolos 2
cwiczenie10d2013, WSTI Pawia 55, Semestr I, Podstawy programowania (wyk, lab - L.Grad, Laboratoria
program wyk, geografia, kompleksowa geografia fizyczna
cwiczenie8d2013, WSTI Pawia 55, Semestr I, Podstawy programowania (wyk, lab - L.Grad, Laboratoria
cwiczenie13d2012, WSTI Pawia 55, Semestr I, Podstawy programowania (wyk, lab - L.Grad, Laboratoria
cwiczenie9d2013, WSTI Pawia 55, Semestr I, Podstawy programowania (wyk, lab - L.Grad, Laboratoria
cwiczenie11d2013, WSTI Pawia 55, Semestr I, Podstawy programowania (wyk, lab - L.Grad, Laboratoria
cwiczenie6d2013, WSTI Pawia 55, Semestr I, Podstawy programowania (wyk, lab - L.Grad, Laboratoria
Metodologia geografii Program Wyk

więcej podobnych podstron