none
Cálculo depósito de agua RRS feed

  • Pregunta

  • Buenas.

    Tengo este código que te pide el radio, la altura de un cilindro, cantidad de tubos hecho en C# y quiero transformarlo a F#.

    ¿Alguna ayuda?

    Código C#:

    using System;
    
    namespace Calculo_agua_sencillo_consola_01_cs
    {
        class Program
        {
            static void Main(string[] args)
            {
                // Mostrar título de la ventana.
                Console.Title = "Cálculo litros de un depósito - C# 2019";
    
                // Tamaño de la ventna. 55 X y 16 Y.
                Console.SetWindowSize(55, 16);
    
                #region Variables.
                // Variables.
                const double Pi = 3.14;
                double radio = 0;
                double altura = 0;
                double volumen = 0;
                double litros = 0;
                double nivelAgua = 0;
                double resultadoPorcentaje = 0;
                double resultadoLitros = 0;
                double volumenLitros = 0;
                double mitadBarra = 0;
                int cantidadTubos = 0;
                double cantidadTubosLitros = 0;
                double totalLitros = 0;
                #endregion
    
                do
                {
                    #region Introducción de datos en la pantalla.
                    // Limpiar pantalla.
                    Console.Clear();
    
                    // Cursor visible.
                    Console.CursorVisible = true;
    
                    // Introducción de datos.
                    Console.Write("Introduce el radio en m.: ");
                    radio = double.Parse(Console.ReadLine());
                    Console.Write("Introduce la altura en m.: ");
                    altura = double.Parse(Console.ReadLine());
                    Console.Write("Introduce altura del agua. Máximo es de {0}: ", altura);
                    nivelAgua = double.Parse(Console.ReadLine());
                    Console.Write("Introduce cantidad de tubos: ");
                    cantidadTubos = int.Parse(Console.ReadLine());
                    #endregion
    
                    #region Cálculos.
                    // Cálculo volumen.
                    volumen = Pi * (radio * radio) * altura;
    
                    // Cálculo litros.
                    litros = volumen * 1000;
    
                    // Cálculo porcentaje en % del litro de agua.
                    resultadoPorcentaje = nivelAgua * (100.00 / altura);
    
                    // Cálculo litros de agua.
                    volumenLitros = Pi * (radio * radio) * nivelAgua;
                    resultadoLitros = volumenLitros * 1000;
    
                    // Cálculo litros por cantidad de tubos
                    cantidadTubosLitros = cantidadTubos * resultadoLitros;
    
                    // Cálculo cantidad de litros con total de tubos.
                    totalLitros = litros * cantidadTubos;
                    #endregion
    
                    #region Dibujado barra de progreso.
                    // Dibujo de la barra.
                    Console.WriteLine();
                    Console.WriteLine("0 %                     50 %                   100 %");
                    Console.WriteLine("┌────────────────────────┬───────────────────────┐");
                    Console.ForegroundColor = ConsoleColor.Yellow;
    
    
                    // Mitad de la barra para que no sea muy grande en la pantalla.
                    mitadBarra = resultadoPorcentaje / 2;
    
                    if (mitadBarra > 50)
                    {
                        mitadBarra = 50;
                    }
    
                    // Rellenar la barra.
                    for (int i = 1; i <= mitadBarra; i++)
                    {
                        Console.Write("█");
                    }
    
                    // Si llega a 100 se pone el # en rojo.
                    if (resultadoPorcentaje > 100)
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("#");
                    }
                    #endregion
    
                    #region Mostrar textos en pantalla.
                    // Pisición del texto a mostrar.
                    Console.SetCursorPosition(0, 9);
    
                    // Muestra porcentaje del depósito.
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write("\nPorcentaje: " + resultadoPorcentaje.ToString("N2") + " %.");
    
                    // Muestra cantidad de agua que hay actualmente y el total.
                    Console.Write("\nLitros de agua: " + resultadoLitros.ToString("N2") + " / " + litros + " L. total de un tubo.");
    
                    // Cantidad de tubos sin contar la base conectada, solo tubos independiente.
                    Console.Write("\nCantidad de Litros total por " + cantidadTubos + " tubos: " + 
                        cantidadTubosLitros.ToString("N2") + " / " + totalLitros.ToString("N2") + " L.");
                    #endregion
    
                    // Cursor invisible.
                    Console.CursorVisible = false;
    
                    // Pulse cualquier tecla para continuar.
                    Console.ReadKey();
                } while (true);
            }
        }
    }
    

    Salu2.


    http://electronica-pic.blogspot.com

    viernes, 3 de julio de 2020 8:56