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

Przelicznik stopni Celsjusza na Fahrenheita

+3 głosów
1,712 wizyt
pytanie zadane 30 grudnia 2017 w C i C++ przez kuras Początkujący (280 p.)
edycja 30 grudnia 2017 przez kuras

Napisz program, w którym w funkcji main() zostanie wywołana funkcja użytkownika otrzymująca temperaturę w stopniach Celsjusza i zwracająca odpowiadającą jej temperaturę w skali Fahrenheita. Program ma poprosić użytkownika o podanie wartości z klawiatury i pokazać wynik jak poniżej:

Podaj temperaturę w stopniach Celsjusza: 20

20 stopnie Celsjusza to 68 stopnie Fahrenheita.

Zmianę temperatury przeprowadź zgodnie ze wzorem:

Fahrenheit = 1,8*stopnie Celsjusza +32


#include <iostream>

using namespace std;
double celsius_to_fahrenheit (double);
int main()
{

double stopnie ;



    cout << "Podaj temperature w stopniach celsjusza: " ;
    cin>> stopnie;
    double fahrenheit = celsius_to_fahrenheit (stopnie);
    cout<<stopnie<<" stopnie Celsjusza to "<<fahrenheit<<" stopnie Farhrenheita";
    return 0;
}

double celsius_to_fahrenheit (double sts)
{
return 1.8*sts+32;
}
komentarz 30 grudnia 2017 przez kuras Początkujący (280 p.)
Mam pytanie czy można zastosować w tym przypadku funkcję zwracającą wartość , bo chyba taki miał być zamiar autora zadania , tylko nie wiem jak mam to zrobić.

Pozdrawiam
komentarz 30 grudnia 2017 przez niezalogowany
Moim zadaniem lepiej będzie wyglądać zwracającą wartość, a wypisywanie zrób w mainie. Zamiast typu int (liczby całkowite) stosuj double. Inaczej wszystkie ogonki Ci poucina.
komentarz 30 grudnia 2017 przez kuras Początkujący (280 p.)
edycja 30 grudnia 2017 przez kuras
#include <iostream>

using namespace std;
double celsius_to_fahrenheit (double);
int main()
{

double stopnie ;

 

    cout << "Podaj temperature w stopniach celsjusza: " ;
    cin>> stopnie;
    double fahrenheit = celsius_to_fahrenheit (stopnie);
    cout<<stopnie<<" stopnie Celsjusza to "<<fahrenheit<<" stopnie Farhrenheita";
    return 0;
}

double celsius_to_fahrenheit (double sts)

{

return 1.8*sts+32;
}

Chyba kolegaNeUmiemProgramowac o tym mówił rozwiązaniu
komentarz 30 grudnia 2017 przez niezalogowany
Tak kolega jest zadowolony. Tylko zmień nazwę na jakąś sensowną np celsius_to_fahrenheit ;)
komentarz 30 grudnia 2017 przez kuras Początkujący (280 p.)

smileyMówisz i masz hihhi

komentarz 30 grudnia 2017 przez Eryk Andrzejewski Mędrzec (159,400 p.)

Kod źródłowy proszę wstawiać w przystosowane do tego bloczki. wink

komentarz 30 grudnia 2017 przez kuras Początkujący (280 p.)

Już w odpowiednim bloczkusmiley

komentarz 26 stycznia 2018 przez No Pain no Gain Nowicjusz (230 p.)

Witam, też mam problem z tym zadaniem lecz przedstawiłem to inaczej, chciałbym spytać kogoś bardziej doświadczonego gdzie popełniłem błąd? 

#include <iostream>
#include <math.h>
using namespace std;
double Fahrenheit(double);

int main()
{
	double cel;
	cout << "Podaj Temperature w stopniach Celsjusza:";
	cin >> cel;
	Fahrenheit(cel);
	cout << cel << " stopni Celsjusza to " << Fahrenheit << " stopni Fahrenheita." << endl;
	cin.get();
	cin.get();
	return 0;
}

double Fahrenheit(double sts)
{
	double f;
	return f = (sts * 1, 8) + 32, 0;
}

Byłbym bardzo wdzięczny jakby ktoś mógł mi wytłumaczyć mój błąd :)

komentarz 26 stycznia 2018 przez niezalogowany

W C++ separator dziesiętny to kropka. Funkcja to nie zmienna. Jej wynik trzeba przechwycić do jakiejś zmiennej, lub możesz go od razu wypisać:

#include <iostream>
#include <math.h>
using namespace std;
double Fahrenheit(double);

int main()
{
	double cel;
	cout << "Podaj Temperature w stopniach Celsjusza:";
	cin >> cel;
	cout << cel << " stopni Celsjusza to " << Fahrenheit(cel) << " stopni Fahrenheita." << endl;
	cin.get();
	cin.get();
	return 0;
}

double Fahrenheit(double sts)
{
	return sts * 1.8 + 32.0;
}

Na przyszłość zadaj nowe pytanie jeżeli masz zupełnie inny kod. Raz więcej osób zobaczy dwa możesz dać komuś łapkę trzy nie robi się bałagan w tematach ;)

EDIT: Poprzedni wynik to adres w pamięci gdzie znajduje się funkcja.

komentarz 26 stycznia 2018 przez No Pain no Gain Nowicjusz (230 p.)

A i zapomniałem jest drugi problem podczas debugowania programu i swojego i tego od autora tego postu wychodzi mi coś takiego, mianowicie dlaczego zamiast normalnego wymaganego wyniku wychodzą cyfry i litery.

Z góry dziękuje za wytłumaczenie.

1 odpowiedź

0 głosów
odpowiedź 30 grudnia 2017 przez Huberti Gaduła (3,570 p.)

Cześć, swój kod wstawiaj w "bloczki" (add or update a code snippet).

Jeżeli masz jakiś problem z funkcjami to obejrzyj film Mirosława Zelenta.

Link: Kurs C++ odc. 9: Własne funkcje. Podejście proceduralne

PS Zmienną fahrenheit zmień typ na double (z przecinkiem). Dzięki temu twoje wyniki będą dokładniejsze. Możesz zrobić to samo dla zmiennej stopnie. Wtedy użytkownik będzie mógł podawać wartości z przecinkiem.

komentarz 31 grudnia 2017 przez kuras Początkujący (280 p.)

Dzięki kolego za cenne uwagi.smiley

Podobne pytania

0 głosów
1 odpowiedź 617 wizyt
0 głosów
1 odpowiedź 1,453 wizyt
pytanie zadane 20 października 2016 w C# i .NET przez Serengeti Nowicjusz (150 p.)
+1 głos
9 odpowiedzi 1,163 wizyt
pytanie zadane 24 grudnia 2016 w Sprzęt komputerowy przez Squer Obywatel (1,010 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

66,986 zapytań

113,891 odpowiedzi

241,347 komentarzy

46,943 pasjonatów

Przeglądających: 110
Pasjonatów: 2 Gości: 108

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...