Я пытаюсь решить или указать направление в правильном направлении. У меня возникли трудности с определением, где разместить формулу Area в классе треугольников (а не в основном). Область может иметь только «get», а не «set».C# Расчет треугольного типа и расчет площади
Следующая проблема - это идентификация типа треугольника на основе входной стороны, и если это «правильный» треугольник, добавление «типа» с «прямым», например (равнобедренный-правый). У меня есть перечисление для типов треугольников.
Я не ищу прямого ответа решить эту проблему, а какая-то помощь и коучинг, чтобы помочь лучше построить мои навыки
Вот класс структуры я генерироваться до сих пор в C#, пожалуйста, имейте в виду, не является полным.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TriangleCheck;
namespace TriangleCheck
{
public class Triangle
{
private StringBuilder _ErrorMsg;
private int[] _Sides;
private const int _nSides = 3;
private int _Area;
public Triangle(int[] Sides)
{
//Track amunt of errors recieved.
int nErrors = 0;
//Make sure ErrorMsg is cleared
_ErrorMsg = new StringBuilder();
//Did I get _nSides? If not, append to ErrorMsg and throw exception
if(Sides.Length != _nSides)
{
_ErrorMsg.Append(string.Format("Expected {0} sides but recieved {1}", _nSides, Sides.Length));
nErrors += 1;
}
//Is each side positive? If not, append to ErrorMsg and throw exception
for (int i = 0; i < Sides.Length; i++)
{
if (Sides[i] <= 0)
{
_ErrorMsg.Append(string.Format("{0} side is not a postive integer", Sides[i]));
nErrors += 1;
}
}
//Set input from user to private property _Sides
_Sides = Sides;
_Area = Area;
}
public int Area
{
get { return _Area; }
private set
{
int parameter =
}
}
public string ErrorMsg
{
get
{ return ErrorMsg.ToString();}
}
public bool IsRight
{
get
{
return ;
}
}
public int Sides
{
get
{ return _Sides; }
set
{
if (value > 0)
{
_Sides = value;
}
else
throw new ArgumentOutOfRangeException("Value must be postive!");
}
}
public TriangleTypes TriangleTypes
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}
public void ScaleUp(int[] ScaleFactor)
{
throw new System.NotImplementedException();
}
public override string ToString()
{
return "A Triangle with sides " + _Sides + " is Type: " + TriangleTypes + " with Area:" + Area;
}
}
}
Эх, что, если я предоставляю ** 4 ** стороны или ** 2 ** единицы? 'new Triangle (new int [] {1, 2, 3, 4, 5});' –
Вы также должны проверить, что сумма двух более коротких сторон больше самой длинной. – juharr
область: 'Math.Sqrt (p * (p - _Sides [0]) * (p - _Sides [1]) * (p - _Sides [2]))' где 'p = (_Sides [0] + _ Sides [ 1] + _ Sides [2])/2.0' –