Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Działania na współrzędnych geograficznych

Ostatnio zmodyfikowano 2011-10-25 21:52
Autor Wiadomość
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.
P-42733
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.
P-42734
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.
P-42737
DejaVu
» 2011-10-25 17:15:23
Takie rzeczy to sam musisz napisać :) Program nie wie nic więcej niż to co sam oprogramujesz.
P-42738
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?
P-42739
DejaVu
» 2011-10-25 17:18:37
Siądź do pisania programu i kombinuj czy z wiedzą obecną jesteś w stanie napisać taki program.
P-42740
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.
P-42741
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.

C/C++
int CzasNaSekundy( int godziny, int minuty = 0, int sekundy = 0 )
{
    return godziny * 60 * 60 + minuty * 60 + sekundy;
}

albo

C/C++
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
C/C++
class Godzina
{
    long long Godzina;
public:
    void AddTime( int godziny, int minuty = 0, int sekundy = 0 )
    {
        Godzina += godziny * 60 * 60 + minuty * 60 + sekundy;
    }
   
};

 
P-42779
« 1 » 2
  Strona 1 z 2 Następna strona