Paradygmaty programowania wyk 5


Paradygmaty
Paradygmaty
programowania
programowania
Wykład 5  Przepływ sterowania,
procedury i funkcje
procedury i funkcje
Przepływ sterowania
Przepływ sterowania
Komendy o pojedynczym wejściu i wyjściu
T F
T F
F
F
C E E
C1 E E
T
C
C2 C1 C2 C1
Przepływ sterowania  sekwensery
Przepływ sterowania  sekwensery
Sekwenser  konstrukcja, która pozwala na przeniesienie
kontroli w inne miejsce programu, nazywane celem
sekwensera.
Sekwensery
nisko-poziomowe
wysoko-poziomowe
Skoki Komendy ucieczki
Wyjątki
Przepływ sterowania  skoki
Przepływ sterowania  skoki
Skok  sekwenser, który pozwala na przeniesienie
kontroli w określone miejsce programu. Najczęściej
przyjmuje postać komendy goto L;, gdzie L jest etykietą
oznaczającą miejsce docelowe.
int main()
int main()
C
C1
{
C1;
if(E1) goto A;
E1
1
if(E2) goto B;
E2
C2; 2
A:
C3;
C2
B:
C4;
C3
C5;
}
C4
Przepływ sterowania  komenda ucieczki
Przepływ sterowania  komenda ucieczki
Komenda ucieczki  sekwenser, który przerywa wykonanie
komendy blokowej lub procedury. Pozwala na przepływ
sterowania typu: jedno-wejście wiele-wyjść
int sumuj(int tab[])
int sumuj(int tab[])
C1
C1
{
int suma = 0;
for(int i=0; i<10; i++)
E1 F
1
{
T
suma += tab[i];
if(suma > 10)
C2
break;
}
return suma;
E2 T
2
}
F
Przepływ sterowania  wyjątki
Przepływ sterowania  wyjątki
Sytuacja nietypowa (wyjątkowa)  jest to sytuacja, w której
program nie może działać normalnie.
Wyjątki  są techniką pozwalającą na obsługę sytuacji
wyjątkowych.
Wyjątek  jednostka reprezentująca sytuację wyjątkową lub
rodzinę takich sytuacji.
Przepływ sterowania  wyjątki
Przepływ sterowania  wyjątki
Wyjątki
Przechwytywanie
Rzucanie wyjątku
wyjątku
Rzucanie wyjątku:
Rzucanie wyjątku:
&
if(E) throw new Ex;
&
Przechwytywanie wyjątku:
try
Ca; Cb;
catch(T1 I1) C1;
&
catch(Tn In) Cn;
finally Cf
Przepływ sterowania  wyjątki (przykład C#)
Przepływ sterowania  wyjątki (przykład C#)
double funkcja(double a, double b) {
if (b == 0)
throw new DivideByZeroException("Nie dzieli się przez zero");
else
return a / b;
}
static void Main(string[] args){
double wartosc=0;
double wartosc=0;
try {
wartosc = Funkcja(3, 0);
&
}
catch (DivideByZeroException e) {
Console.WriteLine(e.Message);
wartosc = 0;
}
finally {
wartosc = 1;
}
}
Abstrakcja w programowaniu
Abstrakcja w programowaniu
W języku programowania abstrakcja pozwala na rozróżnienie
co jednostka programu robi i jak jednostka programu pracuje.
Procedura  jednostka obejmująca instrukcje programu.
Procedura  jednostka obejmująca instrukcje programu.
Procedury
Procedury Procedury
właściwe funkcyjne (funkcje)
Procedury właściwe
Procedury właściwe
Procedura właściwa obejmuje komendy do wykonania
i podczas działania modyfikuje wartości zmiennych.
C++: Pascal:
C++: Pascal:
void I(P1,& ,PN) procedure I(P1,& ,PN)
{ var
B D
} begin
B
end;
Procedury funkcyjne
Procedury funkcyjne
Procedura funkcyjne (funkcje) obejmują wyrażenia, których
wartość powinna zostać obliczona. Kiedy funkcja jest
wywoływana zwraca wyznaczoną wartość zawartego w niej
wyrażenia.
C++: Pascal:
C++: Pascal:
T I(P1,& ,PN) function I(P1,& ,PN) : T
{ var
B D
} begin
B
end;
Parametry i argumenty funkcji
Parametry i argumenty funkcji
Argument jest wartością lub jednostką przekazywaną do
procedury.
Parametr aktualny jest wyrażeniem, które zwraca nam
Parametr aktualny jest wyrażeniem, które zwraca nam
argument.
Parametr formalny jest identyfikatorem, za pomocą którego
może mieć dostęp do argumentu.
Parametry i argumenty funkcji
Parametry i argumenty funkcji
int suma ( int a, int b )
{
parametry formalne
return a + b;
}
int main()
{
int a = 3;
parametry aktualne
int b = 4;
cout<return 0;
}
Mechanizm przekazywania parametrów
Mechanizm przekazywania parametrów
Machanizm przekazywania parametrów - forma skojarzenia
wartości atrybutu z odpowiednim parametrem formalnym.
mechanizm
przekazywania atrybutów
przekazywania atrybutów
przekazywanie przez przekazywanie przez
wartość referencję
Przekazywanie parametrów przez wartość
Przekazywanie parametrów przez wartość
Przekazywanie parametrów przez wartość - pozwala aby
wartość była kopiowana do i/lub z procedury.
Przekazywanie parametrów
przez wartość
przez wartość
Przekazywanie Przekazywanie Przekazywanie
do funkcji z funkcji do i z funkcji
Przekazywanie parametrów przez wartość do funkcji
Przekazywanie parametrów przez wartość do funkcji
Podczas wywoływania funkcji tworzona jest zmienna lokalna
i inicjalizowana wartością odpowiadającego jej argumentu.
Wszelkie modyfikacje tej zmiennej lokalnej nie są widoczne
poza funkcją.
C++:
C++:
ADA:
ADA:
void Dodaj(int a, int b)
procedure Dodaj(a, b: in Integer)
{
is
int suma = 0;
suma : Integer := 0;
a += 5;
begin
suma = a + b;
a := a + 5;
}
suma := a + b;
&
end;
x = 5;
&
Dodaj(x, 5);
x := 5;
Dodaj(x, 5);
Przekazywanie parametrów przez wartość z funkcji
Przekazywanie parametrów przez wartość z funkcji
Podczas wywoływania funkcji tworzona jest zmienna lokalna
ale nie inicjalizowana. Kiedy następuje powrót z procedury
wartość tej zmiennej jest przypisana do argumentu.
ADA:
ADA:
procedure Dodaj(a, b: in Integer, suma : out Integer) is
begin
a := a + 5;
suma := a + b;
end;
&
x: Integer;
&
Dodaj(3, 4, x);
Przekazywanie parametrów przez wartość do i z funkcji
Przekazywanie parametrów przez wartość do i z funkcji
Jest to połączenie dwóch poprzednich metod.
Podczas wywoływania funkcji tworzona jest zmienna lokalna
i inicjalizowana wartością odpowiadającego jej argumentu.
Kiedy następuje powrót z procedury wartość tej zmiennej jest
przypisana do argumentu.
ADA:
procedure PodzielPrzez2(a: in out Float) is
begin
a := a / 2;
end;
&
x : Float := 5.0;
&
PodzielPrzez2(x);
Przekazywanie parametrów przez wartość - podsumowanie
Przekazywanie parametrów przez wartość - podsumowanie
Rozpoczęcie Zakończenie
Rodzaj Argument
procedury procedury
Przekazywanie do wartość -
PF = WA
Przekazywanie z zmienna ZA = PF
-
Przekazywanie do i z zmienna ZA = PF
PF = WA
PF  parametr formalny
WA  wartość argumentu
ZA  zmienna argumentu
Przekazywanie parametrów przez referencję
Przekazywanie parametrów przez referencję
Przekazywanie parametrów przez referencję - pozwala aby
parametr formalny był przypisany bezpośrednio do argumentu
Przekazywanie parametrów
przez referencje
przez referencje
Przekazywanie Przekazywanie Przekazywanie
stałych zmiennych funkcji
Aliasing
Aliasing
Alising  występuje przy przekazywaniu parametrów przez
referencję gdy, dwa lub więcej parametrów formalnych jest
bezpośrednio przypisanych do tej samej zmiennej.
void funkcja(int &v1, int &v2, int &v3)
{
{
v1 -= v3;
v2 += v3;
}
&
funckja(x,y,z);
funkcja(x,y,x);
Zmienna liczba parametrów funkcji
Zmienna liczba parametrów funkcji
#include // C++
int funkcja(int zmiennaNazwana, & ) {
va_list args;
va_start(args, zmiennaNazwana);
&
char ch = va_arg(args, char);
&
char dp = va_arg(args, char);
&
&
va_end(args);
}
void funkcja(params string[] vars) // C#
{
for (int i = 0; i < vars.Length; i++)
Console.WriteLine(vars[i].ToString());
}


Wyszukiwarka

Podobne podstrony:
Paradygmaty programowania wyk 4
Paradygmaty programowania wyk 2
Paradygmaty programowania wyk 3
Paradygmaty programowania wyk 1
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
Międzynarodowy Program Badań nad Zachowaniami Samobójczymi
Wyk ad 02
CSharp Introduction to C# Programming for the Microsoft NET Platform (Prerelease)
Instrukcja Programowania Zelio Logic 2 wersja polska
Program wykładu Fizyka II 14 15
Mat Bud wyk
wyk(Ia) wstęp PBiID
roprm ćwiczenie 6 PROGRAMOWANIE ROBOTA Z UWZGLĘDNIENIEM ANALIZY OBRAZU ARLANG

więcej podobnych podstron