Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem

Wielkość: px
Rozpocząć pokaz od strony:

Download "Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem"

Transkrypt

1 Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udostępniony pod warunkiem wykorzystania wyłacznie do własnych prywatnych potrzeb i może on być kopiowany wyłacznie w całości, razem z niniejsza strona tytułowa.

2 Planowanie ścieżki bezkolizyjnej robota Problem planowanie ścieżki bezkolizyjnej dla robota typu omni-directional można sprowadzić do planowania ścieżki bezkolizyjnej dla punktu materialnego. Można to zrobić poprzez powiększenie przeszkód o promień obrysu rzutu pionowego korpusu robota. Ten sposób postępowania jest szczególnym przypadkiem wynikajacym z pojęcia przestrzeni konfiguracyjnej, które zostało wprowadzone przez Lozano-Péreza (1983). Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 1

3 Metody planowania Szukanie ścieżki bezkolizyjnej można sprawdzić do problemu przeszukiwania grafu. Do najbardziej popularnych należa metody grafu widoczności (ang. Visibility Graph) oraz grafu styczności (ang. Tangent Graph). Idea metody: Zbuduj graf (widoczności lub styczności) Znajdź najkrótsza ścieżkę w grafie Graf widoczności Graf styczności Zaleta: Znajdowana jest optymalna ścieżka pod względem długości. Wada: Konieczność tworzenia złożonych struktur grafowych. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 2

4 Metoda labiryntowa Metoda labiryntowa buduje ścieżkę bezkolizyjna odcinek po odcinku. Idea metody: 1. Czy odcinek do punktu S przecina wielobok? Jeśli nie to odcinek znaleziony. 2. Omiń przeszkodę i powróć do 1. W celu znalezienia kolejnego odcinka procedura jest powtarzana przyjmujac za S koniec znalezionej części ścieżki. Zaleta: Nie tworzy grafu. Szybko znajduje pojedynczy odcinek ścieżki. Wada: Znaleziona ścieżka jest suboptymalna. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 3

5 Opis problemu: Zaimplementować procedurę obliczeniowa pozwalajac a ustalić, czy odcinek łacz acy dwa punkty S i F przecina wielobok W. Jeżeli takie przecięcie wystapi, to należy wyznaczyć punkt przecięcia najbliższy punktowi S. Przypadek gdy odcinek pokrywa się całkowicie lub częściowo z bokiem wieloboku nie jest traktowany jako przecięcie. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 4

6 Analiza problemu: Zaimplementować procedurę obliczeniowa pozwalajac a ustalić, czy odcinek łacz acy dwa punkty S i F przecina wielobok W. Jeżeli takie przecięcie wystapi, to należy wyznaczyć punkt przecięcia najbliższy punktowi S. Kluczowe rzeczowniki: odcinek komponenty: wierzchołki punkty Własności: położenie wieloboki, odcinek, punkty Relacje: Istnienie punktów przecięcia wielobok komponenty: wierzchołki punkty punkty Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 5

7 Problemy i podproblemy Szukanie najbliższego punktu przecięcia dla odcinka i wieloboku Szukanie punktu przecięcia odcinka z brzegiem wieloboku Szukanie punktu przecięcia odcinka z odcinkiem Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 6

8 Przecięcie Nie zawsze wykrycie punktu wspólnego odcinka i boku figury musi oznaczać przecięcie. Najprostszy przypadek, gdy odcinek SF przecina się z bokiem figury. Odcinek SF ma punkty wspólne z krańcami dwóch boków. Odcinek SF ma punkty wspólne z krańcami dwóch boków, ale tym razem nie można powiedzieć, że przecina wielobok. Jedynie styka się z nim. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 7

9 Problemy i podproblemy Szukanie najbliższego punktu przecięcie dla odcinka i wieloboku Szukanie punktu przecięcia odcinka z brzegiem wieloboku Szukanie punktu przecięcia odcinka z odcinkiem Rozpoznanie przecięcia z brzegiem, gdy odcinka przechodzi przez wierzchołek Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 8

10 Szukanie punktu przecięcia odcinków Równanie parametryczne odcinka: Warunek istnienia punktu wspólnego: { x = ax t + b xo y = a y t + b yo { ax,1 t 1 + b xo,1 = a x,2 t 2 + b xo,2 a y,1 t 2 + b yo,1 = a y,2 t 2 + b yo,2 Układ równań liniowych względem t 1 i t 2 : { ax,1 t 1 a x,2 t 2 = b xo,2 b xo,1 a y,1 t 1 a y,2 t 2 = b yo,2 b yo,1 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 9

11 Szukanie punktu przecięcia odcinków Układ równań liniowych względem t 1 i t 2 : { ax,1 t 1 a x,2 t 2 = b xo,2 b xo,1 Rozwiazanie: a y,1 t 1 a y,2 t 2 = b yo,2 b yo,1 W = a x,2 a y,1 a y,2 a x,1 D 1 = a x,2 (b yo,2 b yo,1) a y,2 (b xo,2 b xo,1) D 2 = a x,1 (b yo,2 b yo,1) a y,1 (b xo,2 b xo,1) t 1 = D 1 W, t 2 = D 2 W (W 0) Warunek istnienia pojedynczego punktu wspólnego: 0 t t 2 1 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 10

12 Kiedy przecięcie? Przecięcie wnikajace. Kiedy na pewno odcinek SF wnika w wielobok. α (0,Π) β (0,Π) upraszczaj ac sinα > 0 sinβ > 0 W przypadku, gdy mamy do czynienia z przestrzenia dwuwymiarowa możemy rozszerzyć ja do przestrzeni trójwymiarowej. Pozwala to skorzystać z iloczynu wektorowego i w prosty sposób otrzymać znak sinusa kata między dwoma wektorami. Sprawdzenie powyższego warunku można sprowadzić do prostych działań arytmetycznych. Postępowanie to poprawne, gdyż w tym przypadku miara kata mieści się w przedziale [0, 2Π). ( SF a) z > 0 ( SF b) z > 0 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 11

13 Kiedy przecięcie? Przecięcie wnikajace. Kiedy na pewno odcinek SF wnika w wielobok.?? Drugi z przypadków należy potraktować jako przecięcie wnikajace. Pomimo tego, że może mieć miejsce ślizganie się odcinka wewnatrz wieloboku, jednak gdy szukamy najbliższego punktu przecięcia, ten przypadek i tak zostanie wyeliminowany. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 12

14 Kiedy przecięcie? Przecięcie wnikajace. Kiedy na pewno odcinek SF wnika w wielobok.?? I tym razem również drugi z przypadków należy potraktować jako przecięcie wnikajace. Pomimo tego, że może mieć miejsce ślizganie się odcinka wewnatrz wieloboku, jednak gdy szukamy najbliższego punktu przecięcia, ten przypadek i tak zostanie wyeliminowany. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 13

15 Kiedy przecięcie? Przecięcie wnikajace. Kiedy na pewno odcinek SF wnika w wielobok. α (0,Π) β = Π α = 0 β (0,Π) Szczegółowa analiza pozwala sformułować warunki umożliwiajace stwierdzić czy mamy do czynienia z przecięciem wnikajacym, czy też ze ślizganiem się po brzegu. Warunki te formułowane sa w kontekście procedury szukania przecięcia, która wymaga zbadania całego brzegu wieloboku. Z tego względu dla realizacji jej elementarnego kroku wystarcza informacja tylko o dwóch kolejnych bokach. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 14

16 Kiedy przecięcie? Przecięcie wnikajace Pierwszy przypadek brzegowy α (0,Π) β = Π Ze względu na to, że miara kata w tym przypadku mieści się w przedziale [0, Π), więc warunek może być sprowadzony do postaci: sinα > 0 sinβ = 0 cosβ = 1 Korzystajac z formalnego rozszerzenia do 3D możemy użyć iloczynu wektorowego, aby sprawdzić znak funkcji sinus, zaś aby sprawdzić znak funkcji cosinus wykorzystać możemy iloczyn skalarny. ( SF a) z > 0 ( SF b) z = 0 SF b < 0 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 15

17 Kiedy przecięcie? Przecięcie wnikajace Drugi przypadek brzegowy α = 0 β (0,Π) Ze względu na to, że miara kata w tym przypadku mieści się w przedziale [0, Π), więc warunek może być sprowadzony do postaci: sinα = 0 cosα = 1 sinβ > 0 Korzystajac z formalnego rozszerzenia do 3D możemy użyć iloczynu wektorowego, aby sprawdzić znak funkcji sinus, zaś aby sprawdzić znak funkcji cosinus wykorzystać możemy iloczyn skalarny. ( SF a) z = 0 SF a > 0 ( SF b) z > 0 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 16

18 Kiedy przecięcie? α (0,Π) β (0,Π) α (0,Π) β = Π α = 0 β (0,Π) α (0,Π) β (0,Π] α [0,Π) β (0,Π) Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 17

19 Kiedy przecięcie? α (0,Π) β (0,Π] α [0,Π) β (0,Π) α (0,Π) (β (0,Π) β = Π) (α (0,Π) α = 0) β (0,Π) sinα > 0 (sinβ > 0 sinβ = 0 cosβ = 1) (sinα > 0 sinα = 0 cosα = 1) sinβ > 0 ( ) ( SF a) z > 0 ( SF b) z > 0 ( SF b) z = 0 SF b < 0 ( ) ( SF a) z > 0 ( SF a) z = 0 SF a > 0 ( SF b) z > 0 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 18

20 Implementacja rozwiazania w C (cz. 1) typedef struct OdcinekProstej { float xo, yo, xn, yn; } Odcinek; float CzyPunktWspolny( Odcinek Odc1, Odcinek Odc2, float wx, float wy ) { float x A1, y A1, x A2, y A2, x B, y B; float t1, t2, Wz; x A1 = Odc1.xn Odc1.xo; y A1 = Odc1.yn Odc1.yo; x A2 = Odc2.xn Odc2.xo; y A2 = Odc2.yn Odc2.yo; x B = Odc2.xo Odc1.xo; y B = Odc2.yo Odc1.yo; Wz = x A2 y A1 x A1 y A2; } if ( Wz == 0 ) return MAXFLOAT; t1 = (x A2 y B y A2 x B)/Wz; t2 = (x A1 y B y A1 x B)/Wz; if ( t1 < 0 1 < t1 t2 < 0 1 < t2 ) return MAXFLOAT; wx = x A1 t1 + Odc1.xo; wy = y A1 t1 + Odc1.yo; return t1; Czyż to nie jest koszmarne? Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 19

21 Implementacja rozwiazania w C (cz. 2) typedef struct Wektor { float x, y; } Wektor; typedef struct Odcinek { Wektor Po, Pn; } Odcinek;... float CzyPunktWspolny( Odcinek Odc1, Odcinek Odc2, Wektor wpprzec ) { Wektor A1 = OdejmijWektory(&Odc1.Pn, &Odc1.Po); Wektor A2 = OdejmijWektory(&Odc2.Pn, &Odc2.Po); Wektor B = OdejmijWektory(&Odc2.Po, &Odc1.Po); float t1, t2, Wz = IloczynWekZ(A2, A1); if ( Wz == 0 ) return MAXFLOAT; t1 = IloczynWekZ(A2,B)/Wz; t2 = IloczynWekZ(A1,B)/Wz; if ( t1 < 0 1 < t1 t2 < 0 1 < t2 ) return MAXFLOAT; wpprzec = DodajWektory(PomnozWektorPrzezLiczbe(A1,t1), Odc1.Po); return t1; } Obiektowo zorientowana implementacja czyni ten zapis bardziej czytelnym. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 20

22 Implementacja rozwiazania w C (cz. 3)... Wektor DodajWektory( Wektor W1, Wektor W2 ) { W1.x += W2.x; W1.y += W2.y; return W1; } Wektor OdejmijWektory( Wektor ww1, Wektor ww2 ) { Wektor Wr; Wr.x = ww1 >x ww2 >x; Wr.y = ww1 >y ww2 >y; return Wr; } Wektor PomnozWektorPrzezLiczbe( Wektor W, float L ) { W.x = L; W.y = L; return W; } float IloczynWekZ( Wektor W1, Wektor W2 ) { return W1.x W2.y W1.y W2.y; }... Przekazywanie parametru przez wartość pozwala na uproszczenie zapisu implementacji funkcji (porównaj np. implementację funkcji DodajWektory i OdejmijWektory). Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 21

23 Diagramy klas w UML Rysunek 1: Diagram klas dla implementacji rozwiazania problemu wykrywania przecięcia. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 22

24 Klasa Wektor class Wektor { float x, y; public : Wektor( ) { x = y = 0; } Wektor( float x, float y ) { x = x; y = y; } float x( ) const { return x; } float y( ) const { return y; } Wektor Zmien( float x, float y ) { x = x; y = y; return this ; } Wektor & operator += ( const Wektor &W ) { x += W. x; y += W. y; return this ; } Wektor operator + ( Wektor W ) const { return W += this ; } Wektor & operator = ( const Wektor &W ) { x = W. x; y = W. y; return this ; } Wektor operator ( Wektor W ) const { return Wektor( x W. x, y W. y); } }; float operator ( Wektor W ) const { return x W. y y W. x; } Wektor operator ( float L) const { return Wektor( x L, y L); } Klasa Wektor wyposażona jest w interfejs, który umożliwia kontrolę nad operacjami odczytu i zapisu. Redukuje to możliwość przypadkowych błędów. Wada jest utrudnione odwoływanie się do pól klasy. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 23

25 Klasa Odcinek class Odcinek { // public : Wektor Po, Pn; float CzyPunktWspolny( const Wektor & P2o, const Wektor & P2n, float & t2, Wektor & PPrzec ) const; float CzyPunktWspolny( const Odcinek & Odc, float & t2, Wektor & PPrzec ) const { return CzyPunktWspolny(Odc. Po, Odc. Pn, t2, PPrzec); } }; // Odcinek jest reprezentowany w klasie Odcinek poprzez swoje dwa punkty krańcowe. Ponadto klasa ta zawiera metody implementujace relację posiadania punktu wspólnego przez dwa odcinki. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 24

26 Klasa Wielobok class Wielobok { // public : int Ilosc; Wektor Wierz[MAX WIERZ]; Wielobok( ) { Ilosc = 0; } bool CzyWnika( const Odcinek & Odc, unsigned int Indeks Pop, unsigned int Indeks Bie, unsigned int Indeks Nas ) const; float CzyPrzeciecie( const Odcinek & Odc, Wektor & PntPrz ) const; }; // Wielobok jest reprezentowany poprzez zbiór swoich wierzchołków. Ich kolejność występowania w tablicy może zadawać orientację jego brzegu. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 25

27 Reprezentacja wieloboku Obiekt klasy Wielobok umożliwia reprezentację wieloboku poprzez przechowywanie informacji o współrzędnych kolejnych wierzchołków. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 26

28 Reprezentacja wieloboku Korzystanie ze struktur statycznych wewnatrz klasy Wielobok ogranicza zbiór wieloboków, które moga być reprezentowane przez obiekty tej klasy. Kolejność występowania współrzędnych poszczególnych wierzchołków w tablicy nie jest obojętna. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 27

29 Reprezentacja wieloboku Kolejność występowania wierzchołków w tablicy w naturalny sposób wyznacza orientację brzegu wieloboku. Tym samym z każdym z boków tej figury możemy skojarzyć odpowiedni wektor zgodny z orientacja brzegu. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 28

30 Szukanie punktu przecięcia float Wielobok::CzyPrzeciecie( const Odcinek & Odc, Wektor & PntPrz ) const { float t min = numeric limits<float>::max( ), t, t2; Wektor Pnt; } for (int i n=0, i o= Ilosc 1, i p= Ilosc 2; i n < Ilosc; i p = i o, i o = i n++) if ( (t = Odc.CzyPunktWspolny( Wierz[i o], Wierz[i n], t2, Pnt) ) < t min) { if ( t2 == 1 ) continue ; if ( t2 == 0 ) { if (!CzyWnika(Odc, i p, i o, i n) ) continue ; } t min = t; PntPrz = Pnt; } return t min; Zdekomponowanie podstawowego zadania pozwala łatwiej zapisać rozwiazanie podstawowego problemu. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 29

31 Wyznaczanie punktu wspólnego float Odcinek::CzyPunktWspolny( const Wektor & P2o, const Wektor & P2n, float & t2, Wektor & PntPrz ) const { Wektor A1 = Pn Po, A2 = P2n P2o; Wektor B = P2o Po; float Wz = A2 A1; } if ( Wz == 0 ) return numeric limits<float>::max( ); float t1 = (A2 B)/Wz; t2 = (A1 B)/Wz; if (t1 < 0 1 < t1 t2 < 0 1 < t2) return numeric limits<float>::max( ); PntPrz = A1 t1 + Po; return t1; Zdefiniowanie działań na wektorach znaczaco upraszcza zapis metody. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 30

32 Sprawdzenie warunku wnikania bool Wielobok::CzyWnika( const Odcinek & Odc, unsigned int Indeks Pop, unsigned int Indeks Bie, unsigned int Indeks Nas ) const { Wektor V sf = Odc. Po Odc. Pn; Wektor V a = Wierz[Indeks Bie] Wierz[Indeks Pop]; Wektor V b = Wierz[Indeks Nas] Wierz[Indeks Bie]; float VsfxVa = V sf V a; float VsfxVb = V sf V b; } return VsfxVa > 0 && (VsfxVb > 0 VsfxVb == 0 && (V sf & V b) < 0) (VsfxVa > 0 VsfxVa == 0 && (V sf & V b) > 0) && VsfxVb > 0; sinα > 0 (sinβ > 0 sinβ = 0 cosβ = 1) (sinα > 0 sinα = 0 cosα = 1) sinβ > 0 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 31

33 Jak radzić sobie z błędami obliczeń float Wynik;... if ( Wynik == 0 ) {... } Błędy obliczeń moga sprawić, że wartość zmiennej Wynik będzie nieznacznie różna od 0, choć teoretycznie powinna równać się 0. #define BLAD DLA FLOAT 1E-8 #define BLAD DLA DOUBLE 1E-14 inline int sgn( float x ) { return x+blad DLA FLOAT > 0? x-blad DLA FLOAT < 0? 0 : 1 : -1; } inline int sgn( double x ) { return x+blad DLA DOUBLE > 0? x-blad DLA DOUBLE < 0? 0 : 1 : -1; } if ( sgn( Wynik ) == 0 ) {... } Dobór stałych błędów zależy od stosowanej reprezentacji liczb zmiennoprzecinkowych. Przedstawiony sposób nie daje gwarancji rozwiazania problemu niedokładności obliczeń. Jednak może go znaczaco zredukować. Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 32

34 Translacja warunków x == 0 sgn(x) == 0 x > 0 sgn(x) == 1 x >= 0 sgn(x)!= -1 x == 7 sgn(x 7) == 0 x!= 7 sgn(x 7)!= 0 x > 7 sgn(x 7) == 1 x >= 7 sgn(x 7)!= 1 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 33

35 Szukanie punktu przecięcia (użycie funkcji sgn) float Wielobok::CzyPrzeciecie( const Odcinek & Odc, Wektor & PntPrz ) const { float t min = numeric limits<float>::max( ), t, t2; Wektor Pnt; } for (int i n=0, i o= Ilosc 1, i p= Ilosc 2; i n < Ilosc; i p = i o, i o = i n++) if ( (t = Odc.CzyPunktWspolny( Wierz[i o], Wierz[i n], t2, Pnt) ) < t min) { if (! sgn(t2 1) ) continue ; if (! sgn(t2) ) { if (!CzyWnika(Odc, i p, i o, i n) ) continue ; } t min = t; PntPrz = Pnt; } return t min; Oryginalna postać warunków: t2 == 1 t1 == 0 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 34

36 Wyznaczanie punktu wspólnego (użycie funkcji sgn) float Odcinek::CzyPunktWspolny( const Wektor & P2o, const Wektor & P2n, float & t2, Wektor & PntPrz ) const { Wektor A1 = Pn Po, A2 = P2n P2o; Wektor B = P2o Po; float Wz = A2 A1; } if (! sgn( Wz ) ) return numeric limits<float>::max( ); float t1 = (A2 B)/Wz; t2 = (A1 B)/Wz; if ( sgn(t1) == -1 sgn(1 t1) == -1 sgn(t2) == -1 sgn(1 t2) == -1 ) return numeric limits<float>::max( ); PntPrz = A1 t1 + Po; return t1; Oryginalna postać warunków: Wz == 0 t1 < 0 1 < t1 t2 < 0 1 < t2 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 35

37 Sprawdzenie warunku wnikania (użycie funkcji sgn) bool Wielobok::CzyWnika( const Odcinek & Odc, unsigned int Indeks Pop, unsigned int Indeks Bie, unsigned int Indeks Nas ) const { Wektor V sf = Odc. Po Odc. Pn; Wektor V a = Wierz[Indeks Bie] Wierz[Indeks Pop]; Wektor V b = Wierz[Indeks Nas] Wierz[Indeks Bie]; float VsfxVa = V sf V a; float VsfxVb = V sf V b; } return sgn(vsfxva) == 1 && (sgn(vsfxvb) == 1!sgn(VsfxVb) && sgn(v sf & V b) == -1) (sgn(vsfxva) == 1!sgn(VsfxVa) && sgn(v sf & V b) == 1) && sgn(vsfxvb) == 1; Oryginalna postać warunków: VsfxVa > 0 && (VsfxVb > 0 VsfxVb == 0 && (V sf & V b) < 0) (VsfxVa > 0 VsfxVa == 0 && (V sf & V b) > 0) && VsfxVb > 0 Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 36

38 Pytania i ćwiczenia 1. Zakładajac że wszystkie zmienne sa poprawnie zadeklarowane jaki będzie wynik wywołania niniejszej metody: Odcinek Odc; Wektor PPrzec; Odc.CzyPunktWspolny(Odc. Pn,Odc. Po,&PPrzec); Czy otrzymany wynik będzie różny od wywołania: Odc.CzyPunktWspolny(Odc,&PPrzec); 2. Czy przedstawione w poprzednim punkcie wywołania metody CzyPunktWspolny będzie mogło być wykonane w przypadku, gdy obiekt Odc zadeklarowany zostanie jako obiekt stały? Copyright c Bogdan Kreczmer Przykład zastosowania przeciażeń operatorów i metod stałych - szukanie punktu przecięcia z wielobokiem 37

Wprowadzenie do szablonów szablony funkcji

Wprowadzenie do szablonów szablony funkcji Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do

Bardziej szczegółowo

Wprowadzenie do szablonów szablony funkcji

Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Wartości domyślne, przeciażenia funkcji

Wartości domyślne, przeciażenia funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Referencje do zmiennych i obiektów

Referencje do zmiennych i obiektów Referencje do zmiennych i obiektów Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Wyliczanie wyrażenia obiekty tymczasowe

Wyliczanie wyrażenia obiekty tymczasowe Wyliczanie wyrażenia obiekty tymczasowe Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Wartości domyślne, przeciażenia funkcji

Wartości domyślne, przeciażenia funkcji Wartości domyślne, przeciażenia funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Wprowadzenie do UML, przykład użycia kolizja

Wprowadzenie do UML, przykład użycia kolizja Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Diagramy UML, przykład problemu kolizji

Diagramy UML, przykład problemu kolizji Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2015 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Klasa, metody, rozwijanie w linii

Klasa, metody, rozwijanie w linii Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Klasa, metody, rozwijanie w linii

Klasa, metody, rozwijanie w linii Klasa, metody, rozwijanie w linii Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Szablon klasy std::list

Szablon klasy std::list Szablon klasy std::list Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania

Bardziej szczegółowo

Konstruktor kopiujacy

Konstruktor kopiujacy Konstruktor kopiujacy Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udostępniony

Bardziej szczegółowo

Pola i metody statyczne

Pola i metody statyczne Pola i metody statyczne Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2009 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania

Bardziej szczegółowo

Szablon klasy std::vector

Szablon klasy std::vector Szablon klasy std::vector Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat

Bardziej szczegółowo

Lista dwukierunkowa - przykład implementacji destruktorów

Lista dwukierunkowa - przykład implementacji destruktorów Lista dwukierunkowa - przykład implementacji destruktorów Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2008 Bogdan Kreczmer Niniejszy dokument zawiera

Bardziej szczegółowo

Przykład implementacji przeciażeń operatorów problem kolizji

Przykład implementacji przeciażeń operatorów problem kolizji Przykład implementacji przeciażeń operatorów problem kolizji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Rzutowanie i konwersje

Rzutowanie i konwersje Rzutowanie i konwersje Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania

Bardziej szczegółowo

Style programowania - krótki przeglad

Style programowania - krótki przeglad Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Operacje wejścia/wyjścia odsłona pierwsza

Operacje wejścia/wyjścia odsłona pierwsza Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Zad. 3: Układ równań liniowych

Zad. 3: Układ równań liniowych 1 Cel ćwiczenia Zad. 3: Układ równań liniowych Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich

Bardziej szczegółowo

Operacje wejścia/wyjścia (odsłona druga) - pliki

Operacje wejścia/wyjścia (odsłona druga) - pliki Operacje wejścia/wyjścia (odsłona druga) - pliki Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały

Bardziej szczegółowo

Układy równań i nierówności

Układy równań i nierówności Układy równań i nierówności Zad : Dla jakich wartości parametru m rozwiązaniem układu równań: + y m = 0 + y = 0 y jest para liczb x, y spełniająca warunek: =? x Odp: m = lub m = 4 Zad : Dla jakich wartości

Bardziej szczegółowo

Wprowadzenie do szablonów klas

Wprowadzenie do szablonów klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2008-2010 Bogdan Kreczmer Niniejszy

Bardziej szczegółowo

Geneza powstania języka C++

Geneza powstania języka C++ Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Przesłanianie nazw, przestrzenie nazw

Przesłanianie nazw, przestrzenie nazw Przesłanianie nazw, przestrzenie nazw Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Geneza powstania języka C++

Geneza powstania języka C++ Geneza powstania języka C++ Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat

Bardziej szczegółowo

Style programowania - krótki przeglad

Style programowania - krótki przeglad Style programowania - krótki przeglad Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy

Bardziej szczegółowo

Podejście obiektowe - podstawowe pojęcia

Podejście obiektowe - podstawowe pojęcia Podejście obiektowe - podstawowe pojęcia Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2003 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Hermetyzacja oraz pola i metody statyczne

Hermetyzacja oraz pola i metody statyczne Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2010 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Obiekty i metody stałe

Obiekty i metody stałe Obiekty i metody stałe Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania

Bardziej szczegółowo

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE

Bardziej szczegółowo

( ) Arkusz I Zadanie 1. Wartość bezwzględna Rozwiąż równanie. Naszkicujmy wykresy funkcji f ( x) = x + 3 oraz g ( x) 2x

( ) Arkusz I Zadanie 1. Wartość bezwzględna Rozwiąż równanie. Naszkicujmy wykresy funkcji f ( x) = x + 3 oraz g ( x) 2x Arkusz I Zadanie. Wartość bezwzględna Rozwiąż równanie x + 3 x 4 x 7. Naszkicujmy wykresy funkcji f ( x) x + 3 oraz g ( x) x 4 uwzględniając tylko ich miejsca zerowe i monotoniczność w ten sposób znajdziemy

Bardziej szczegółowo

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane

Bardziej szczegółowo

Wskazówki do zadań testowych. Matura 2016

Wskazówki do zadań testowych. Matura 2016 Wskazówki do zadań testowych. Matura 2016 Zadanie 1 la każdej dodatniej liczby a iloraz jest równy.. C.. Korzystamy ze wzoru Zadanie 2 Liczba jest równa.. 2 C.. 3 Zadanie 3 Liczby a i c są dodatnie. Liczba

Bardziej szczegółowo

KLUCZ PUNKTOWANIA ODPOWIEDZI

KLUCZ PUNKTOWANIA ODPOWIEDZI Egzamin maturalny maj 009 MATEMATYKA POZIOM PODSTAWOWY KLUCZ PUNKTOWANIA ODPOWIEDZI Zadanie 1. Matematyka poziom podstawowy Wyznaczanie wartości funkcji dla danych argumentów i jej miejsca zerowego. Zdający

Bardziej szczegółowo

9. Podstawowe narzędzia matematyczne analiz przestrzennych

9. Podstawowe narzędzia matematyczne analiz przestrzennych Waldemar Izdebski - Wykłady z przedmiotu SIT 75 9. odstawowe narzędzia matematyczne analiz przestrzennych Niniejszy rozdział służy ogólnemu przedstawieniu metod matematycznych wykorzystywanych w zagadnieniu

Bardziej szczegółowo

Qt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska

Qt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Qt sygnały i sloty Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera

Bardziej szczegółowo

Prosta i płaszczyzna w przestrzeni

Prosta i płaszczyzna w przestrzeni Prosta i płaszczyzna w przestrzeni Wybrane wzory i informacje Równanie prostej przechodzącej przez punkt P 0 = (x 0, y 0, z 0 ) o wektorze wodzącym r 0 i równoległej do wektora v = [a, b, c] : postać parametrycznego

Bardziej szczegółowo

Geometria analityczna

Geometria analityczna Geometria analityczna Wektory Zad Dane są wektory #» a, #» b, #» c Znaleźć długość wektora #» x (a #» a = [, 0, ], #» b = [0,, 3], #» c = [,, ], #» x = #» #» a b + 3 #» c ; (b #» a = [,, ], #» b = [,,

Bardziej szczegółowo

Dział I FUNKCJE TRYGONOMETRYCZNE

Dział I FUNKCJE TRYGONOMETRYCZNE MATEMATYKA ZAKRES PODSTAWOWY Rok szkolny 01/013 Klasa: III Nauczyciel: Mirosław Kołomyjski Dział I FUNKCJE TRYGONOMETRYCZNE Lp. Zagadnienie Osiągnięcia ucznia. 1. Miara kąta. Sprawnie operuje pojęciami:

Bardziej szczegółowo

Wstęp do Programowania 2

Wstęp do Programowania 2 Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 5 W programowaniu obiektowym programista koncentruje się na obiektach. Zadaje sobie pytania typu:

Bardziej szczegółowo

Równania prostych i krzywych; współrzędne punktu

Równania prostych i krzywych; współrzędne punktu Równania prostych i krzywych; współrzędne punktu Zad 1: Na paraboli o równaniu y = 1 x znajdź punkt P leŝący najbliŝej prostej o równaniu x + y = 0 Napisz równanie stycznej do tej paraboli, poprowadzonej

Bardziej szczegółowo

KLUCZ PUNKTOWANIA ODPOWIEDZI

KLUCZ PUNKTOWANIA ODPOWIEDZI Egzamin maturalny maj 009 MATEMATYKA POZIOM PODSTAWOWY KLUCZ PUNKTOWANIA ODPOWIEDZI Zadanie. a) Matematyka poziom podstawowy Wyznaczanie wartości funkcji dla danych argumentów i jej miejsca zerowego.

Bardziej szczegółowo

ZADANIA ZAMKNIETE W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawna

ZADANIA ZAMKNIETE W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawna Arkusz A04 2 Poziom podstawowy ZADANIA ZAMKNIETE W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawna odpowiedź Zadanie 1. (0-1) Liczba π spełnia nierówność: A. + 1 > 5 B. 1 < 2 C. + 2 3 4

Bardziej szczegółowo

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1 Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).

Bardziej szczegółowo

KLUCZ PUNKTOWANIA ODPOWIEDZI

KLUCZ PUNKTOWANIA ODPOWIEDZI Egzamin maturalny maj 009 MATEMATYKA POZIOM ROZSZERZONY KLUCZ PUNKTOWANIA ODPOWIEDZI Zadanie. a) Wiadomości i rozumienie Matematyka poziom rozszerzony Wykorzystanie pojęcia wartości argumentu i wartości

Bardziej szczegółowo

PRÓBNY EGZAMIN MATURALNY

PRÓBNY EGZAMIN MATURALNY PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI ZESTAW PRZYGOTOWANY PRZEZ SERWIS WWW.ZADANIA.INFO POZIOM PODSTAWOWY 3 KWIETNIA 016 CZAS PRACY: 170 MINUT 1 Zadania zamknięte ZADANIE 1 (1 PKT) Liczba 3 7 48 jest równa

Bardziej szczegółowo

#include <iostream.h> #include <conio.h>

#include <iostream.h> #include <conio.h> [p_00.cpp] // Przykladowy program ilustrujacy operacje na zwyklej tablicy liczb "float". // Operacja zapisania wczytanej "wartosci" do tablicy // oraz operacja wyswietlenia wskazanego elementu. // Bez

Bardziej szczegółowo

Blok III: Funkcje elementarne. e) y = 1 3 x. f) y = x. g) y = 2x. h) y = 3x. c) y = 3x + 2. d) y = x 3. c) y = x. d) y = x.

Blok III: Funkcje elementarne. e) y = 1 3 x. f) y = x. g) y = 2x. h) y = 3x. c) y = 3x + 2. d) y = x 3. c) y = x. d) y = x. Blok III: Funkcje elementarne III. Narysuj wykres funkcji: a) y = x y = x y = x y = x III. Narysuj wykres funkcji: a) y = x + y = 4 x III. Znajdź miejsca zerowe funkcji: a) y = 6 x y = x e) y = x f) y

Bardziej szczegółowo

Zad. 5: Rotacje 3D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Zad. 5: Rotacje 3D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego Zad. 5: Rotacje 3D 1 Cel ćwiczenia Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Tworzenie diagramu klas. Praktyczne zweryfikowanie wcześniejszej konstrukcji programu. Jeśli

Bardziej szczegółowo

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): 1 Narysuj na płaszczyźnie zbiór dopuszczalnych rozwiazań. 2 Narysuj funkcję

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Zaawansowane programowanie w C++ (PCP) Wykład 6 - szablony. dr inż. Robert Nowak - p. 1/15 Kolekcje i algorytmy» Deklaracja szablonu y Pojęcia niezależne od typu: kolekcje (np. listy) algorytmy (np. znajdowania

Bardziej szczegółowo

PRÓBNA MATURA ZADANIA PRZYKŁADOWE

PRÓBNA MATURA ZADANIA PRZYKŁADOWE ZESPÓŁ SZKÓŁ HOTELARSKO TURYSTYCZNO GASTRONOMICZNYCH NR UL. KRASNOŁĘCKA 3, WARSZAWA Z A D AN I A Z A M K N I Ę T E ) Liczba, której 5% jest równe 6, to : A. 0,3 C. 30. D. 0 5% 6 II sposób: x nieznana liczba

Bardziej szczegółowo

Część całkowita i ułamkowa, funkcje trygonometryczne, podstawowe własności funkcji

Część całkowita i ułamkowa, funkcje trygonometryczne, podstawowe własności funkcji Sprawdzian nr 2: 25..204, godz. 8:5-8:40 (materiał zad. -48) Sprawdzian nr 3: 9.2.204, godz. 8:5-8:40 (materiał zad. -88) Część całkowita i ułamkowa, funkcje trygonometryczne, podstawowe własności funkcji

Bardziej szczegółowo

Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem.

Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem. 1 Wektory Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem. 1.1 Dodawanie wektorów graficzne i algebraiczne. Graficzne - metoda równoległoboku. Sprowadzamy wektory

Bardziej szczegółowo

W. Guzicki Zadanie 21 z Informatora Maturalnego poziom rozszerzony 1

W. Guzicki Zadanie 21 z Informatora Maturalnego poziom rozszerzony 1 W. Guzicki Zadanie 21 z Informatora Maturalnego poziom rozszerzony 1 Zadanie 21. krąg o środku S = (3, 2) leży wewnątrz okręgu o równaniu (x 6) 2 + (y 8) 2 = 100 i jest do niego styczny. Wyznacz równanie

Bardziej szczegółowo

Laboratorium z Krystalografii. 2 godz.

Laboratorium z Krystalografii. 2 godz. Uniwersytet Śląski - Instytut Chemii Zakład Krystalografii ul. Bankowa 14, pok. 132, 40-006 Katowice tel. 0323591627, e-mail: ewa.malicka@us.edu.pl opracowanie: dr Ewa Malicka Laboratorium z Krystalografii

Bardziej szczegółowo

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w Metoda Simpleks Jak wiadomo, problem PL z dowolną liczbą zmiennych można rozwiązać wyznaczając wszystkie wierzchołkowe punkty wielościanu wypukłego, a następnie porównując wartości funkcji celu w tych

Bardziej szczegółowo

zajęcia 1. Bartosz Górski, Tomasz Kulczyński, Błażej Osiński

zajęcia 1. Bartosz Górski, Tomasz Kulczyński, Błażej Osiński zajęcia 1. Bartosz Górski, Tomasz Kulczyński, Błażej Osiński Geometria dla informatyka wyłacznie obliczenia wszystko oparte na liczbach, współrzędnych, miarach programista i/lub użytkownik musi przełożyć

Bardziej szczegółowo

? 14. Dana jest funkcja. Naszkicuj jej wykres. Dla jakich argumentów funkcja przyjmuje wartości dodatnie? 15. Dana jest funkcja f x 2 a x

? 14. Dana jest funkcja. Naszkicuj jej wykres. Dla jakich argumentów funkcja przyjmuje wartości dodatnie? 15. Dana jest funkcja f x 2 a x FUNKCE FUNKCJA LINIOWA Sporządź tabelkę i narysuj wykres funkcji ( ) Dla jakich argumentów wartości funkcji są większe od 5 Podaj warunek równoległości prostych Wyznacz równanie prostej równoległej do

Bardziej szczegółowo

GEOMETRIA ANALITYCZNA W PRZESTRZENI

GEOMETRIA ANALITYCZNA W PRZESTRZENI Wykład z Podstaw matematyki dla studentów Inżynierii Środowiska Wykład 13. Egzaminy I termin wtorek 31.01 14:00 Aula A Wydział Budownictwa II termin poprawkowy czwartek 9.02 14:00 Aula A Wydział Budownictwa

Bardziej szczegółowo

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje

Bardziej szczegółowo

11. Znajdż równanie prostej prostopadłej do prostej k i przechodzącej przez punkt A = (2;2).

11. Znajdż równanie prostej prostopadłej do prostej k i przechodzącej przez punkt A = (2;2). 1. Narysuj poniższe figury: a), b), c) 2. Punkty A = (0;1) oraz B = (-1;0) należą do okręgu którego środek należy do prostej o równaniu x-2 = 0. Podaj równanie okręgu. 3. Znaleźć równanie okręgu przechodzącego

Bardziej szczegółowo

Zad. 4: Szablonu dla układu równań liniowych

Zad. 4: Szablonu dla układu równań liniowych Zad. 4: Szablonu dla układu równań liniowych 1 Cel ćwiczenia Wykształcenie zdolności definiowania szablonów funkcji i klas oraz abstrahowania operacji arytmetycznych od konkretnych typów. Unaocznienie

Bardziej szczegółowo

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb Zad. 3: Rotacje 2D 1 Cel ćwiczenia Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich struktur

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Przykłady oprogramowania wykorzystujacego Qt

Przykłady oprogramowania wykorzystujacego Qt Przykłady oprogramowania wykorzystujacego Qt Bogdan Kreczmer ZPCiR ICT PWR pokój 307 budynek C3 kreczmer@ict.pwr.wroc.pl Copyright c 2003 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

OCENIANIE ARKUSZA POZIOM PODSTAWOWY

OCENIANIE ARKUSZA POZIOM PODSTAWOWY Numer zadania.. Etapy rozwiązania zadania OCENIANIE ARKUSZA POZIOM PODSTAWOWY Zapisanie ceny wycieczki po podwyżce, np. x + 5% x, gdzie x oznacza pierwotną cenę wycieczki. Liczba punktów. Zapisanie równania:

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Elementy geometrii analitycznej w R 3

Elementy geometrii analitycznej w R 3 Rozdział 12 Elementy geometrii analitycznej w R 3 Elementy trójwymiarowej przestrzeni rzeczywistej R 3 = {(x,y,z) : x,y,z R} możemy interpretować co najmniej na trzy sposoby, tzn. jako: zbiór punktów (x,

Bardziej szczegółowo

Programowanie 2. Język C++. Wykład 3.

Programowanie 2. Język C++. Wykład 3. 3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane

Bardziej szczegółowo

Geometria analityczna - przykłady

Geometria analityczna - przykłady Geometria analityczna - przykłady 1. Znaleźć równanie ogólne i równania parametryczne prostej w R 2, któr przechodzi przez punkt ( 4, ) oraz (a) jest równoległa do prostej x + 5y 2 = 0. (b) jest prostopadła

Bardziej szczegółowo

Skrypt 19. Trygonometria: Opracowanie L3

Skrypt 19. Trygonometria: Opracowanie L3 Projekt Innowacyjny program nauczania matematyki dla liceów ogólnokształcących współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Skrypt 19 Trygonometria: 9. Proste

Bardziej szczegółowo

GEOMETRIA ANALITYCZNA. Poziom podstawowy

GEOMETRIA ANALITYCZNA. Poziom podstawowy GEOMETRIA ANALITYCZNA Poziom podstawowy Zadanie (4 pkt.) Dana jest prosta k opisana równaniem ogólnym x + y 6. a) napisz równanie prostej k w postaci kierunkowej. b) podaj współczynnik kierunkowy prostej

Bardziej szczegółowo

Matematyka rozszerzona matura 2017

Matematyka rozszerzona matura 2017 Matematyka rozszerzona matura 017 Zadanie 1 Liczba ( 3 + 3) jest równa A. B. 4 C. 3 D. 3 ( 3 + 3) = 3 ( 3)( + 3) + + 3 = A. 3 4 3 + + 3 = 4 1 = 4 = Zadanie. Nieskończony ciąg liczbowy jest określony wzorem

Bardziej szczegółowo

EGZAMIN MATURALNY Z MATEMATYKI

EGZAMIN MATURALNY Z MATEMATYKI Miejsce na naklejkę z kodem szkoły dysleksja MMA-R1_1P-07 EGZAMIN MATURALNY Z MATEMATYKI POZIOM ROZSZERZONY Czas pracy 180 minut Instrukcja dla zdającego 1 Sprawdź, czy arkusz egzaminacyjny zawiera 15

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Zad. 5: Sterowanie robotem mobilnym

Zad. 5: Sterowanie robotem mobilnym Zad. 5: Sterowanie robotem mobilnym 1 Cel ćwiczenia Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Tworzenie diagramu klas, czynności oraz przypadków użycia. Wykorzystanie

Bardziej szczegółowo

Programowanie, część I

Programowanie, część I 11 marca 2010 Kontakt Wstęp Informacje organizacyjne Materiał na ćwiczenia Plan wykładu http://www.fuw.edu.pl/~rwys/prog rwys@fuw.edu.pl tel. 22 55 32 263 Materiał na ćwiczenia Informacje organizacyjne

Bardziej szczegółowo

Geometria analityczna

Geometria analityczna Geometria analityczna Paweł Mleczko Teoria Informacja (o prostej). postać ogólna prostej: Ax + By + C = 0, A + B 0, postać kanoniczna (kierunkowa) prostej: y = ax + b. Współczynnik a nazywamy współczynnikiem

Bardziej szczegółowo

METODY MATEMATYCZNE I STATYSTYCZNE W INŻYNIERII CHEMICZNEJ

METODY MATEMATYCZNE I STATYSTYCZNE W INŻYNIERII CHEMICZNEJ METODY MATEMATYCZNE I STATYSTYCZNE W INŻYNIERII CHEMICZNEJ Wykład 3 Elementy analizy pól skalarnych, wektorowych i tensorowych Prof. Antoni Kozioł, Wydział Chemiczny Politechniki Wrocławskiej 1 Analiza

Bardziej szczegółowo

A,B M! v V ; A + v = B, (1.3) AB = v. (1.4)

A,B M! v V ; A + v = B, (1.3) AB = v. (1.4) Rozdział 1 Prosta i płaszczyzna 1.1 Przestrzeń afiniczna Przestrzeń afiniczna to matematyczny model przestrzeni jednorodnej, bez wyróżnionego punktu. Można w niej przesuwać punkty równolegle do zadanego

Bardziej szczegółowo

Zad. 5: Sterowanie dronem

Zad. 5: Sterowanie dronem 1 Cel ćwiczenia Zad. 5: Sterowanie dronem Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Tworzenie diagramu klas, czynności oraz przypadków użycia. Wykorzystanie dziedziczenia

Bardziej szczegółowo

Funkcja liniowa i prosta podsumowanie

Funkcja liniowa i prosta podsumowanie Funkcja liniowa i prosta podsumowanie Definicja funkcji liniowej Funkcja liniowa określona jest wzorem postaci: y = ax + b, x R, a R, b R a, b współczynniki funkcji dowolne liczby rzeczywiste a- współczynnik

Bardziej szczegółowo

AUTORKA: ELŻBIETA SZUMIŃSKA NAUCZYCIELKA ZESPOŁU SZKÓŁ OGÓLNOKSZTAŁCĄCYCH SCHOLASTICUS W ŁODZI ZNANE RÓWNANIA PROSTEJ NA PŁASZCZYŹNIE I W PRZESTRZENI

AUTORKA: ELŻBIETA SZUMIŃSKA NAUCZYCIELKA ZESPOŁU SZKÓŁ OGÓLNOKSZTAŁCĄCYCH SCHOLASTICUS W ŁODZI ZNANE RÓWNANIA PROSTEJ NA PŁASZCZYŹNIE I W PRZESTRZENI UTORK: ELŻBIET SZUMIŃSK NUCZYCIELK ZESPOŁU SZKÓŁ OGÓLNOKSZTŁCĄCYCH SCHOLSTICUS W ŁODZI ZNNE RÓWNNI PROSTEJ N PŁSZCZYŹNIE I W PRZESTRZENI SPIS TREŚCI: PROST N PŁSZCZYŻNIE Str 1. Równanie kierunkowe prostej

Bardziej szczegółowo

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Układ równań liniowych

Układ równań liniowych Układ równań liniowych 1 Cel zadania Wykształcenie umiejętności projektowania własnych klas modelujących pojęcia niezbędne do rozwiązania postawionego problemu. Rozwinięcie umiejętności przeciążania operatorów

Bardziej szczegółowo

Zad. 7: Sterowanie robotami mobilnymi w obecności przeszkód

Zad. 7: Sterowanie robotami mobilnymi w obecności przeszkód Zad. 7: Sterowanie robotami mobilnymi w obecności przeszkód 1 Cel ćwiczenia Utrwalenie umiejętności modelowania kluczowych dla danego problemu pojęć. Tworzenie diagramu klas oraz czynności. Wykorzystanie

Bardziej szczegółowo

KRYTERIA OCENIANIA Z MATEMATYKI W OPARCIU O PODSTAWĘ PROGRAMOWĄ I PROGRAM NAUCZANIA MATEMATYKA 2001 DLA KLASY DRUGIEJ

KRYTERIA OCENIANIA Z MATEMATYKI W OPARCIU O PODSTAWĘ PROGRAMOWĄ I PROGRAM NAUCZANIA MATEMATYKA 2001 DLA KLASY DRUGIEJ KRYTERIA OCENIANIA Z MATEMATYKI W OPARCIU O PODSTAWĘ PROGRAMOWĄ I PROGRAM NAUCZANIA MATEMATYKA 2001 DLA KLASY DRUGIEJ TREŚCI KSZTAŁCENIA WYMAGANIA PODSTAWOWE WYMAGANIA PONADPODSTAWOWE Liczby wymierne i

Bardziej szczegółowo

Zad. 5: Układ równań liniowych liczb zespolonych

Zad. 5: Układ równań liniowych liczb zespolonych Zad. 5: Układ równań liniowych liczb zespolonych 1 Cel ćwiczenia Wykształcenie zdolności abstrahowania operacji arytmetycznych od konkretnych typów. Unaocznienie problemów związanych z programowaniem uogólnionym

Bardziej szczegółowo

Praca kontrolna z matematyki nr 1 Liceum Ogólnokształcące dla Dorosłych Semestr 5 Rok szkolny 2014/2015

Praca kontrolna z matematyki nr 1 Liceum Ogólnokształcące dla Dorosłych Semestr 5 Rok szkolny 2014/2015 Praca kontrolna z matematyki nr 1 Liceum Ogólnokształcące dla Dorosłych Semestr 5 Rok szkolny 2014/2015 2 6 + 3 1. Oblicz 3. 3 x 1 3x 2. Rozwiąż nierówność > x. 2 3 3. Funkcja f przyporządkowuje każdej

Bardziej szczegółowo

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego Zad. 4: Rotacje 2D 1 Cel ćwiczenia Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich struktur

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

ODLEGŁOŚĆ NA PŁASZCZYŹNIE - SPRAWDZIAN

ODLEGŁOŚĆ NA PŁASZCZYŹNIE - SPRAWDZIAN ODLEGŁOŚĆ NA PŁASZCZYŹNIE - SPRAWDZIAN Gr. 1 Zad. 1. Dane są punkty: P = (-, 1), R = (5, -1), S = (, 3). a) Oblicz odległość między punktami R i S. b) Wyznacz współrzędne środka odcinka PR. c) Napisz równanie

Bardziej szczegółowo

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria Technologia Chemiczna 008/09 Zajęcia wyrównawcze. Pokazać, że: ( )( ) n k k l = ( n l )( n l k l Zajęcia nr (h) Dwumian Newtona. Indukcja. ). Rozwiązać ( ) ( równanie: ) n n a) = 0 b) 3 ( ) n 3. Znaleźć

Bardziej szczegółowo

Przykładowy zestaw zadań nr 1 z matematyki Odpowiedzi i schemat punktowania poziom podstawowy ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 1

Przykładowy zestaw zadań nr 1 z matematyki Odpowiedzi i schemat punktowania poziom podstawowy ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 1 Nr zadania Nr czynności. Przykładowy zestaw zadań nr z matematyki ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR Etapy rozwiązania zadania POZIOM PODSTAWOWY Obliczenie wyróżnika oraz pierwiastków trójmianu

Bardziej szczegółowo