Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- class MetrixConverter2
- {
- //Декларирах ги извън Main за да имам достъп до тях навсякъде в класа.
- private static double value;
- private static string inpMetrics, outpMetrics;
- static void Main()
- {
- //Ако ги бях декларирал извън Main() като properites на класа , методите по долу нямаше да е необходимо да приемат параметри(по-добро май).
- //try-catch-finally конструкция за да обработи грешка при въвеждането.
- try
- {
- // Сложих всичко в try за да хване всички грешки при въвеждането
- value = double.Parse(Console.ReadLine());
- inpMetrics = Console.ReadLine();
- value = ConvToMeters();
- outpMetrics = Console.ReadLine();
- value = ConvToDest();
- Console.WriteLine(value + " " + outpMetrics);
- }
- catch (FormatException)
- {
- Console.WriteLine("invalid input!");
- }
- catch (ApplicationException)
- {
- Console.WriteLine("invalid input!");
- }
- }
- private static double ConvToMeters()
- {
- // Обръща въведената value всичко в метри
- switch (inpMetrics)
- {
- case "mm":
- return value / 1000;
- case "cm":
- return value / 100;
- case "m":
- return value;
- case "mi":
- return value / 0.000621371192;
- case "in":
- return value / 39.3700787;
- case "km":
- return value / 0.001;
- case "ft":
- return value / 3.2808399;
- case "yd":
- return value / 1.0936133;
- default:
- throw new ApplicationException();
- }
- }
- private static double ConvToDest()
- {
- // Превръща обработената value в зададената изходна единица.
- switch (outpMetrics)
- {
- case "mm":
- return value * 1000;
- case "cm":
- return value * 100;
- case "m":
- return value;
- case "mi":
- return value * 0.000621371192;
- case "in":
- return value * 39.3700787;
- case "km":
- return value* 0.001;
- case "ft":
- return value * 3.2808399;
- case "yd":
- return value * 1.0936133;
- default:
- throw new ApplicationException();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement