Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace main
- {
- class Picture
- {
- private int i;
- triangle[] elements = new triangle[4];
- public Picture(params string[] files)
- {
- foreach (string elem in files)
- {
- if (elem.Length % 2 == 1)
- {
- elements[i] = new equilateral(elem, 14);
- i++;
- }
- else
- {
- elements[i] = new isosceles(elem, 12, 60, 15);
- i++;
- }
- }
- }
- public void PrintAllInfo()
- {
- foreach (triangle elem in elements)
- {
- Console.WriteLine(elem.ToString());
- Console.WriteLine("");
- }
- }
- }
- abstract class triangle
- {
- protected short first, second, third, angle;
- protected string name, type;
- public triangle(string _name, short mod)
- {
- third = second = first = mod;
- angle = 60;
- this.name = _name;
- type = "Произвольный";
- }
- public abstract double square();
- public abstract double perimeter();
- }
- class isosceles : triangle
- {
- public isosceles(string _name, short mod, short angle, short second)
- : base(_name, mod)
- {
- {
- type = "Равнобедренный";
- this.angle = angle;
- this.second = second;
- third = (short)Math.Truncate(Math.Sqrt(second * second + first * first - 2 * first * second * Math.Cos(angle)));
- }
- }
- public override string ToString()
- {
- return string.Format("Имя данного треугольника - {0}\nВид треугольника: {1}\nДлины неравных сторон - {2} {3}\nУгол между сторонами - {4}\nПериметр - {5}\nПлощадь - {6}", name, type, first, second, angle, perimeter(), square());
- }
- public override double square()
- {
- double p = first + second + third;
- double s = Math.Sqrt(p * (p - first) * (p - second) * (p - third)) / 4;
- return s;
- }
- public override double perimeter()
- {
- return first + 2 * second;
- }
- }
- class equilateral : triangle
- {
- public equilateral(string _name, short mod)
- : base(_name, mod)
- {
- type = "Равносторонний";
- }
- public override double square()
- {
- return Math.Truncate(Math.Sqrt(3) * Math.Pow(first, 2) / 4);
- }
- public override double perimeter()
- {
- return 3 * second;
- }
- public override string ToString()
- {
- return string.Format("Имя данного треугольника - {0}\nВид треугольника: {1}\nДлины неравных сторон - {2} {3}\nУгол между сторонами - {4}\nПериметр - {5}\nПлощадь - {6}", name, type, first, second, angle, perimeter(), square());
- }
- }
- class main
- {
- static void Main(string[] args)
- {
- Picture GeomFig = new Picture("First", "Second", "Firstt", "Secondd");
- GeomFig.PrintAllInfo();
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement