Untitled

mail@pastecode.io avatar
unknown
csharp
a year ago
1.8 kB
1
Indexable
Never
using System;

interface IConverter
{
    string From { get; set; }
    string To { get; set; }

    double Convert(double value);
}

interface IPrintable
{
    void Print();
}

class CelsiusToFahrenheit : IConverter, IPrintable
{
    public string From { get; set; } = "Цельсии";
    public string To { get; set; } = "Фаренгейты";

    public double Convert(double value)
    {
        return 1.8 * value + 32;
    }

    public void Print()
    {
        Console.WriteLine($"Из величины: {From}");
        Console.WriteLine($"В величину: {To}");
    }
}

class CelsiusToKelvin : IConverter, IPrintable
{
    public string From { get; set; } = "Цельсии";
    public string To { get; set; } = "Кельвины";

    public double Convert(double value)
    {
        return 273.15 + value;
    }

    public void Print()
    {
      Console.WriteLine($"Из величины: {From}");
      Console.WriteLine($"В величину: {To}");
    }
}

class Program
{
    static void Main(string[] args)
    {
        CelsiusToFahrenheit celsiusToFahrenheit = new CelsiusToFahrenheit();
        CelsiusToKelvin celsiusToKelvin = new CelsiusToKelvin();

        Console.Write("Введите температуру в цельсиях: ");
        double celsiusValue = Convert.ToDouble(Console.ReadLine());

        double fahrenheitValue = celsiusToFahrenheit.Convert(celsiusValue);
        Console.WriteLine($"Цельсии: {celsiusValue} -> Фаренгейты: {fahrenheitValue}");

        double kelvinValue = celsiusToKelvin.Convert(celsiusValue);
        Console.WriteLine($"Цельсии: {celsiusValue} -> Кельвины: {kelvinValue}");

        celsiusToFahrenheit.Print();
        Console.WriteLine();
        celsiusToKelvin.Print();
      }
  }