Nwerty Temat założony przez niniejszego użytkownika |
Działania na współrzędnych geograficznych » 2011-10-25 17:03:31 Witam! Wczoraj postanowiłem rozpocząć naukę programowania w C++. Przerobiłem pierwszą część kursu, i aby utrwalić wiedzę postanowiłem pisać, bawić się zdobytą wiedzą. Postanowiłem napisać banalną aplikację, która obliczała by dewiację z wprowadzonych danych. I tutaj pojawia się mój problem. Część danych powinna być podawana w stopniach, minutach i sekundach (075°06'00") aby wynik był jak najdokładniejszy. Jakich bibliotek i typu danych powinienem użyć, aby umożliwić wprowadzanie danych właśnie w takim formacie? Prosiłbym o jak najdokładniejsze wytłumaczenie tego problemu, jako iż wciąż jestem na poziomie bardzo podstawowym.
P.S Użycie stopni dziesiętnych (np. 075,1°) odpada ze względy na zbyt duże zaokrąglanie.
Pozdrawiam. |
|
DejaVu |
» 2011-10-25 17:07:53 Mając za sobą poziom pierwszy nie wiesz praktycznie nic o programowaniu. Ponadto tego kółka reprezentującego stopnie nie wprowadzisz z klawiatury, więc polecam jeszcze raz przemyśleć pomysł napisania takiego programu. |
|
Nwerty Temat założony przez niniejszego użytkownika |
» 2011-10-25 17:14:17 Wygląd wprowadzanych danych może być jakikolwiek, nie muszą być to koniecznie 'kółeczka'. Może to wyglądać jak w kalkulatorze, tzn. 75"06"00". Grunt w tym aby program wiedział, że 1 stopień to 60 minut, a jedna minuta to 60 sekund. |
|
DejaVu |
» 2011-10-25 17:15:23 Takie rzeczy to sam musisz napisać :) Program nie wie nic więcej niż to co sam oprogramujesz. |
|
Nwerty Temat założony przez niniejszego użytkownika |
» 2011-10-25 17:17:02 =] I dlatego pytam czy można to w prosty i nieskomplikowany sposób zrobić (oraz jak), czy lepiej odłożyć to na później? |
|
DejaVu |
» 2011-10-25 17:18:37 Siądź do pisania programu i kombinuj czy z wiedzą obecną jesteś w stanie napisać taki program. |
|
Nwerty Temat założony przez niniejszego użytkownika |
» 2011-10-25 17:22:29 Nie ukrywam że liczyłem na jakąś podpowiedź/przykład... Jedyne co udało mi się znaleźć w internecie to przykład kodu przeliczającego radiany na stopnie, ale nie okazało się to jakoś specjalnie pomocne. |
|
akwes |
» 2011-10-25 21:02:07 Jeżeli dalej masz problemy z tym to... Próbuj dojść do tego: Podaj stopnie: 30 Podam minuty: 11 Podaj sekundy: 3
albo Podaj polozenie (eg. 15.3.2 dla 15*3'2''): 30.23.30 Podales 30 stopni, 23 minuty i 30 sekund.
Pomyśl jak napisałbyś zegarek. int CzasNaSekundy( int godziny, int minuty = 0, int sekundy = 0 ) { return godziny * 60 * 60 + minuty * 60 + sekundy; }
albo class Godzina { int Godziny; int Minuty; int Sekundy; public: void AddTime( int godziny, int minuty = 0, int sekundy = 0 ) { Godziny += godziny; Minuty += minuty; Sekundy += sekundy; } };
Albo klasycznie można trzymać całą godzinę w jednej liczbie class Godzina { long long Godzina; public: void AddTime( int godziny, int minuty = 0, int sekundy = 0 ) { Godzina += godziny * 60 * 60 + minuty * 60 + sekundy; } };
|
|
« 1 » 2 |