Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Security.Cryptography;
- using System.Text;
- using System.Threading.Tasks;
- namespace _00.Demo
- {
- internal class Triangle
- {
- private double _a;
- private double _b;
- private double _c;
- private void ValidateSide(double value, string sideName)
- {
- if (value <= 0)
- {
- throw new ArgumentException($"The side {sideName} has to be more than zero");
- }
- }
- public double A
- {
- get
- {
- return this._a;
- }
- private set
- {
- ValidateSide(value, nameof(A));
- this._a = value;
- }
- }
- public double B
- {
- get
- {
- return this._b;
- }
- private set
- {
- ValidateSide(value, nameof(B));
- this._b = value;
- }
- }
- public double C
- {
- get
- {
- return this._c;
- }
- private set
- {
- ValidateSide(value, nameof(A));
- this._c = value;
- }
- }
- public Triangle(double a, double b, double c)
- {
- if (a + c <= b ||
- b + c <= a ||
- a + b <= c)
- {
- throw new ArgumentException("The triangle does not exist");
- }
- this.A = a;
- this.B = b;
- this.C = c;
- }
- public double P()
- {
- return this.A + this.B + this.C;
- }
- public double S()
- {
- double p = P() / 2;
- double S = Math.Sqrt(p * (p - this.A) * (p - this.B) * (p - this.C));
- return S;
- }
- public override string ToString()
- {
- return $"Triangle with sides:\na: {this.A}\nb: {this.B}\nc: {this.C}";
- }
- }
- }
- namespace _00.Demo
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- double a = double.Parse(Console.ReadLine());
- double b = double.Parse(Console.ReadLine());
- double c = double.Parse(Console.ReadLine());
- Triangle triangle = new(a, b, c);
- Console.WriteLine(triangle.ToString());
- Console.WriteLine("S= " + triangle.S());
- Console.WriteLine("P= " + triangle.P());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment