public static void Main(string[] args)
int cantidadMoldes, cantidadBloques;
double ladoMolde, radioMolde, materialMolde;
Console.WriteLine("CG23001Ej2 - Calculo de material/bloques para Moldes");
Console.WriteLine("Autor: Alex Ernesto Castillo Godoy GT: 01\n");
Console.Write("Ingrese la longitud (valor real entre 0.10 y 1.00) de lado en mts: ");
ladoMolde = double.Parse(Console.ReadLine());
Console.Write("Ingrese la cantidad (valor entero >=100) de Moldes a fabricar: ");
cantidadMoldes = int.Parse(Console.ReadLine());
radioMolde = (ladoMolde - ladoMolde * 5 / 100)/2;
materialMolde = Fabrica.MaterialMolde(ladoMolde, radioMolde);
cantidadBloques = Fabrica.BloquesPedido(materialMolde, cantidadMoldes);
Console.WriteLine("\n\nRESULTADOS");
Console.WriteLine("Longitud de Lado del Molde: {0:###0.00} mts", ladoMolde);
Console.WriteLine("Radio de Esfera de Molde : {0:###0.0000} mts", radioMolde);
Console.WriteLine("Cantidad Moldes a Fabricar: {0:###0} unidades", cantidadMoldes);
Console.WriteLine("Material a usar por Molde : {0:###0.0000} Mts3", materialMolde);
Console.WriteLine("Bloques necesarios comprar: {0} Bloques", cantidadBloques);
public const double PI = Math.PI;
public static double Cubo(double lado)
volumen = lado*lado*lado;
public static double Esfera(double radio)
volumen = 4.0/3.0 * PI * Math.Pow(radio,3);
public static double CuboMenosEsfera(double lado, double radio)
volumen = Volumen.Cubo(lado) - Volumen.Esfera(radio);
public const float VOLUMENXBLOQUE= 1.25F;
public const float DESPERDICIO= 0.05F;
public static double MaterialMolde(double lado, double radio)
materialMolde = Volumen.CuboMenosEsfera(lado, radio);
materialMolde = materialMolde + materialMolde * DESPERDICIO;
public static int BloquesPedido(double materialMolde, int cantidadMoldes)
bloquesAcero = (int) Math.Ceiling( (materialMolde * cantidadMoldes) / VOLUMENXBLOQUE);