Temperatur Converter i C ++ ved hjelp av funksjoner
Det finnes flere ulike temperaturskalaer i bruk over hele verden. Når to ulike kilder bruker ulike skalaer, blir det nødvendig å forstå hvordan å konvertere mellom de to. Dette innebærer noen rett frem aritmetikk, men ikke nødvendigvis den typen som mest beholde i minnet. Det er bare et spørsmål om å legge inn disse formlene inn i et dataprogram, som kan ta seg av arbeidet for brukeren.
temperatur konverter~~POS=TRUNC
Tenk tre ulike temperaturskalaer: Fahrenheit, Celsius og Kelvin. Verdiene for hver skala er i stand til å konvertere mellom hverandre ved hjelp av multiplikasjon og divisjon:
Celsius = (5/9) * (Fahrenheit - 32)
Fahrenheit = (9/5) * (Celsius + 32)
Kelvin = Celsius + 273
Gjennom disse tre ligninger, kan en hvilken som helst temperaturverdi beregnes fra en annen.
C ++ kode og bruker Input
Programmereren må vurdere brukerens input: brukeren må oppgi en verdi, og den type temperaturskalaen brukes. Dessuten må brukeren spesifisere hvilke enheter verdien bør konvertere til:
char fortsette = 'Y';
while (fortsett == 'Y') {
int temp;
røye in_unit, out_unit;
cout << "Skriv inn Temperatur:" << endl;
cin >> temp;
cout << "Skriv inn enhetstype (C, F, K):" << endl;
cin >> in_unit;
cout << "Skriv inn enhetene til å konvertere til (C, F, K):" << endl;
cin >> out_unit;
Konvertering ulike saker
Når brukeren går inn i en temperatur og enhetene for å konvertere til, er det et spørsmål om matematisk konvertering. Hver konvertering kan være en funksjon:
int getCelsiusfromFahrenheit (int temp)
{Return ((5/9) * (temp -32));}
int getFahrenheitfromCelsius (int temp)
{Return ((9/5) * (temp + 32));}
Beregning Kelvin er bare et spørsmål om å ta Celsius verdi og legge 273.
Alle sammen
Etter å ha fått brukerundersøkelser, og definere konvertering funksjoner, kan programmereren deretter konvertere verdiene (ved hjelp av en bryter uttalelse):
veksle (in_unit):
{
case 'C':
if (out_unit == 'F')
{Cout << getFahrenheitfromCelsius (temp);}
ellers
{Cout << temp + 273;}
gå i stykker;
case 'F'
int ctemp = getCelsiusfromFahrenheit (temp);
if (out_unit == 'C')
{Cout << ctemp;}
ellers
{Cout << ctemp + 273;}
gå i stykker;
case 'K'
int ctemp = temp + 273;
if (out_unit == 'F')
{Cout << getFahrenheitfromCelsius (ctemp);}
ellers
{Cout << ctemp;}
gå i stykker;
}