Zad 2 Zhernovoi
unknown
csharp
2 years ago
2.6 kB
11
Indexable
using System;
class Triangle
{
protected double sideA;
protected double sideB;
protected double sideC;
public Triangle(double a, double b, double c)
{
if (IsValidTriangle(a, b, c))
{
sideA = a;
sideB = b;
sideC = c;
}
else
{
Console.WriteLine("Недопустимые стороны для треугольника.");
}
}
private bool IsValidTriangle(double a, double b, double c)
{
return a + b > c && a + c > b && b + c > a;
}
public virtual void SetSides(double a, double b, double c)
{
sideA = a;
sideB = b;
sideC = c;
}
public virtual void PrintSides()
{
Console.WriteLine($"Стороны треугольника: {sideA}, {sideB}, {sideC}");
}
public virtual double CalculatePerimeter()
{
return sideA + sideB + sideC;
}
public virtual double CalculateArea()
{
double p = CalculatePerimeter() / 2;
return Math.Sqrt(p * (p - sideA) * (p - sideB) * (p - sideC));
}
}
class RightTriangle : Triangle
{
public RightTriangle(double a, double b, double c) : base(a, b, c)
{
}
public override void SetSides(double a, double b, double c)
{
if (IsRightTriangle(a, b, c))
{
base.SetSides(a, b, c);
}
else
{
Console.WriteLine("Недопустимые стороны для прямоугольного треугольника.");
}
}
public override double CalculateArea()
{
return 0.5 * sideA * sideB;
}
private bool IsRightTriangle(double a, double b, double c)
{
double[] sides = { a, b, c };
Array.Sort(sides);
return Math.Pow(sides[0], 2) + Math.Pow(sides[1], 2) == Math.Pow(sides[2], 2);
}
}
class Program
{
static void Main(string[] args)
{
Triangle triangle = new Triangle(3, 4, 5);
triangle.PrintSides();
Console.WriteLine("Периметр: " + triangle.CalculatePerimeter());
Console.WriteLine("Площадь: " + triangle.CalculateArea());
RightTriangle rightTriangle = new RightTriangle(3, 4, 5);
rightTriangle.PrintSides();
Console.WriteLine("Периметр: " + rightTriangle.CalculatePerimeter());
Console.WriteLine("Площадь: " + rightTriangle.CalculateArea());
Console.ReadLine();
}
}Editor is loading...