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