Obliczenie pola wieloboku na podstawie współrzędnych wierzchołków

Podobne dokumenty
Pole trójkąta ze współrzędnych punktów : P1(x1,y1), P2(x2,y2), P3(x3,y3)

Programowanie w języku Python. Grażyna Koba

Obliczenie azymutów ze współrzędnych punktów tablica struktur punktów, tablica struktur azymutów

Obliczenie ciągów poligonowych otwartych, obustronnie nawiązanych

Transformacja współrzędnych przy 2 punktach dostosowania - przez wydłużenie i skręt lub transformacja liniowa

do instrukcja while (wyrażenie);

1 Podstawy c++ w pigułce.

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Ekonometria. Regresja liniowa, współczynnik zmienności, współczynnik korelacji liniowej, współczynnik korelacji wielorakiej

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

lekcja 8a Gry komputerowe MasterMind

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

- - Ocena wykonaniu zad3. Brak zad3

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Budowa i generowanie planszy

Język ludzki kod maszynowy

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Warsztaty dla nauczycieli

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Ekonometria. Regresja liniowa, współczynnik zmienności, współczynnik korelacji, współczynnik korelacji wielorakiej. Paweł Cibis

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

1 Powtórzenie wiadomości

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Wybierz polecenie z menu: Narzędzia Listy i dokumenty

1 Podstawy c++ w pigułce.

Obliczenie azymutu ze współrzędnych wersja C++ Builder

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

learningpanel - logowanie

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Podstawy Programowania

Podstawy i języki programowania

PROGRAM GEO Folder ten naleŝy wkleić do folderu osobistego: D:\inf1\nazwisko\GEO89

n, m : int; S, a, b : double. Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 1.03 Dla obliczenia Sij zdefiniować funkcję.

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

EGZAMIN MATURALNY Z INFORMATYKI 13 MAJA 2019 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

I. Podstawy języka C powtórka

Podstawy Programowania Podstawowa składnia języka C++

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

FUNKCJE MATEMATYCZNE, np. atan2(y,x);

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Metody numeryczne Laboratorium 2

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

Generator CABRILLO program Marka SP7DQR (Instrukcja obsługi)

3.4. Opis konfiguracji layoutów.

Programowanie strukturalne i obiektowe. Funkcje

EGZAMIN MATURALNY Z INFORMATYKI

Ćwiczenie 4 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Definicje. Algorytm to:

Wcięcie kątowe wstecz

EGZAMIN MATURALNY Z INFORMATYKI WYBRANE: ... (system operacyjny) ... (program użytkowy) ... (środowisko programistyczne)

Ekonometria. Modele regresji wielorakiej - dobór zmiennych, szacowanie. Paweł Cibis pawel@cibis.pl. 1 kwietnia 2007

Korespondencja seryjna

Część XV C++ Ćwiczenie 1

INSTRUKCJA OBSŁUGI KREATORA SKŁADANIA WNIOSKÓW

Algorytmy. dr Dariusz Banaś (UJK) Seminarium w ramach projektu Fascynujący Świat Nauki dla uczniów gimnazjów. wersja 0.9. Start.

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

MS Access 2010 instrukcja część Wstaw do tworzonego formularza wszystkie pola z tabeli wydzial:

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

C++ wprowadzanie zmiennych

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Instrukcja obsługi Kalkulator 15st.C ELATECH 2010

Lab 9 Podstawy Programowania

WHILE (wyrażenie) instrukcja;

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Struktury, unie, formatowanie, wskaźniki

Bazy danych kwerendy (moduł 5) 1. Przekopiuj na dysk F:\ bazę M5KW.mdb z dysku wskazanego przez prowadzącego

Programowanie strukturalne i obiektowe

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Pytania sprawdzające wiedzę z programowania C++

Warszawa dnia 2 stycznia 2011 r. Zbiór zadań z programowania w języku C do samodzielnego wykonania

PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki <stdio.h>

2 Przygotował: mgr inż. Maciej Lasota

Podstawy Programowania C++

// Funkcja glowna int main() { // zmienne int kont='t'; double x1, y1, x2, y2, x3, y3, a, b, c, p1, p2, p3, pole, ha, hb, hc;

Orientacja pojedynczego zdjęcia

Obliczenie powierzchni w C-Geo. Działki, użytki

Program EWIDENCJA ODZIEŻY ROBOCZEJ INSTRUKCJA UŻYTKOWNIKA Przejdź do strony producenta programu

Algorytm. a programowanie -

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Algorytmika i programowanie

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Transkrypt:

Obliczenie pola wieloboku na podstawie współrzędnych wierzchołków Algorytmy 1. Metoda pierwsza wzory Gaussa - dla każdego punktu mnożymy współrzędną przez różnicę drugich współrzędnych punktu następnego i poprzedniego i tworzymy sumę, która jest podwójnym polem 2. Metoda druga - sposób wyznacznikowy Suma wszystkich wyznaczników drugiego stopnia z 2 sąsiednich wierszy wykazu współrzędnych daje podwójne pole. Bierzemy pod uwagę punkt i punkt następny, czyli dla ostatniego trzeba dopisać pierwszy. Wartość wyznacznika liczymy wg zasady: W = a b c d W = a*d c*b lub W = a*d b*c Wzór na pole wieloboku metodą wyznacznikową: 2P = x1 y1 x2 y2 x3 y3.. xi y1 X (i+1) Y (i+1) x m y m x1 y1 czyli: 2P=x1*y2-x2*y1 + x2*y3-x3*y2 + x(i)*y(i+1)-x(i+1)*y(i)..+xm*y1-x1*ym Specyfikacja problemu algorytmicznego obliczenia pola metodą Gaussa: Problem algorytmiczny: Obliczenie pola powierzchni wieloboku zamkniętego na podstawie współrzędnych wierzchołków Dane wejściowe: Wykaz numerów i współrzędnych punktów. Dane wpisywane do tablic TabN[rozmiar], TabX[rozmiar], TabY[rozmiar]. Stałą rozmiar przyjęto 100. Dane wyjściowe: s1 = 2*P, s2=-2p, pole jako 0.25(s1+s2). Wyniki wyprowadzane na ekran i do pliku.

Algorytm funkcji głównej programu PWXY_kp.cpp pole działki na podstawie danych z klawiatury lub pliku zapisany w postaci listy kroków 1. Wyświetl nagłówek programu i opcje: 1 dane z klawiatury, 2- z pliku, 3 wyjście 2. Wczytaj opcję wyboru opcja 3. Jeśli opcja = 1 to wywołaj funkcję pwielklaw() w przeciwnym przypadku uruchom funkcje pwielplik() 4. Jeśli opcja wyboru różna od 3 to wróć do kroku 1 5. Zakończ program Pseudokod obliczania pola dane z klawiatury Funkcja pwielklaw() dane z klawiatury, wyniki do pliku, metoda Gaussa Lista kroków programu głównego - pseudokod programu napisanego w C++, wersja Dev C++ - definicja tablicy po wprowadzeniu wymiaru przez użytkownika 1.Wyświetl nagłówek programu I wzór obliczeń 2. Otwórz plik wyników PolaWyn.txt zadeklarowany jako stała

3. Zapisz nagłówek programu I wzór obliczeń do pliku 4. Powtarzaj w pętli do { // początek pętli do 5. wprowadź ilość n punktów działki 6. Jeśli ilość n = 0 to wyjdź z pętli 7. Oblicz rozmiar tablic: rozmiar=n+2 7. Zdefiniuj tablice : long tabn[rozmiar]; - tablica numerów, float tabx[rozmiar], taby[rozmiar]; - tablice Współrzędnych 8. Podstaw za zmienne float s1=0, s2=0; int suma = 0; 9. Podaj nazwę działki (wieloboku zamkniętego) 10. W pętli wewnętrznej for od 1 do n pobierz kolejne (o wskaźnikach i) numery punktów i współrzędne X, Y, zapisz do tablic : tabn[i], tabx[i], taby[i]; 11. Przypisz następujące wartości elemantom tablic o numerach 0 i (n+1): tabn[0]=tabn[n]; tabx[0]=tabx[n]; taby[0]=taby[n]; tabn[n+1]=tabn[1]; tabx[n+1]=tabx[1]; taby[n+1]=taby[1]; 12. Wyświetl nagłówek: Wykaz Nr X Y i zapisz do pliku 13. W pętli od 1 do n wyświetlaj i drukuj do pliku numery i współrzędne punktów oraz obliczaj bieżące sumy pól s1 i s2: for(int i=1; i<=n+1; i++ ) s1=s1+ tabx[i]*(taby[i+1]-taby[i-1]); s2=s2+ taby[i]*(tabx[i+1]-tabx[i-1]); 14. Zamień pole ujemne s2 na dodatnie 15. Wyświetla pola: 2p = s1 i -2P oraz nazwę i pole średnie działki równe 0.25*(s1+s2) } while (n >0); // koniec pętli do 16. Wróć do punktu 5 początku pętli do wprowadzenie ilości punktów działki, jeśli 0 to koniec petli 17. Już poza pętlą obliczeń zamknięcie pliku wyników 18. Wyświetla nazwę pliku wyników i żądanie naciśnięcia jakiegoś klawisza 19. Czeka na klawisz Enter 20. Zamyka program z kodem powrotu 0 Przykłady wyników programu 2 2 100 0 3 3 100 100 4 4 0 100 Działka: dz1 Pole = 10000 1 11 0 0 2 2 10 0 3 3 10 10 Działka: dz2 Pole = 50 Funkcja pwielplik() dane z pliku danych, wyniki do pliku wyników Algorytm taki sam jak w poprzednim programie. Dane są czytane z pliku. Kolejność danych: 1) Ilość punktów działki n - jeśli 0 to koniec danych 2) Nazwa działki (może być napis ale bez spacji 3) NrPkt(i) X(i) Y(i) dla i=1..n Powtarzamy dane od punktu 1) - 0 - koniec Przykład danych nr1 3 Dz1 1 0 0 2 1 0 3 1 1 4 Dz2 1 0 0

2 1 0 3 1 1 4 0 1 0 Wyniki nr1 Obliczenie 1 Działka: Dz1 Ilość punktów: 3 2 2 1 0 3 3 1 1 2P= 1-2P=-1 Działka: Dz1 Pole = 0.5 Obliczenie 2 Działka: Dz2 Ilość punktów: 4 2 2 1 0 3 3 1 1 4 4 0 1 2P= 2-2P=-2 Działka: Dz2 Pole = 1 Przykład danych nr 2 6 Prz_Tabl_6-34 1 798.26 102.12 2 603.25 501.33 3 198.93 599.20 4 101.18 200.32 5 200.00-103.13 6 602.13-201.26 0 Wyniki nr 2 Obliczenie 1 Działka: Prz_Tabl_6-34 Ilość punktów: 6 1 1 798.26 102.12 2 2 603.25 501.33 3 3 198.93 599.2 4 4 101.18 200.32 5 5 200-103.13 6 6 602.13-201.26 2P= 773043-2P=-773043 Działka: Prz_Tabl_6-34 Pole = 386521 Przykład obliczenia pola wieloboku met. Gaussa w Excelu

2P = Suma Xi * (Yi+1 - Yi-1); Wzór kontrolujący -2P = Suma Yi * (Xi+1 - Xi-1); P= P/2 gdzie P pole; i-1 - wskaźnik punktu poprzedniego; i+1 - wskaźnik punktu następnego; i - wskaźnik punktu bieżącego; X, Y współrzędne