Przykładowy algorytm geometryczny (geometria płaska)

Slides:



Advertisements
Podobne prezentacje
OBLICZENIA NUMERYCZNE
Advertisements

Tablice 1. Deklaracja tablicy
Funkcje tworzące są wygodnym narzędziem przy badaniu zmiennych losowych o wartościach całkowitych nieujemnych. Funkcje tworzące pierwszy raz badał de.
Grażyna Mirkowska PJWSTK, 10 stycznia 2001
JEJ WŁASNOŚCI ORAZ RODZAJE
Funkcje Barbara Stryczniewicz.
Algorytmy rastrowe Algorytmy konwersji Rysowanie odcinków
Algorytmy – zapis struktur programowania
Geograficzne bazy danych
Języki programowania C++
PROGRAMOWANIE STRUKTURALNE
Badania operacyjne. Wykład 2
Instrukcje warunkowe Zajęcia 5.
ZŁOŻONOŚĆ OBLICZENIOWA
ALGORYTMY GEOMETRYCZNE.
Instrukcje Instrukcja : definicja obliczenia i określenie sposobu wykonania tego obliczenia. Program : ciąg instrukcji wykonywanych kolejno od pierwszej.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
PODSTAWY JĘZYKA PHP 1. czym jest 2. składnia 3. wersje 4. bazy danych
Podstawy programowania PP – WYK5 Wojciech Pieprzyca.
Podstawy programowania PP - LAB1 Wojciech Pieprzyca.
Wykład 2 struktura programu elementy języka typy zmienne
Wyrażenia Wyrażenie w Fortranie jest poprawną syntaktycznie kombinacją zmiennych, stałych, operatorów i funkcji. Wyrażenia są jednozdaniowymi przepisami.
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
Metody matematyczne w Inżynierii Chemicznej
nowe operatory & . (kropka) * operator rzutowy -> , (przecinek)
Podstawy programowania
Informatyka I Wykład 5 OPERATORY Priorytety i kolejność obliczeń
Programowanie w języku Matlab
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Metody matematyczne w inżynierii chemicznej
TABLICE C++.
Programowanie w języku Matlab
II Zadanie programowania liniowego PL
PHP: warunki, pętle, switch, break, continue
Programowanie Windows na przykładzie C# część 1
Programowanie strukturalne i obiektowe
STEROWANIE Ale nie tylko
C# Platforma .NET CZ.3 Kuba Ostrowski.
Elżbieta Fiedziukiewicz
Podstawy informatyki 2013/2014
INSTRUKCJE Umożliwiają zapis algorytmu, służą do sterowania przebiegiem programu. warunkowe (podejmowanie decyzji) 1. if-else „jeżeli”, 2. switch-case.
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
Kurs języka C++ – wykład 9 ( )
II Zadanie programowania liniowego PL
MOiPP Wykład 7 Matlab cd..
Podstawy języka Instrukcje - wprowadzenie
Podstawy programowania
Funkcje Barbara Stryczniewicz Co z tym zrobisz Ćwiczenia wstępne Opis funkcji,elementy Własności funkcji 4 Sposoby przedstawiania funkcji 5.
Wypełnianie obszaru.
Metody matematyczne w inżynierii chemicznej Wykład 3. Całkowanie numeryczne.
Iteracje w C# Informatyka Cele lekcji: Wiadomości: Uczeń potrafi:
Grafika i komunikacja człowieka z komputerem
1 Zagadnienia na egzamin. 2 Język C podsumowanie Struktura programu w języku C Zmienne, Stałe Operacje arytmetyczne Operatory logiczne Priorytety operatorów.
dr Zofia Skrzypczak Wydział Zarządzania UW
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
1 Opisy funkcji Adres strony WWW : html (należy odszukać hyperlink Function Index) (
Pakiety numeryczne Operatory, instrukcje sterujące, operacje bitowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Geometria na płaszczyźnie kartezjańskiej
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Figury płaskie Układ współrzędnych.
Figury płaskie.
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C
Przykładowy algorytm geometryczny (geometria płaska)
Dane, zmienne, instrukcje
Zapis prezentacji:

Przykładowy algorytm geometryczny (geometria płaska) Czy odcinki AB oraz CD mają punkt wspólny, czyli czy przecinają się? A(x1,y1) B(x2,y2) C(x3,y3) D(x4,y4) następujące cztery KONIECZNE warunki muszą być spełnione

Przykładowy algorytm geometryczny (geometria płaska) Dodatkowo z1 i z2 muszą być przeciwnego znaku, lub jedno z nich musi być równe zeru; znaki z1 i z2 określają, czy (x3,y3) i (x4,y4) są na prawo, czy na lewo od wektora AB. Należy wyobrazić sobie wektor AB jako wskazówkę obracającą się wokół punktu A; obrót zgodny ze wskazówkami zegara jest dodatni. z1=(x3-x1)(y2-y1) – (y3-y1)(x2-x1) z2=(x4-x1)(y2-y1) – (y4-y1)(x2-x1)

Inny algorytm geometryczny: ”march of Jarvis” Algorytm ten (po polsku pochód czy obrys Jarvisa) służy do znalezienia obrysu wypukłego danego zbioru punktów na płaszczyźnie, czyli do znalezienia najmniejszego wielokąta wypukłego zawierającego wszystkie punkty zbioru. Najistotniejszą częścią algorytmu jest rozpoznawanie, czy dany punkt znajduje się na prawo, czy na lewo od danego wektora (w takim samym znaczeniu jak w poprzednim algorytmie) (można poszukać w Internecie hasła ”Jarvis march” ) http://www.cs.princeton.edu/courses/archive/spr09/cos226/demo/ah/JarvisMarch.html http://www.personal.kent.edu/~rmuhamma/Compgeometry/MyCG/ConvexHull/jarvisMarch.htm

Inny algorytm geometryczny: ”march of Jarvis” W algorytmie tym wylicza się czy dany punkt Pn(Xn,Yn) znajduje się na lewo czy na prawo od wektora [P0,Pc] ; początek i koniec wektora mają współrzędne P0(X0,Y0) oraz Pc(Xc,Yc) . Obracamy wektor wokół punktu P0. Wyliczamy z; jeśli z jest dodatnie to Pn jest na prawo, jeśli ujemne to na lewo. z = (Xn-X0)*(Yc-Y0) – (Yn-Y0)*(Xc-X0) Pc . Pn P0

Możliwość „mieszania” języków programowania W przypadku „rodziny” kompilatorów GNU taka możliwość „mieszania” jest przygotowana. Można np. z wnętrza programu napisanego w języku Fortran wywołać funkcję napisaną w języku C. Załączony przykład składa się z dwóch plików źródłowych: przekaz1.f przekaz2.c Kompilacja: gcc przekaz2.c –c Kompilacja: f77 przekaz1.f –c Linker: f77 przekaz1.o przekaz2.o –o przekaz.exe Wykonanie: przekaz.exe

Możliwość „mieszania” języków programowania Kolejny przykład: program w C woła procedurę napisaną w Fortranie. fnot1.c fnot2.f Kompilacja: gcc fnot1.c –c Kompilacja: f77 fnot2.f –c Linker: gcc fnot1.o fnot2.o –o fnot.exe Wykonanie: fnot.exe

Zagadnienia na egzamin

Język C podsumowanie Struktura programu w języku C Zmienne, Stałe Operacje arytmetyczne Operatory logiczne Priorytety operatorów Instrukcje warunkowe (if, ?: , switch) Pętle (for, while, do-while, instrukcje break i continue) Macierze i łańcuchy znakowe (także macierze wielowymiarowe)

Język C podsumowanie /* Alokuje pamiec na macierz n*n */ double **matrixalloc(int n) { int i; double ** bufor; bufor = malloc(n*sizeof(double *)); for(i=0; i<n; i++) bufor[i] = malloc(n*sizeof(double)); return bufor; } /* koniec */ .... double **alfa; alfa = matrixalloc(10);

Język C podsumowanie Funkcje, prototypy funkcji Struktury, unie Rzutowanie na typ Klasy pamięci zmiennych i funkcji Zasięg zmiennej, zasięg funkcji Wskaźniki, macierze, funkcje Dynamiczna alokacja pamięci (malloc,calloc, sizeof, free) Argumenty wiersza wywołania programu Operatory arytmetyczne, logiczne Operatory bitowe, pola bitowe

Język C podsumowanie Preprocesor języka C (makra) Funkcje wejścia/wyjścia(buforowane, niebuforowane, formatowane, bezformatowe) Typ enum Instrukcja typedef Kwalifikatory const, volatile Czytanie deklaracji obiektów w języku C

Koniec zagadnień na egzamin