Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace example
- {
- public class Program
- {
- static void Main(string[] args)
- {
- do {
- Console.Write(" Введите четырёхзначное число от 1 до 4: ");
- ushort data = ushort.Parse(Console.ReadLine());
- EquilateralTriangle et = new EquilateralTriangle();
- double param;
- bool control = true;
- switch (data)
- {
- case 1:
- Console.Write(" Введите сторону: ");
- param = double.Parse(Console.ReadLine());
- et.SetSide(param);
- break;
- case 2:
- Console.Write(" Введите радиус вписанной окружности: ");
- param = double.Parse(Console.ReadLine());
- et.SetRadiusIn(param);
- break;
- case 3:
- Console.Write(" Введите описанной окружности: ");
- param = double.Parse(Console.ReadLine());
- et.SetRadiusOut(param);
- break;
- case 4:
- Console.Write(" Введите площадь треугольника: ");
- param = double.Parse(Console.ReadLine());
- et.SetArea(param);
- break;
- default:
- Console.WriteLine(" Ошибка!");
- control = false;
- break;
- }
- if (control)
- {
- Console.WriteLine(" 1 - {0}\n 2 - {1}\n 3 - {2}\n 4 - {3}",
- et.GetSide(), et.GetRadiusIn(), et.GetRadiusOut(), et.GetArea());
- Console.ReadKey();
- }
- } while (true);
- }
- }
- public class EquilateralTriangle
- {
- private double side;
- private double radiusIn;
- private double radiusOut;
- private double area;
- public EquilateralTriangle()
- {
- side = radiusIn = radiusOut = area = 0;
- }
- public void SetSide(double _side)
- {
- side = Math.Abs(_side);
- CalculateRadiusInFromSide();
- CalculateRadiusOutFromSide();
- CalculateAreaFromSide();
- }
- public void SetRadiusIn(double _radiusIn)
- {
- radiusIn = Math.Abs(_radiusIn);
- CalculateSideFromRadiusIn();
- CalculateRadiusOutFromRadiusIn();
- CalculateAreaFromRadiusIn();
- }
- public void SetRadiusOut(double _radiusOut)
- {
- radiusOut = Math.Abs(_radiusOut);
- CalculateSideFromRadiusOut();
- CalculateRadiusInFromRadiusOut();
- CalculateAreaFromRadiusOut();
- }
- public void SetArea(double _area)
- {
- area = Math.Abs(_area);
- CalculateSideFromArea();
- CalculateRadiusInFromArea();
- CalculateRadiusOutFromArea();
- }
- public double GetSide()
- {
- return side;
- }
- public double GetRadiusIn()
- {
- return radiusIn;
- }
- public double GetRadiusOut()
- {
- return radiusOut;
- }
- public double GetArea()
- {
- return area;
- }
- private void CalculateSideFromRadiusIn()
- {
- side = radiusIn / (Math.Sqrt(3.0) / 6);
- }
- private void CalculateSideFromRadiusOut()
- {
- side = radiusOut / (Math.Sqrt(3.0) / 3);
- }
- private void CalculateSideFromArea()
- {
- side = Math.Sqrt(area / (Math.Sqrt(3.0) / 4));
- }
- private void CalculateRadiusInFromSide()
- {
- radiusIn = Math.Sqrt(3.0) / 6 * side;
- }
- private void CalculateRadiusInFromRadiusOut()
- {
- radiusIn = radiusOut / 2;
- }
- private void CalculateRadiusInFromArea()
- {
- CalculateSideFromArea();
- CalculateRadiusInFromSide();
- }
- private void CalculateRadiusOutFromSide()
- {
- radiusOut = Math.Sqrt(3.0) / 3 * side;
- }
- private void CalculateRadiusOutFromRadiusIn()
- {
- radiusOut = radiusIn * 2;
- }
- private void CalculateRadiusOutFromArea()
- {
- CalculateSideFromArea();
- CalculateRadiusOutFromSide();
- }
- private void CalculateAreaFromSide()
- {
- area = Math.Sqrt(3.0) / 4 * Math.Pow(side, 2);
- }
- private void CalculateAreaFromRadiusIn()
- {
- CalculateRadiusInFromSide();
- CalculateAreaFromSide();
- }
- private void CalculateAreaFromRadiusOut()
- {
- CalculateSideFromRadiusOut();
- CalculateAreaFromSide();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement