• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program który ma wyliczyć długość geograficzną.

VPS Starter Arubacloud
0 głosów
737 wizyt
pytanie zadane 5 stycznia 2018 w C i C++ przez Mateusz Borkowski Nowicjusz (120 p.)

Witam, rozpocząłem swoją przygodę z programowaniem w C++. Uczę się tego języka za pomocą książki Stepehena Prata "Język C++ Szkoła programowania" Wydanie VI. Mam problem z 3 zadaniem z 3 działu które brzmi:

Napisz program, który poprosi użytkownika o podanie długości geograficznej w stopniach, minutach i sekundach, wyliczający następnie długość geograficzną w formacie dziesiętnym 60 sekund łuku składa się na minutę, 60 minut na stopień; zapisz wartości jako stałe symboliczne. Przykładowe uruchomienie programu może wyglądać następująco:

Podaj długość w stopniach, minutach i sekundach:

Najpierw podaj stopnie: 37

Następnie podaj minuty stopnia łuku: 51

Na koniec podaj sekundy łuku: 19

37 stopni, 51 minut, 19 sekund = 37,8553 stopni

Kompletnie nie mam pomysłu jak to zrobić, każdy próby kończą się niepowodzeniem. Wyniki pojawią się w formie notacji naukowej, na minusie lub wypisuje "inf"

2 odpowiedzi

0 głosów
odpowiedź 5 stycznia 2018 przez niezalogowany

Załóżmy, że masz taki kod:

#include <iostream>

int main()
{
	int stopni, minut, sekund;

	std::cout << "Podaj dlugosc w stopniach, minutach i sekundach. \n";
	std::cout << "Najpierw podaj stopnie: ";
	std::cin >> stopni;
	std::cout << "Nastepnie podaj minuty stopnia luku: ";
	std::cin >> minut;
	std::cout << "Na koniec podaj sekundy luku: ";
	std::cin >> sekund;

	double wynik; // = ...

	std::cout << stopni << " stopnia, " << minut << " minut, " << sekund << " sekund = " << wynik << " stopni \n";

}

Wystarczy, że zamienisz minuty i sekundy na stopnie i dodać do stopni. W jednym wystarczy podzielić wartość na 60, a w przypadku sekund na 3600. Trzeba skorzystać z rzutowania przy dzieleniu np:

double minuty_na_stopnie = (double) minut / 60; // inaczej dzielenie dwoch liczb calkowitych int da wynik calkowity (uciecie czesci ulamkowej)

Natomiast stałe symboliczne w zadaniu chyba odnosi się do tego, że te przeliczniki 1/60 1/3600 mogą być w osobnych zmiennych z typem const, ale to już taka drobnostka.

komentarz 5 stycznia 2018 przez Mateusz Borkowski Nowicjusz (120 p.)
Wynik  3.0755e+264 stopni jakich liczb bym nie wpisał cały czas wyskakuje ten wynik.

Czy to może być wina programu w sensie Code Blocksa?
komentarz 6 stycznia 2018 przez niezalogowany
U mnie działa wszystko w porządku pokaż kod.
0 głosów
odpowiedź 4 lutego 2020 przez Kmicitz Początkujący (300 p.)
Cześć, ja zrobiłem to tak :

 

 

#include <iostream>

using namespace std;

int main()
{

    // procedura przelicza polozenie geograficzne w stopniach, minutach i sekundach na liczbe dziesietna

    //cout.setf(ios_base::fixed, ios_base::floatfield); //pokazuje dokładniej liczby rzeczywiste

    cout << "Hello world!" << endl;

    int stopien; float minuta; float sekunda; float dziesietna;
    const int sek_na_min = 60; const int min_na_st = 60;

cout << "Podaj stopien: ";
    cin  >> stopien;
    cout << "Podaj minute: ";
    cin  >> minuta;
    cout << "Podaj sekunde: ";
    cin  >> sekunda;
            dziesietna = sekunda/(sek_na_min*min_na_st) + minuta/min_na_st + stopien;
    cout << "\n\n\nPrzeliczam........\n\n\n";

cout << stopien << " stopien " << minuta << " minuta " << sekunda << " sekunda to: "<<endl <<endl <<endl <<endl;

    cout << dziesietna << "  stopnia" << endl;

    return 0;
}

Podobne pytania

0 głosów
2 odpowiedzi 190 wizyt
pytanie zadane 5 sierpnia 2016 w C i C++ przez Jardee Początkujący (420 p.)
0 głosów
0 odpowiedzi 486 wizyt
pytanie zadane 11 listopada 2019 w C i C++ przez CleaverMan Nowicjusz (140 p.)
0 głosów
1 odpowiedź 185 wizyt
pytanie zadane 6 marca 2019 w C i C++ przez dziubi21 Początkujący (310 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...