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

Zmiana stopni Celsjusza na Fahrenheit

Ostatnio zmodyfikowano 2016-01-09 00:05
Autor Wiadomość
PrzemekPrzemas
Temat założony przez niniejszego użytkownika
Zmiana stopni Celsjusza na Fahrenheit
» 2016-01-08 19:40:13
Za każdym razem zwraca mi w wyniku 1, dlaczego?

#include <iostream>

int fahrenheit(int);
int celsius(int);
int main()
{
using namespace std;
int celsius;
cout << "Podaj stopnie celsjusza: ";
cin >> celsius;

cout << "W stopniach fahrenheit to: " << fahrenheit << endl;
return 0;
}

int fahrenheit(int celsius)
{
return 1.8 * celsius + 32.0;
}
P-143136
PrzemekPrzemas
Temat założony przez niniejszego użytkownika
» 2016-01-08 20:16:32
Rozwiązałem:

#include <iostream>

int main()
{
using namespace std;

int cel;
cout << "Podaj temperature w stopniach celsjusza: ";
cin >> cel;

double fahrenheit;
fahrenheit = 1.8 * cel + 32.0;
cout << "W stopniach Fahrenheit wynosi: " << fahrenheit << endl;
}
P-143138
Razner
» 2016-01-08 20:28:34
Gdybyś chciał wiedzieć dlaczego ci poprzedni nie działał to źle wywołałeś funkcje fahrenheit i powinieneś ją zadeklarować jako double :) Dodatkowo funkcja Celsjusz jest zbędna. Ponad to using namespace std powinno być zaraz po #include
P-143140
PrzemekPrzemas
Temat założony przez niniejszego użytkownika
» 2016-01-08 20:47:01
Też tak myślałem, ale siedziałem nad tym zadaniem od około godziny i okazało się, że można to całkowicie prościej zrobić.

Przykład tego zadania z innej strony:

#include <iostream>

double fahr(double celc);

int main()
{
using namespace std;

cout << "Podaj temperature w stopniach Celciusza: ";
double celciusz;
cin >> celciusz;

cout << celciusz << " stopni Celciusza to " << fahr(celciusz) << " stopni Fahrenheita." << endl;

return 0;
}

double fahr(double celc)
{
return 1.8 * celc + 32.0;
}


Rozwiązałem je nieco inaczej, czy mimo to, że działa jest ono poprawnie rozwiązane? Szczerze mówiąc powyższy przykład wydaje mi się znacznie rozbudowany ale czy jest sens takiego pisania? W powyższym przykładzie main wywoływane jest przez instrukcję double fahr znajdującą się poniżej pierwszej instrukcji.
P-143141
Razner
» 2016-01-08 21:19:51
Moim zdaniem rozwiązałeś poprawnie jednak nawet przy tak małych programikach zawsze uczono (przynajmniej mnie) żeby robić funkcje dla każdej czynności jaką wykonuje program. Jeśli się mylę niech ktoś bardziej doświadczony się wypowie. Jedyny błąd (lub uchybienie bo mimo to program działa) jaki zauważyłem był właśnie w using namespace std użyłeś tego tylko w funkcji main a powinieneś globalnie i gdybyś w innej funkcji chciał użyć cout byś musiał dodać przedrostek std:: na dłuższą metę jest to męczące
P-143142
Monika90
» 2016-01-08 21:46:04
Drogie dzieci, unikajcie globalnej dyrektywy using namespace, w szczególności w plikach nagłówkowych.
P-143145
PrzemekPrzemas
Temat założony przez niniejszego użytkownika
» 2016-01-08 22:04:36
Monika wiem o tym czytałem. Mam książkę Praty gdzie pisze o tym, ale dopiero przerabiam pierwszy rozdział i robię według tego jak jest tam zapisane natomiast patrzyłem na dalsze rozdziały i using jest inaczej definiowane.
P-143146
Green_Arrow
» 2016-01-08 22:18:37
Nie jestem programistą, ale zrobił bym to tak:
C/C++
#include <iostream>
void fat();
using namespace std;
double c = 0;
main()
{
    cout << endl << "Podaj temperature w stopniach C: ";
    cin >> c;
    cin.clear();
    cin.ignore( 1000, '\n' );
    fat();
    cout << "W stopniach fatherhainta jest to: " << c << endl << endl;
}
void fat()
{
    if( c ) c = c * 1.8 + 32;
    else cout << endl << "Wprowadziles bledne dane." << endl;
   
}
P-143147
« 1 » 2
  Strona 1 z 2 Następna strona