Problem algorytmiczny: Obliczenie azymutów i długości, gdy dana jest tablica współrzędnych punktów (Nr X Y). Dane we jściowe:
Tablica numerów i współrzędnych punktów (numery - liczby całkow ite, współrzędne X, Y typu double)
Dane w yjściowe: długości boków, azymuty wektorów Pi-Pi+1 - w gradach, stopniach (liczba jako dziesiętne stopnia), stopnie całkowite, minuty i sekundy oraz azymut odwrotny wektora Pi+l-Pl - wyświetlone na ekranie fonnułarza obliczeniowego (wersja obiektowa - C++ Builder).
Szkic do obliczeń azymutu:
Odległość:
d=sqrt(Dx*Dx+Dy*Dy);
Tradycyjnie - obliczenia ręczne - dodatkowo liczy' się: d=DX/cos(Az); d=DY/sin(Az);
Azymut
Zastosowano w programie funkcję atan2(dy,dx), gdzie dx. dy - przyrosty w spółrzędnych az2 = atan2(Dy, Dx) - funkcja biblioteczna języka C
Program napisano i skompilowano w z wykorzystaniem aplikacji Borland C++ Builder 6 Personal.
1. Formularz programu zawiera blok DANE - komponent StringGrid - tabela do wprowadzenia numerów współrzędnych punktów, suwak do wprowadzenia ilości wierszy - komponent ScrollBar, komponent Edit - wyświetla ilość wierszy, komponenty Label - etykiet opisowe (napisy) oraz przyciski: do wypełnienia tabeli zerami, do uruchomienia obliczeń: i przycisk wyjścia z programu.
2. Po uruchomieniu programu pojawia się Formularz, na nim 2 wiersze do wprowadzenia ilości wierszy (punktów ).
Ilość te można zmienić przy pomocy suwaka. Naciśnięcie klawisza KONIEC powoduje wyjście z programu.
2. W pola Nr X Y należy wpisać odpowiednie dane. Naciśnięcie przycisku Wypełnij lub Oblicz wypełnia puste pola zerami.
3. Po naciśnięciu przycisku Oblicze obliczane są azymuty i długości oraz wyświetlane na ekranie.
4. Azymuty są obliczane przy pomocy funkcji atan2(dy,dx) i zamieniane na grady oraz miarę stopniową.
Przykład obliczeń - kopia ekranu