Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 2 Julio 2020, 09:54 am



Título: Calcular Litros de agua en portenje cambiando el valor de la altura
Publicado por: Meta en 2 Julio 2020, 09:54 am
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
  1. using System;
  2.  
  3. namespace namespace_Calculo_cilindro_consola_02_cs
  4. {
  5.    class Program
  6.    {
  7.        static void Main(string[] args)
  8.        {
  9.            Console.Title = "Cálculo geométrico cilindro - C# 2019";
  10.            Console.SetWindowSize(50, 25);
  11.  
  12.            // Variables.
  13.            double Pi = 3.14;
  14.            double radio = 0;
  15.            double altura = 0;
  16.            double areaLateral = 0;
  17.            double areaTotal = 0;
  18.            double volumen = 0;
  19.            double litros = 0;
  20.  
  21.            Console.WriteLine("===== Área lateral =====");
  22.            Console.Write("Introduce el radio en m.: ");
  23.            radio = double.Parse(Console.ReadLine());
  24.            Console.Write("Introduce la altura en m.: ");
  25.            altura = double.Parse(Console.ReadLine());
  26.  
  27.            // Cálculo área lateral.
  28.            areaLateral = 2 * Pi * radio * altura;
  29.  
  30.            Console.WriteLine("Área lateral = 2 x Pi x radio x altura.");
  31.            Console.ForegroundColor = ConsoleColor.Green;
  32.            Console.WriteLine("Área lateral: {0} m^2. (Metros cuadrados). \n", areaLateral);
  33.  
  34.            Console.ForegroundColor = ConsoleColor.Gray;
  35.            Console.WriteLine("===== Área total =====");
  36.  
  37.            // Cálculo área Total.
  38.            areaTotal = areaLateral + 2 * (Pi * (radio * radio));
  39.  
  40.            Console.WriteLine("Área total = Áreal lateral + 2 x (Pi x r^2)");
  41.            Console.ForegroundColor = ConsoleColor.Yellow;
  42.            Console.WriteLine("Área total = {0} m^2. \n", areaTotal);
  43.  
  44.            Console.ForegroundColor = ConsoleColor.Gray;
  45.            Console.WriteLine("===== Volumen =====");
  46.            Console.WriteLine("Volumen = Pi x radio^2 x altura");
  47.  
  48.            // Cálculo volumen.
  49.            volumen = Pi * (radio * radio) * altura;
  50.  
  51.            Console.ForegroundColor = ConsoleColor.Cyan;
  52.            Console.WriteLine("Volumen = {0} m^3. (Metros cúbicos). \n", volumen);
  53.  
  54.            Console.ForegroundColor = ConsoleColor.Gray;
  55.            Console.WriteLine("===== Litros =====");
  56.            Console.WriteLine("Litros = Volumen * 1000");
  57.            Console.WriteLine("Litros = {0} m^3 * 1000", volumen);
  58.  
  59.            // Cálculo litros.
  60.            litros = volumen * 1000;
  61.  
  62.            Console.ForegroundColor = ConsoleColor.Red;
  63.            Console.WriteLine("Litros = {0}", litros + " L.\n");
  64.  
  65.            Console.ForegroundColor = ConsoleColor.Gray;
  66.            Console.WriteLine("FIN DE PROGRAMA. Pulse cualquier tecla para salir.");
  67.            // Pulse cualquier tecla para salir.
  68.            Console.ReadLine();
  69.        }
  70.    }
  71. }
  72.  

(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?

Solo me falta saber estas dos cosas en papel. Luego lo transformo en C#.

Saludos.