static void Main(string[] args) {
Console.WriteLine("Ingrese la masa del cuerpo en kg:");
masa = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Ingrese la altura desde donde se suelta el cuerpo en mts:");
altura = Convert.ToDouble(Console.ReadLine());
double tiempo = CalcularTiempo(altura, gravedad);
double velocidadFinal = CalcularVelocidadFinal(gravedad, tiempo);
double energiaPotencial = CalcularEnergiaPotencial(masa, gravedad, altura);
double energiaCinetica = CalcularEnergiaCinetica(masa, velocidadFinal);
MostrarResultados(tiempo, velocidadFinal, altura, energiaPotencial, energiaCinetica);
static double CalcularTiempo(double altura, double gravedad) {
return Math.Sqrt((2 * altura) / gravedad);
static double CalcularVelocidadFinal(double gravedad, double tiempo) {
return gravedad * tiempo;
static double CalcularEnergiaPotencial(double masa, double gravedad, double altura) {
return masa * gravedad * altura;
static double CalcularEnergiaCinetica(double masa, double velocidadFinal) {
return 0.5 * masa * Math.Pow(velocidadFinal, 2);
static void MostrarResultados(double tiempo, double velocidadFinal, double altura, double energiaPotencial, double energiaCinetica) {
Console.WriteLine("\nResultados:");
Console.WriteLine("Tiempo que tarda en caer: " + tiempo.ToString("#.##") + " seg");
Console.WriteLine("Velocidad final al llegar al suelo: " + velocidadFinal.ToString("#.##") + " mts/seg");
Console.WriteLine("Altura recorrida: " + altura.ToString("#.##") + " mts");
Console.WriteLine("Energía potencial gravitacional: " + energiaPotencial.ToString("#.##") + " J");
Console.WriteLine("Energía cinética al llegar al suelo: " + energiaCinetica.ToString("#.##") + " J");