Aplikacje geodezyjne



Podobne dokumenty
Ćwiczenie VB3.4 Struktura Try...Catch, obiekt Err, metoda Err.Raise (Strukturalna obsługa wyjątków)

Platforma.NET laboratorium 1. Visual Basic.NET podstawowe elementy języka. Wykonanie warunkowe If End If

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min)

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Tablice, DataGridView

Ten odcinek Akademii PC Kuriera poświęcony zostanie tworzeniu i wykorzystaniu funkcji i procedur w języku Visual Basic.NET.

DataGridView. Aby dodawać kolumny wybieramy z listy zadań Add Column..., co wywoła okno dodawania kolumn, rys. 2. Rysunek 1

01 grid tablica grid. Copyright 2017, mgr inż. Janusz Bonarowski 1

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Informatyka II. Laboratorium Aplikacja okienkowa

wstawianie przycisków umożliwiających wybieranie wartości poprzez klikanie strzałek

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Wyszukiwanie największej spośród czterech liczb. Przykładowe rozwiązanie

Class1.vb. _Dlugosc_stopnia = value End Set End Property Public Property Faza As Single Get Return _Faza End Get

Visual Basic: Tablice, sortowanie, r. ak. 2014/2015

Podstawy projektowania interfejsu aplikacji, metody zdarzeniowe

Podstawy informatyki

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

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Technologie informacyjne

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Instrukcja laboratoryjna nr.4

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

Palindromy. Przykładowe rozwiązanie

Ilość cyfr liczby naturalnej

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Ćwiczenie laboratoryjne. Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005

Visual Basic dla AutoCAD

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

VBA w Excel Lekcja ta ma przybliżyć pojęcia związane z programowaniem w pakiecie Office. Poniższe przykłady związane są z wersją Office2007.

Visual Basic for Applications. Formatki tworzenie,

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Zadanie. Menu Plik niech posiada dwie pozycje: Tekstowy i Excel, a każda z nich niech posiada dwie pozycje Otwórz i Zapisz, patrz rys. 2.

Zaawansowane aplikacje internetowe - laboratorium

Algorytmika i Programowanie VBA 1 - podstawy

Programowanie w VB Proste algorytmy sortowania

Instrukcje cykliczne (pętle) WHILE...END WHILE

Zdarzenie Zachodzi gdy Kolejność zdarzeń Kolejność Zdarzenie Opis uwaga: CausesValidation True.

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

Aplikacja MDI. Rysunek 1. Tworzenie nowego projektu

9. Wymiarowanie. 9.1 Wstęp. 9.2 Opis funkcje wymiarowania. Auto CAD

Działki Przygotowanie organizacyjne

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Matlab - tworzenie graficznego interfejsu użytkownika GUI - Graphic User Interface

Ćwiczenie 25 Działania matematyczne we Flashu

Praca z bazą danych. Rysunek 1. Projekt tabeli UZYTKOWNIK bazy KURSY

Dodanie nowej formy do projektu polega na:

Języki i metody programowania Java Lab2 podejście obiektowe

Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.

Delphi podstawy programowania. Środowisko Delphi

3 Delegacje. 3.1 Tworzenie delegacji. 3.2 Skojarzenie delegacji z procedurą czy funkcją

VBA praca z makrami w Excelu: piszemy kod! Ulepszamy program! 0. Parę uwag o samym edytorze

Programowanie Obiektowe GUI

Języki skryptowe w programie Plans

4.1. Analiza AWN jest dokonywana na poziomie VBA

Aplikacje w środowisku Java

Ekran główny lista formularzy


Właściwości i metody obiektu Comment Właściwości

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

Janusz Górczyński. Wprowadzenie do programowania obiektowego w VB.NET

Wprowadzenie do programowania w VBA

Pętle instrukcje powtórzeo

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Instrukcje sterujące. Programowanie komputerowe

3.4. Opis konfiguracji layoutów.

MS Access formularze

MsgBox(Komunikat [, Przyciski] [, Tytuł] [, PlikHelp, HelpContext])

ZARZĄDZANIE WYDRUKIEM ETYKIET

wprowadź poniższy kod (Uwaga: powyższy kod powinien zostać zapisany w dwóch liniach):

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

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

Visual Basic for Applications. Wstęp

SYSTEM ZARZĄDZANIA DANYMI OSOBOWYMI - INSTRUKCJA UŻYTKOWNIKA

Laboratorium z informatyki sem.iii/ćw. 4 Wydział Transportu PW /19

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Modelowanie i obliczenia statyczne kratownicy w AxisVM Krok po kroku

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Pętle. Programowanie komputerowe

PRACA Z FORMULARZAMI UserForm

Tworzenie okna dialogowego w edytorze raportu SigmaNEST. część 1

Materiały do laboratorium MS ACCESS BASIC

Technologia informacyjna programowanie Janusz Uriasz

Dostęp ze strony głównej-> wchodzimy Umowy na realizacje świdczeń -> Pokaż więcej

Bazy Danych. Wykład VII Makropolecenia. Copyright by Arkadiusz Rzucidło 1

Utworzenie interfejsu graficznego za pomocą formularza użytkownika w VBA

W Y ś S Z A S Z K O Ł A I N F O R M A T Y K I

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS , Comarch DMS i Comarch DMS

Windows Workflow Foundation (wprowadzenie - prosty przykład Sequential Workflow):

Wprowadzenie do systemu Delphi

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Ćwiczenie 7. Matlab formularze, komponenty

STWORZENIE MOBILNEJ APLIKACJI,

JAVA CZ.2 Programowanie obiektowe. poniedziałek, 20 kwietnia 2009

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Ćwiczenia 9 - Swing - część 1

MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

Aplikacje WWW - laboratorium

Laboratorium Programowania Kart Elektronicznych

Transkrypt:

Aplikacje geodezyjne 1. Azymut ze współrzędnych Utwórz nowy projekt o nazwie Azymut. W oknie rozmieść kontrolki mniej więcej zgodnie z rysunkiem. Obiekty mają zmienione następujące wartości cech: cecha Name: - okno ma nazwę P4; - przyciski mają nazwy odpowiednio koniec_prz, azymut_rz, wyczysc_prz; - etykieta ma nazwę: azymut_ety, pozostałe można zostawić domyślne; - pola tekstowe mają nazwy odpowiednio: xk_txt, yk_txt, xp_txt, yp_txt. cecha Text: wszystkie obiekty zgodnie z wyglądem w oknie programu. cecha TextAlign: wszystkie pola tekstowe mają ustawioną wartość na = Center. cecha BorderStyle: etykieta azymut_ety ma ustawioną wartość na = FixedSingle. W kodzie programu zwróć uwagę na elementy generowane automatycznie przez VB, tzn. zastanów się co należy przepisać, a co wygenerować. Public Class P4 Dim xk, xp As Single Dim yk, yp As Single Dim azymut As Double Private Sub koniec_prz_click(sender As System.Object, e As System.EventArgs) Handles koniec_prz.click End 1/8

Private Sub wyczysc_prz_click(sender As System.Object, e As System.EventArgs) Handles wyczysc_prz.click xp_txt.text = "" yp_txt.text = "" xk_txt.text = "" yk_txt.text = "" azymut_ety.text = "" Private Sub azymut_prz_click(sender As System.Object, e As System.EventArgs) Handles azymut_prz.click Dim dx, dy As Single If xp_txt.text = "" Or xk_txt.text = "" Or yp_txt.text = "" Or yk_txt.text = "" Then MsgBox("Co najmniej jedna współrzędna nie została wpisana!", 16, "Błąd współrzędnych") Exit Sub If xp_txt.text = xk_txt.text And yp_txt.text = yk_txt.text Then MsgBox("Błąd, nie ma azymutu!", 16, "Błąd współrzędnych") Exit Sub xk = Val(xk_txt.Text) xp = Val(xp_txt.Text) yk = Val(yk_txt.Text) yp = Val(yp_txt.Text) dx = xk - xp dy = yk - yp If dx = 0 And dy > 0 Then azymut = 100 ElseIf dx = 0 And dy < 0 Then azymut = 300 ElseIf dx > 0 And dy = 0 Then azymut = 0 ElseIf dx < 0 And dy = 0 Then azymut = 200 ElseIf dx <> 0 And dy <> 0 Then azymut = Math.Atan(dy / dx) azymut = azymut * 200 / Math.PI If azymut < 0 Then azymut = -azymut If dx < 0 And dy > 0 Then azymut = 200 - azymut If dx < 0 And dy < 0 Then azymut = 200 + azymut If dx > 0 And dy < 0 Then azymut = 400 - azymut azymut_ety.text = Format(azymut, "0.0000 gradów") Private Sub xk_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles xk_txt.keypress Private Sub yk_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles yk_txt.keypress 2/8

Private Sub xp_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles xp_txt.keypress Private Sub yp_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles yp_txt.keypress End Class Zaimplementowany został mechanizm zabezpieczenia przed wpisaniem znaku, nie będącego elementem sterującym, cyfrą, separatorem dziesiętnym lub myślnikiem. Zadanie: W wolnym miejscu formy wstaw PictureBox o rozmiarach 700 x 700. Jeśli zajdzie taka potrzeba zwiększ rozmiar formy. Parametr Name pola obrazów powinien brzmieć wykres. W wywołaniu: Private Sub azymut_prz_click(sender As System.Object, e As System.EventArgs) Handles azymut_prz.click wpisz: xp1 = yp yp1 = -xp xk1 = yk yk1 = -xk With wykres.creategraphics.drawline(pens.red, xp1 + 350, yp1 + 350, xk1 + 350, yk1 + 350).DrawLine(Pens.Black, 0, 350, 700, 350).DrawLine(Pens.Black, 350, 0, 350, 700) End With W wywołaniu: Private Sub wyczysc_prz_click(sender As System.Object, e As System.EventArgs) Handles wyczysc_prz.click wpisz: With wykres.creategraphics.clear(color.white) End With Dodatkowo ustaw parametr BackColor pola graficznego na White i pamiętaj o zdefiniowaniu nowych zmiennych: Dim xk1, xp1 As Single Dim yk1, yp1 As Single 3/8

Zwróć uwagę na definicję współrzędnych linii. Czarne linie wyznaczają osie układu współrzędnych, czerwona linia generowana jest na podstawie danych użytkownika. Przesunięcie jest związane z koniecznością kompensacji początku układu współrzędnych okna graficznego, który znajduje się w lewym górnym narożniku. Dodatkowo linia musi być obrócona o 90 stopni lewoskrętnie ze względu na konieczność dopasowania układu współrzędnych do standardu przyjętego w matematyce, czyli oś y skierowana w górę, a x w prawą stronę. Zadanie do wykonania to rozwiązanie problemu skalowania dla współrzędnych xp, yp, xp i yk przekraczających możliwy do wykreślenia zakres (-350, 350) oraz skalowanie linii " w górę" dla znikomych wartości współrzędnych. W tym drugim przypadku należy wyznaczyć wartość maksymalną i na niej opierać obliczenia. Zadanie: Rozbuduj program o informację o długości odcinka na podstawie danych wprowadzanych przez użytkownika oraz przekonwertuj grad na stopnie. Obliczeń dokonaj przed skalowaniem na potrzeby rysowania. Wynik końcowy powinien się prezentować mniej więcej jak na rysunku. 2. Pole powierzchni i obwód figury geometrycznej Na podstawie poprzedniego zadania stwórz formatkę zgodnie z rysunkiem. 4/8

Obiekty mają zmienione następujące wartości cech: cecha Name: - okno ma nazwę P4; - przyciski mają nazwy odpowiednio koniec_prz, oblicz_rz, wyczysc_prz; - etykiety mają nazwy: obwod_ety, pole_ety, pozostałe można zostawić domyślne; - pola tekstowe mają nazwy odpowiednio: x1_txt, y1_txt, x2_txt, y2_txt, x3_txt, y3_txt. cecha Text: wszystkie obiekty zgodnie z wyglądem w oknie programu. cecha TextAlign: wszystkie pola tekstowe mają ustawioną wartość na = Center. cecha BorderStyle: etykiet pole_ety i obwod_ety ma ustawioną wartość na = FixedSingle. Podczas wprowadzania kodu programu weź pod uwagę, że Visual Basic automatycznie generuje część kodu. Możesz korzystać z kopii poprzedniego projektu, co jest opcją polecaną. Public Class P4 Dim x1, x2, x3 As Single Dim y1, y2, y3 As Single Dim xx1, xx2, xx3 As Single Dim yy1, yy2, yy3 As Single Dim pole As Double Dim obwod As Double Private Sub koniec_prz_click(sender As System.Object, e As System.EventArgs) Handles koniec_prz.click End Private Sub wyczysc_prz_click(sender As System.Object, e As System.EventArgs) Handles wyczysc_prz.click x1_txt.text = "" y1_txt.text = "" x2_txt.text = "" y2_txt.text = "" x3_txt.text = "" 5/8

y3_txt.text = "" pole_ety.text = "" obwod_ety.text = "" With wykres.creategraphics.clear(color.white) End With Private Sub oblicz_prz_click(sender As System.Object, e As System.EventArgs) Handles oblicz_prz.click Dim dx, dy As Single If x1_txt.text = "" Or x2_txt.text = "" Or y1_txt.text = "" Or y2_txt.text = "" Or x3_txt.text = "" Or y3_txt.text = "" Then MsgBox("Co najmniej jedna współrzędna nie została wpisana!", 16, "Błąd współrzędnych") Exit Sub x1 = Val(x1_txt.Text) x2 = Val(x2_txt.Text) x3 = Val(x3_txt.Text) y1 = Val(y1_txt.Text) y2 = Val(y2_txt.Text) y3 = Val(y3_txt.Text) pole = (x1 * y2 - y1 * x2) + (x2 * y3 - y2 * x3) + (x3 * y1 - y3 * x1) 'pole = (x2 - x3) * y1 + (x3 - x1) * y2 + (x1 - x2) * y3 pole = pole / 2 If pole < 0 Then pole = -pole obwod = Math.Sqrt(Math.Pow((x2 - x1), 2) + Math.Pow((y2 - y1), 2)) + Math.Sqrt(Math.Pow((x3 - x2), 2) + Math.Pow((y3 - y2), 2)) + Math.Sqrt(Math.Pow((x1 - x3), 2) + Math.Pow((y1 - y3), 2)) pole_ety.text = Format(pole, "0.0000") obwod_ety.text = Format(obwod, "0.0000") While Math.Abs(x1) > 350 Or Math.Abs(y1) > 350 Or Math.Abs(x2) > 350 Or Math.Abs(y2) > 350 Or Math.Abs(x3) > 350 Or Math.Abs(y3) > 350 x1 = x1 / 1.5 y1 = x1 / 1.5 x2 = x2 / 1.5 y2 = y2 / 1.5 x3 = x3 / 1.5 y3 = x3 / 1.5 End While xx1 = y1 yy1 = -x1 xx2 = y2 yy2 = -x2 xx3 = y3 yy3 = -x3 With wykres.creategraphics.drawline(pens.red, xx1 + 350, yy1 + 350, xx2 + 350, yy2 + 350).DrawLine(Pens.Red, xx2 + 350, yy2 + 350, xx3 + 350, yy3 + 350).DrawLine(Pens.Red, xx3 + 350, yy3 + 350, xx1 + 350, yy1 + 350).DrawLine(Pens.Black, 0, 350, 700, 350).DrawLine(Pens.Black, 350, 0, 350, 700) End With Private Sub x1_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles x1_txt.keypress 6/8

7/8 Opracował: Damian Krzesimowski Private Sub y1_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles y1_txt.keypress Private Sub x2_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles x2_txt.keypress Private Sub y2_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles y2_txt.keypress Private Sub x3_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles x3_txt.keypress Private Sub y3_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles y3_txt.keypress Private Sub x4_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Private Sub y4_txt_keypress(byval sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)

End Class W programie zrealizowane są te same zabezpieczenia i konwersje, co w poprzednim projekcie. Efekt końcowy powinien być podobny do przedstawionego na rysunku. Zadanie: Rozbuduj aplikację o możliwość operowania na trójkącie lub czworokącie. Wykorzystaj kontrolkę CheckBox lub RadioButton. Zwróć uwagę na konieczność kontroli kolejności punktów, z których składać się będzie czworokąt. Ma to na celu zapobieżenie przecięciu się odcinków. 8/8