Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace WorkTestApp
- {
- abstract class TwoDFigure
- {
- double _aSide;
- //Конструктор по умолчанию
- public TwoDFigure()
- {
- aSide = 0.0;
- name = "null";
- }
- //Параметризированный конструктор
- public TwoDFigure(double a, string n)
- {
- aSide = a;
- name = n;
- }
- //Базовый параметр, одна сторона
- public double aSide
- {
- get { return _aSide; }
- set { _aSide = value < 0 ? -value : value;}
- }
- //Базовый параметр, имя
- public string name { get; set; }
- //Абстрактный метод Площадь
- public abstract double Area();
- }
- class Circle : TwoDFigure
- {
- //Конструктор класса Circle
- public Circle(double r) : base(r, "Окружность") { }
- //Перегрузка метода нахождения площади
- public override double Area()
- {
- return Math.PI * Math.Pow(aSide, 2);
- }
- }
- class Triangle : TwoDFigure
- {
- double _bSide;
- double _cSide;
- public Triangle()
- {
- bSide = cSide = 0.0;
- }
- //Конструктор класса Triangle
- public Triangle(double a, double b, double c) : base(a, "Треугольник")
- {
- bSide = b;
- cSide = c;
- }
- //Две дополнительные стороны у треугольника
- public double bSide
- {
- get { return _bSide; }
- set { _bSide = value < 0 ? -value : value; }
- }
- public double cSide
- {
- get { return _cSide; }
- set { _cSide = value < 0 ? -value : value; }
- }
- //Перегрузка метода нахождения площади
- public override double Area()
- {
- double p = (aSide + bSide + cSide) / 2;
- return Math.Sqrt(p * (p - aSide) * (p - bSide) * (p - cSide));
- }
- }
- class Tests
- {
- public static void Main(string[] args)
- {
- TwoDFigure[] shapes = new TwoDFigure[2];
- shapes[0] = new Triangle(-3.0, -4.0, 5.0);
- shapes[1] = new Circle(5);
- for (int i = 0; i < shapes.Length; i++)
- {
- Console.WriteLine("Объект - " + shapes[i].name);
- Console.WriteLine("Площадь равна - " + shapes[i].Area());
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment