Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Meta en 02 de Julio 2020, 15:57

Título: C# Calcular volumen cilindro depósito de agua cambiando el valor de la altura
Publicado por: Meta en 02 de Julio 2020, 15:57
Lo tengo en unidades de metros.

Quiero calcular un cilindro como este, su volumen.
(https://img.sangakoo.com/img/img/cilindro.svg)

h = altura.
r = radio.
v = volumen.

(https://www.geogebra.org/resource/nePaZ7TY/zZpmPVMGqHANMw1B/material-nePaZ7TY.png)
Aquí hice un pequeño programa en la consola C# que calcula solo introduciendo dos valores, el radio del cilindro o depósito de agua y la altura.

Código: [Seleccionar]
using System;

namespace namespace_Calculo_cilindro_consola_02_cs
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Cálculo geométrico cilindro - C# 2019";
            Console.SetWindowSize(50, 25);

            // Variables.
            double Pi = 3.14;
            double radio = 0;
            double altura = 0;
            double areaLateral = 0;
            double areaTotal = 0;
            double volumen = 0;
            double litros = 0;

            Console.WriteLine("===== Área lateral =====");
            Console.Write("Introduce el radio en m.: ");
            radio = double.Parse(Console.ReadLine());
            Console.Write("Introduce la altura en m.: ");
            altura = double.Parse(Console.ReadLine());

            // Cálculo área lateral.
            areaLateral = 2 * Pi * radio * altura;

            Console.WriteLine("Área lateral = 2 x Pi x radio x altura.");
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Área lateral: {0} m^2. (Metros cuadrados). \n", areaLateral);

            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine("===== Área total =====");

            // Cálculo área Total.
            areaTotal = areaLateral + 2 * (Pi * (radio * radio));

            Console.WriteLine("Área total = Áreal lateral + 2 x (Pi x r^2)");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("Área total = {0} m^2. \n", areaTotal);

            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine("===== Volumen =====");
            Console.WriteLine("Volumen = Pi x radio^2 x altura");

            // Cálculo volumen.
            volumen = Pi * (radio * radio) * altura;

            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Volumen = {0} m^3. (Metros cúbicos). \n", volumen);

            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine("===== Litros =====");
            Console.WriteLine("Litros = Volumen * 1000");
            Console.WriteLine("Litros = {0} m^3 * 1000", volumen);

            // Cálculo litros.
            litros = volumen * 1000;

            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine("Litros = {0:N2}", litros + " L.\n");

            Console.ForegroundColor = ConsoleColor.Gray;
            Console.CursorVisible = false;
            Console.WriteLine("\n\n\nFIN DE PROGRAMA. Pulse cualquier tecla para salir.");
            // Pulse cualquier tecla para salir.
            Console.ReadLine();
        }
    }
}

(https://www.subeimagenes.com/img/captura-2145083.PNG)

Me falta hacer una fórmula que no se hacer sobre saber que cantidad de litros tengo en este depósito de agua o cilindro. Por ejemplo, ya que la altura es de 0 a 2 metros, quiero saber que si cambio la altura del agua, por ejemplo que está a 0.7 metros, que me muestre el porcentaje en %. Está claro que si está el nivel del agua a 2 metros de altura que es la máxima, será el 100 %.

1. Si la altura está en 0.7 metros. ¿Qué porcentaje muestra?

2. ¿Qué cantidad de Litros de agua hay cuando está el nivel de agua a 0.7 metros?

3. ¿Alguna idea de pasar este código de C# a C++ nativo con Visual Studio Community 2019?

Solo me falta saber estas dos cosas en papel.

Saludos.
Título: Re:C# Calcular volumen cilindro depósito de agua cambiando el valor de la altura
Publicado por: Ogramar en 18 de Octubre 2020, 20:00
Buenas, para quien revise este hilo comentaría lo siguiente:

1. Si la altura de 2 metros corresponde al 100% del volumen, 1 metro es el 50%, 0.5 metros es el 25%, etc. Con una regla de tres tenemos que Porcentaje ocupado = altura de agua * (100/2)

2. El volumen de agua para cierta altura se calcula con la fórmula V = Pi * R^2 * h. Se sustituye R por el radio del depósito y h por la altura de agua existente. Para radio 5 metros y altura de agua 0.7 metros sale 54,97787144 metros cúbicos ó 54977,87 litros

3. La lógica sería siempre la misma, ya es cuestión de adaptarlo a cada lenguaje o entorno.

Salu2