/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl,
C#, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
using System;
class Triangulo {
static void Main() {
Console.Write("Digite Base del Triangulo: ");
float baseTriangulo= float.Parse(Console.ReadLine());
Console.Write("Digite Altura del Triangulo: ");
float alturaTriangulo= float.Parse(Console.ReadLine());
float unLado=0;
Console.Write("Desea conocer el typo de Triangulo, ");
Console.Write("Digite el valor de un lado (no la base), si no digite 0: ");
unLado= float.Parse(Console.ReadLine());
while(unLado !=0 && unLado<alturaTriangulo){
Console.WriteLine("si no desea saber el typo digite 0: ");
Console.Write("El valor de un lado no puede ser menor a "+
alturaTriangulo+"(altura): ");
unLado= float.Parse(Console.ReadLine());
}
//Console.Clear();
Console.WriteLine();
float area = CalcularAreaTriangulo(baseTriangulo, alturaTriangulo);
if(unLado !=0){
float elOtroLado=getLadoFaltante(baseTriangulo, alturaTriangulo, unLado);
Console.WriteLine("{0,12}{1,6}{2,8}{3,6}{4,6}{5,6}",
"Tipo", "Area", "Altura",
"Base", "Lado1", "Lado2");
Console.WriteLine("{0,12}{1,6}{2,8}{3,6}{4,6}{5,6}",
TipoTriangulo(baseTriangulo, elOtroLado, unLado),
area, alturaTriangulo, baseTriangulo, unLado,
elOtroLado);
}else{
Console.WriteLine("{0,6}{1,8}{2,6}",
"Area", "Altura","Base");
Console.WriteLine("{0,6}{1,8}{2,6}",
area, alturaTriangulo, baseTriangulo);
}
}
static float getLadoFaltante(float baseTriangulo, float alturaTriangulo, float lado){
double baseTrianguloRectangulo = Math.Sqrt(Math.Pow(lado,2)
-Math.Pow(alturaTriangulo,2));
if(baseTrianguloRectangulo==baseTriangulo){
return alturaTriangulo;
}else{
return (float)Math.Round(Math.Sqrt(Math.Pow(alturaTriangulo,2)+
Math.Pow((baseTriangulo-baseTrianguloRectangulo),
2)),
1);
}
}
static String TipoTriangulo(float baseTriangulo, float lado1, float lado2){
if(baseTriangulo == lado1 && baseTriangulo == lado2 && lado2 == lado1){
return "Equilátero";
}else if(baseTriangulo != lado1 && baseTriangulo != lado2 && lado2 != lado1){
return "Escaleno";
}else{
return "Isósceles";
}
}
static float CalcularAreaTriangulo(float baseTriangulo, float alturaTriangulo){
return (baseTriangulo*alturaTriangulo)/2;
}
}