Untitled

mail@pastecode.io avatar
unknown
csharp
a year ago
2.2 kB
6
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
{
    string from  = "Цельсии";
    string to = "Фаренгейты";
  
    public string From { 
      get {
        return from;
      } 
      set {
        from = value;
      } 
    }
    public string To { 
      get {
        return to;
      } 
      set {
        to = value;
      } 
    }

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

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

class CelsiusToKelvin : IConverter, IPrintable
{
    string from  = "Цельсии";
    string to = "Кельвины";
  
    public string From { 
      get {
        return from;
      } 
      set {
        from = value;
      } 
    }
    public string To { 
      get {
        return to;
      } 
      set {
        to = value;
      } 
    }
  
    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();
      }
  }