using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _02TemperatureConverter
{
class Program
{
static void Main(string[] args)
{
string zakoncz = "Zakończ";
Console.WriteLine("Konwerter Temperatur");
Console.WriteLine("Temperatury podaje się w następujących stalach, po liczbie stopni zapisz odpowiednia literę skali:");
Console.WriteLine("Skala Celsjusza - C");
Console.WriteLine("Skala Fahrenheita - F");
Console.WriteLine("Skala Kelvina - K");
Console.WriteLine("Żeby zakończyć program wpisz: Zakończ");
bool work = true;
while (work)
{
string temperature = Console.ReadLine();
if (temperature.Length==0)
{
Console.WriteLine("Wpisz temperature.");
continue;
}
char scale = temperature.Last();
double temperatureValue = 0;
Double.TryParse(temperature.Remove(temperature.IndexOf(scale), 1),out temperatureValue);
if(temperature.Equals(zakoncz))
{
work = false;
}
else if (scale == 'C')
{
double inKelvin = CToK(temperatureValue);
double inFarenh = CToF(temperatureValue);
Console.WriteLine("Temperatura wynosi:" + String.Format("{0:N2}",inKelvin) + " K");
Console.WriteLine("Temperatura wynosi:" + String.Format("{0:N2}",inFarenh) + " F");
}
else if (scale == 'F')
{
double inKelvins = FToK(temperatureValue);
double inCelcius = FToC(temperatureValue);
Console.WriteLine("Temperatura wynosi:" + String.Format("{0:N2}",inKelvins) + " K");
Console.WriteLine("Temperatura wynosi:" + String.Format("{0:N2}",inCelcius) + " C");
}
else if (scale == 'K')
{
double inFarenh = KToF(temperatureValue);
double inCelciu = KToC(temperatureValue);
Console.WriteLine("Temperatura wynosi:" + String.Format("{0:N2}",inFarenh) + " F");
Console.WriteLine("Temperatura wynosi:" + String.Format("{0:N2}",inCelciu) + " C");
}
else
{
Console.WriteLine("Zły sposób zapisu. Spróbuj jeszcze raz.");
}
}
Console.WriteLine("Program zostanie zakończony");
Console.ReadKey();
}
public static double CToK(double celc)
{
return celc + 273.15;
}
public static double CToF(double celc)
{
return (9 / 5.0) * celc + 32;
}
public static double KToC(double kelv)
{
return kelv - 273.15;
}
public static double KToF(double kelv)
{
return kelv * (9 / 5.0) - 459.67;
}
public static double FToC(double farenh)
{
return (5 / 9.0) * (farenh - 32);
}
public static double FToK(double farenh)
{
return (farenh + 459.67) * (5.0 / 9.0);
}
}
}