static void Main(string[] args)
        {
            TemperatureConverterImp methodsClass = new TemperatureConverterImp();

            // Собственно, массив делигатов.
            delegateConvertTemperature[] delArray = new delegateConvertTemperature[6];
            delArray[0] = methodsClass.CelcToFar;
            delArray[1] = methodsClass.FarToCelc;
            delArray[2] = methodsClass.CelcToRan;
            delArray[3] = methodsClass.RanToCelc;
            delArray[4] = methodsClass.CelcToReo;
            delArray[5] = methodsClass.ReoToCelc;

            // Выводим таблицу и необходимую информацию.
            // (Решил несколько расширить функционал и сделать ввод поудобнее).
            Console.WriteLine("                |  Из цельсия (tC)          | В цельсия (tC)");
            Console.WriteLine("----------------------------------------------------------------------");
            Console.WriteLine("Фаренгейты (tF) |  tF = 9 / 5 * tC + 32     | tC = 5 / 9 * (tF - 32)");
            Console.WriteLine("----------------------------------------------------------------------");
            Console.WriteLine("Ранкины (tRa)   | tC * 9.0 / 5 + 491.67     | (tRa - 491.67) * 5.0 / 9 ");
            Console.WriteLine("----------------------------------------------------------------------");
            Console.WriteLine("Реомюры (tRe)   | tC * 5 / 4                | tRe * 4 / 5 ");
            Console.WriteLine("----------------------------------------------------------------------\n");

            do
            {
                Console.WriteLine("Введите через пробел наименование величины, из которой хотите перевести, и " +
                                  "величину, в которую хотите перевести \n(переводить можно либо из градусов цельсия, либо в них)");
                Console.WriteLine("Прим.: tC tRe");
                Console.WriteLine("Также вы можете ввести '-', чтобы отменить ввод.\n");

                // Получаем от пользователя информацию о том, из какой величины он хочет перевести и в какую.
                int inp;
                while (!Validate(Console.ReadLine(), out inp))
                {
                    Console.WriteLine("Ввод некорректен. Попробуйте ещё раз или введите '-', чтобы отменить ввод и завершить работу.");
                }

                // Если пользователь решил отменить ввод и завершить выполнение программы.
                if (inp == -2)
                {
                    return;
                }

                string[] delNames = new string[6] {
                    "градусах цельсия", "фаренгейтах", "градусах цельсия", "ранкинах", "градусах цельсия", "реомюрах"
                };

                // Получаем от пользователя температуру в градусах цельсия.
                Console.WriteLine($"Введите температуру в {delNames[inp]}");

                double inpT;
                while (!double.TryParse(Console.ReadLine(), out inpT))
                {
                    Console.WriteLine("Введено некорректное значение. Попробуйте ещё раз.");
                }

                Console.WriteLine($"Переведённое значение температуры: {delArray[inp](inpT)}\n");
            }while (true);
        }
    static void Main(string[] args)
    {
        TemperatureConverterImp temperatureConverter = new TemperatureConverterImp();

        delegateConvertTemperature[] converter = new delegateConvertTemperature[]
        { temperatureConverter.ToFahrenheit, StaticTempConverters.ToKelvin, StaticTempConverters.ToReaumur, StaticTempConverters.ToRankin };

        //delegateConvertTemperature converterToCelsius = new delegateConvertTemperature(temperatureConverter.ToCelsius);
        //delegateConvertTemperature converterToFahrenheit = new delegateConvertTemperature(temperatureConverter.ToFahrenheit);

        string[] names = new string[] { "Fahrenheit ", "Kelvin ", "Reaumur ", "Rankin " };

        Console.WriteLine("Введите вещественное число - температуру по шкале Цельсия:");
        try
        {
            double temperature = double.Parse(Console.ReadLine());
            for (int i = 0; i < converter.Length; i++)
            {
                Console.WriteLine(names[i] + Math.Round(converter[i](temperature), 3));
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Incorrect input!", e);
        }
    }
Exemple #3
0
        static void Main(string[] args)
        {
            TemperatureConvertImp tci = new TemperatureConvertImp();

            delegateConvertTemperature[] fromC = new delegateConvertTemperature[] { tci.fromCtoF, StaticTempConverts.fromCtoK, StaticTempConverts.fromCtoRa, StaticTempConverts.fromCtoRe };
            delegateConvertTemperature[] toC   = new delegateConvertTemperature[] { tci.fromFtoC, StaticTempConverts.fromKtoC, StaticTempConverts.fromRatoC, StaticTempConverts.fromRetoC };
            Console.WriteLine("Write any letter to escape the programm");
            while (true)
            {
                Console.WriteLine("Write temperature in C");
                if (!double.TryParse(Console.ReadLine(), out double n))
                {
                    break;
                }
                else
                {
                    Console.WriteLine("F\tK\tRa\tRe\t");
                    for (int i = 0; i < fromC.Length; i++)
                    {
                        Console.Write($"{fromC[i](n):f2}\t");
                    }

                    Console.WriteLine();
                }
            }
        }
Exemple #4
0
        static void Main()
        {
            const int numberOfConverters = 4;

            delegateConvertTemperature[] converters = new delegateConvertTemperature[numberOfConverters];

            converters[(int)Temperature.CToF]  = StaticTempConverters.CelciusToFahrenheit;
            converters[(int)Temperature.CToK]  = StaticTempConverters.CelciusToKelvin;
            converters[(int)Temperature.CToRa] = StaticTempConverters.CelciusToRankine;
            converters[(int)Temperature.CToRe] = StaticTempConverters.CelciusToReaumur;

            do
            {
                Console.Clear();

                double temperature = InputChecker.InputVar <double>("temperature in Celcius");

                Console.WriteLine($"Celcius: {temperature:F3}");
                for (int i = 0; i < numberOfConverters; ++i)
                {
                    Console.WriteLine($"{converters[i].Method.Name}: {converters[i](temperature):F3}");
                }

                Console.WriteLine("Press Esc to exit. Press any other key to continue.");
            } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
        }
Exemple #5
0
        static void Main(string[] args)
        {
            TemperatureConvertImp t = new TemperatureConvertImp();

            delegateConvertTemperature[] d = new delegateConvertTemperature[8];
            d[0] = t.fromCToF;
            d[1] = t.fromFToC;
            d[2] = StaticTempConverters.fromCToK;
            d[3] = StaticTempConverters.fromKToC;
            d[4] = StaticTempConverters.fromCToRa;
            d[5] = StaticTempConverters.fromRaToC;
            d[6] = StaticTempConverters.fromCToRe;
            d[7] = StaticTempConverters.fromReToC;
            double c;

            do
            {
                Console.Clear();
                Console.WriteLine("Введите темпратуру в цельсиях");
                if (!double.TryParse(Console.ReadLine(), out c))
                {
                    Console.WriteLine("Неверный ввод");
                    Console.WriteLine("Нажмите Esc для завершения...");
                    continue;
                }
                Console.WriteLine($"{d[0](c)} F; {d[2](c)} K; {d[4](c)}Ra; {d[6](c)}Re");
                Console.WriteLine("Нажмите Esc для завершения...");
            } while (Console.ReadKey().Key != ConsoleKey.Escape);
        }
        static void Main(string[] args)
        {
            TemperatureConverterImp    obj = new TemperatureConverterImp();
            delegateConvertTemperature delConvertToFahrenheit =
                new delegateConvertTemperature
                    (obj.ConvertToFahrenheit);

            delegateConvertTemperature delConvertToCelsius =
                new delegateConvertTemperature
                    (obj.ConvertToCelsius);

            double celsius    = 0.0;
            double fahrenheit = delConvertToFahrenheit(celsius);
            string msg1       = string.Format("Celsius = {0}, Fahrenheit = {1}",
                                              celsius, fahrenheit);

            Console.WriteLine(msg1);

            fahrenheit = 212.0;
            celsius    = delConvertToCelsius(fahrenheit);
            string msg2 = string.Format("Celsius = {0}, Fahrenheit = {1}",
                                        celsius, fahrenheit);

            Console.WriteLine(msg2);
            Console.WriteLine(delConvertToCelsius.Target);
            Console.ReadKey();
        }
        static void Main()
        {
            Console.WriteLine($"Задача #3: {Environment.NewLine}");
            // --------------------------------------------------------
            // Блок кода, необходимый для первой части третьей задачи (скорее более вводный в условие задачи).
            TemperatureConverterImp    converter      = new TemperatureConverterImp();
            delegateConvertTemperature TempCelsToFahr = new delegateConvertTemperature(converter.CelsToFahr);
            delegateConvertTemperature TempFahrToCels = new delegateConvertTemperature(converter.FahrToCels);

            Console.WriteLine("Пример работы перевода 45.5 градусов по Цельсию в градусы по Фаренгейту:");
            Console.WriteLine($"{TempCelsToFahr(45.5):F2}");
            Console.WriteLine("Пример работы перевода 70 градусов по Фаренгейту в градусы по Цельсию:");
            Console.WriteLine($"{TempFahrToCels(70):F2}");
            Console.WriteLine($"--------------------------------{Environment.NewLine}");
            // --------------------------------------------------------
            // Блок кода, необходимый для второй части третьей задачи.
            double initialTemp = -273.15;

            do
            {
                Console.WriteLine("Введите действительное значение температуры в градусах Цельсия (> -273.15):");
            } while (!double.TryParse(Console.ReadLine(), out initialTemp) || initialTemp == -273.15);
            delegateConvertTemperature[] delegateArray = { StaticTempConverters.CelsToFahr, StaticTempConverters.CelsToKelvin, StaticTempConverters.CelsToRankin, StaticTempConverters.CelsToReaumur };
            foreach (delegateConvertTemperature element in delegateArray)
            {
                Console.WriteLine(element?.Invoke(initialTemp));
            }
        }
Exemple #8
0
        static void Main(string[] args)
        {
            TemperatureConvertImp dummy = new TemperatureConvertImp();

            delegateConvertTemperature[] dels = new delegateConvertTemperature[]
            { dummy.CelciusToFahrenheit, dummy.FahrenheitToCelcius, StaticTempConverters.CelciusToKelvin,
              StaticTempConverters.CelciusToRankin, StaticTempConverters.CelciusToReaumur };

            double tempC = -10.5;
            double tempF = 40.5;

            Console.WriteLine($"{tempC} degrees Celcius to Fahrenheit: {dels[0]?.Invoke(tempC)}F");
            Console.WriteLine($"{tempF} degrees Fahrenheit to Celcius: {dels[1]?.Invoke(tempC)}C");

            Console.WriteLine();
            do
            {
                Console.Write("Enter the temperature in C: ");
            } while (!double.TryParse(Console.ReadLine(), out tempC));

            Console.WriteLine();
            Console.WriteLine($"{tempC} degrees Celcius to Fahrenheit: {dels[0]?.Invoke(tempC)}F");
            Console.WriteLine($"{tempC} degrees Celcius to Kelvin: {dels[2]?.Invoke(tempC)}K");
            Console.WriteLine($"{tempC} degrees Celcius to Rankin: {dels[3]?.Invoke(tempC)}R");
            Console.WriteLine($"{tempC} degrees Celcius to Reaumur: {dels[4]?.Invoke(tempC)}Re");
        }
Exemple #9
0
        static void Main(string[] args)
        {
            TemperatureConvertInp obj = new TemperatureConvertInp();

            delegateConvertTemperature CtF = obj.CelsiusToFahrenheit;
            delegateConvertTemperature FtC = obj.FahrenheitToCelsius;

            Console.WriteLine($"0 C to F: {CtF?.Invoke(0)}; 0 F to C {FtC?.Invoke(0)}");


            delegateConvertTemperature CtK = StaticTempConverters.CelsiusToKelvin;
            delegateConvertTemperature KtC = StaticTempConverters.KelvinToCelsius;

            delegateConvertTemperature CtR = StaticTempConverters.CelsiusToRankin;
            delegateConvertTemperature RtC = StaticTempConverters.RankinToCelsius;

            delegateConvertTemperature[] converters = { CtF, CtK, CtR, };

            double t;

            Console.Write("Celsius: ");
            double.TryParse(Console.ReadLine(), out t);
            foreach (delegateConvertTemperature cnv in converters)
            {
                string str = cnv.Method.ToString();
                Console.WriteLine($"{str.Substring(16, str.Length - 24)}: {cnv?.Invoke(t)}");
            }
        }
Exemple #10
0
        static void Main(string[] args)
        {
            delegateConvertTemperature[] arr = new delegateConvertTemperature[3];
            arr[0] = new delegateConvertTemperature(StaticTempConverters.CelsiusToKelvin);
            arr[1] = new delegateConvertTemperature(StaticTempConverters.CelsiusToRankine);
            arr[2] = new delegateConvertTemperature(StaticTempConverters.CelsiusToReaumur);
            double val;

            while (true)
            {
                do
                {
                    Console.WriteLine("Введите температуру в цельсиях");
                }while (!double.TryParse(Console.ReadLine(), out val));
                Console.WriteLine($"Celsius to Kelvin: {val} -> {arr[0](val)}");
                Console.WriteLine($"Celsius to Rankine: {val} -> {arr[1](val)}");
                Console.WriteLine($"Celsius to Reaumur: {val} -> {arr[2](val)}");
            }
        }
        static void Main(string[] args)
        {
            delegateConvertTemperature[] delConvert = new delegateConvertTemperature[8];
            delConvert[0] = TemperatureConvertImp.CtoK;
            delConvert[1] = TemperatureConvertImp.CtoR;
            delConvert[2] = TemperatureConvertImp.CtoRe;
            delConvert[3] = TemperatureConvertImp.CtoF;
            delConvert[4] = TemperatureConvertImp.KtoC;
            delConvert[5] = TemperatureConvertImp.RtoC;
            delConvert[6] = TemperatureConvertImp.RetoC;
            delConvert[7] = TemperatureConvertImp.FtoC;

            int x = int.Parse(Console.ReadLine());

            for (int i = 0; i < 8; ++i)
            {
                Console.WriteLine(delConvert[i](x));
            }
        }
Exemple #12
0
    public static void Main()
    {
        var converter = new TemperatureConverterImp();

        // Следующие два способа совершенно одинаковы, см. sharplab.io:
        var toCelsius = new delegateConvertTemperature(converter.ToCelsius);
        delegateConvertTemperature toFarenheits = converter.ToFarenheits;

        Console.WriteLine($"100⁰C = {toFarenheits(100)}⁰F");
        Console.WriteLine($"100⁰F = {toCelsius(100)}⁰C");
    }
Exemple #13
0
        static void Main()
        {
            TemperatureConverterImp    temperature = new TemperatureConverterImp();
            delegateConvertTemperature FtoC = temperature.MethodFToC, CtoF = temperature.MethodCToF;

            double[] testTemp = { 0, 5, -5, 12.5, -12.5 };
            for (int i = 0; i < testTemp.Length; i++)
            {
                double currentTemp = FtoC(testTemp[i]);
                WriteLine($"{testTemp[i]} F = {currentTemp} C \n{currentTemp} C = {CtoF(currentTemp)} F\n");
            }
        }
        static void Main(string[] args)
        {
            TemperatureConverterImp first = new TemperatureConverterImp();

            delegateConvertTemperature[] tempConvertors = new delegateConvertTemperature[4];
            tempConvertors[0] = first.FromCtoF;
            tempConvertors[1] = StaticTempConverters.FromCtoK;
            tempConvertors[2] = StaticTempConverters.FromCtoR;
            tempConvertors[3] = StaticTempConverters.FromCtoRe;
            string[] scales = { "F", "K", "R", "Re" };
            double   temp;

            do
            {
                Console.Write("Введите температутуру в градусах Цельсия: ");
            }while (!double.TryParse(Console.ReadLine(), out temp));

            for (int i = 0; i < 4; i++)
            {
                Console.WriteLine($"{temp:F3} C = {tempConvertors[i](temp):F3} {scales[i]}");
            }
        }
Exemple #15
0
        static void Main(string[] args)
        {
            TemperatureConverterImp tci = new TemperatureConverterImp();

            delegateConvertTemperature[] delegates = new delegateConvertTemperature[4];
            delegates[0] = tci.ConvertToFahrenheit;
            delegates[1] = StaticTempConverters.ConvertToKelvin;
            delegates[2] = StaticTempConverters.ConvertToRankin;
            delegates[3] = StaticTempConverters.ConvertToReaumur;
            do
            {
                Console.Clear();
                double x;
                do
                {
                    Console.Clear();
                    Console.WriteLine("Введите температуру в градусах Цельсия:");
                } while (!double.TryParse(Console.ReadLine(), out x));
                Console.WriteLine("°C\t°F\tK\t°R\t°Re");
                Console.WriteLine(x + "\t" + delegates[0](x).ToString("F2") + "\t" + delegates[1](x).ToString("F2") + "\t" + delegates[2](x).ToString("F2") + "\t" + delegates[3](x).ToString("F2"));
                Console.WriteLine("Чтобы выйти из программы, нажмите Escape");
            } while (Console.ReadKey().Key != ConsoleKey.Escape);
        }
Exemple #16
0
        static void Main(string[] args)
        {
            /*delegateConvertTemperature toFahr = TemperatureConverterImp.Celsius2Fahr;
             * delegateConvertTemperature toCels = TemperatureConverterImp.Fahr2Celsius;
             *
             *
             * Console.WriteLine(toFahr(10));
             *
             * Console.WriteLine(toCels(10));
             * Console.WriteLine(toFahr(-12.22222));
             *
             * Console.WriteLine(toFahr(20));
             * Console.WriteLine(toCels(20));*/

            do
            {
                double   cels = int.Parse(Console.ReadLine());
                string[] arr  = new string[4] {
                    "Celsius", "Fahrenheit", "Rankin", "Roumor"
                };
                delegateConvertTemperature[] delArr = new delegateConvertTemperature[4] {
                    (x) => x,
                    TemperatureConverterImp.Celsius2Fahr,
                    TemperatureConverterImp.Celsius2Rankin,
                    TemperatureConverterImp.Celsius2Roumor
                };

                for (int i = 0; i < arr.Length; ++i)
                {
                    Console.WriteLine(arr[i] + " " + delArr[i](cels).ToString("F3"));
                }



                Console.WriteLine("Press esc to exit");
            } while (Console.ReadKey().Key != ConsoleKey.Escape);
        }
        static void Main(string[] args)
        {
            TemperatureConverterImp    tm   = new TemperatureConverterImp();
            delegateConvertTemperature delF = new delegateConvertTemperature(tm.C_F);
            delegateConvertTemperature delC = new delegateConvertTemperature(tm.F_C);

            delegateConvertTemperature[] Maindel = { delF, delC };
            //Через массив
            Console.WriteLine("100F = {0}C", Maindel[1](100));
            Console.WriteLine("100C = {0}F", Maindel[0](100));

            Console.WriteLine("100F = {0}C", delC(100));
            Console.WriteLine("100C = {0}F", delF(100));
            Console.ReadLine();
            //создаем оъект.когда вызываем метод из класса вызываем через инвоук
        }
Exemple #18
0
        static void Main(string[] args)
        {
            // ------------------------------------------------------------------------------------------------------------------------
            // Инициализируем необходимые делегаты.
            TemperatureConverterImp    temperatureConverter = new TemperatureConverterImp();
            delegateConvertTemperature first  = new delegateConvertTemperature(temperatureConverter.CToF);
            delegateConvertTemperature second = new delegateConvertTemperature(temperatureConverter.FToC);

            // Узнаём необходимую температуру (Цельсий).
            Console.WriteLine("Введите вашу температуру в шкале Цельсия! (обязательно вещественную!!!)");
            double tempCel = double.Parse(Console.ReadLine());

            // Узнаём необходимую температуру (Фаренгейт).
            Console.WriteLine("Введите вашу температуру в шкале Фаренгейта! (обязательно вещественную!!!)");
            double tempFar = double.Parse(Console.ReadLine());

            // Выводим обе конвертированные температуры:
            Console.WriteLine($"Первая температура по Фарегейту == {first(tempCel)}");
            Console.WriteLine($"Вторая температура по Цельсию == {second(tempFar)}");

            //------------------------------------------------Конец первой части--------------------------------------------------------

            // Пояснение - Всё было решено запихнуть не в отдельный класс StaticTempConverters, а в тот же класс добавилось несколько
            // методов. Логика выполнения та же, новые методы - статические, так, просто, показалось красивее.

            // Считываем данные о новой температуре на обработку.
            Console.WriteLine("Начало Выполнения Второй части задания!!!");
            Console.WriteLine("Введите вашу температуру в шкале Цельсия! (обязательно вещественную!!!)");

            tempCel = double.Parse(Console.ReadLine());

            // Создаём массив делегатов, содержащих требуемые методы.
            delegateConvertTemperature[] listOfMethods = new delegateConvertTemperature[4];
            listOfMethods[0] = temperatureConverter.CToF;
            listOfMethods[1] = TemperatureConverterImp.CToK;
            listOfMethods[2] = TemperatureConverterImp.CToRan;
            listOfMethods[3] = TemperatureConverterImp.CToReo;
            // Для удобного вызова всех методов создаём список описаний действий:
            string[] listOfDescriptions = { "Фаренгейта", "Кельвина", "Ранкина", "Реомюра" };

            // Выводим все ответы.
            for (int i = 0; i < listOfMethods.Length; ++i)
            {
                Console.WriteLine($"Ваша температура, переведённая в шкалу {listOfDescriptions[i]} == {listOfMethods[i](tempCel)}");
            }
        }