public static Resultado calcularSegunTipo(List <IFormaGeometrica> formas, FormaGeometricaEnum tipo) { var resultado = new Resultado(); resultado.TipoFigura = tipo; formas = formas.Where(f => f.Tipo == tipo).ToList(); resultado.Cantidad = formas.Count(); resultado.AreaTotal = formas.Aggregate(0m, (acum, elem) => elem.CalcularArea() + acum); resultado.PerimetroTotal = formas.Aggregate(0m, (acum, elem) => elem.CalcularPerimetro() + acum); return(resultado); }
public static FormaGeometrica getForma(FormaGeometricaEnum tipo, decimal ancho) { switch (tipo) { case FormaGeometricaEnum.Cuadrado: return(new Cuadrado(tipo, ancho)); case FormaGeometricaEnum.Circulo: return(new Circulo(tipo, ancho)); case FormaGeometricaEnum.TrianguloEquilatero: return(new TrianguloEquilatero(tipo, ancho)); } return(new FormaGeometrica(tipo, ancho)); }
public Circulo(FormaGeometricaEnum tipo, decimal ancho) : base(tipo, ancho) { }
public FormaGeometrica(FormaGeometricaEnum tipo, decimal ancho) { Tipo = tipo; Lado = ancho; }
public TrianguloEquilatero(FormaGeometricaEnum tipo, decimal ancho) : base(tipo, ancho) { }
public Cuadrado(FormaGeometricaEnum tipo, decimal ancho) : base(tipo, ancho) { }