jose marquez

Generation

generate functionSat, 22 Nov 2025

en la funcion void que emita con parametros de salida la el resultado y reciba parametros cantidad en euros, y realice un desglose de esa cantiodad de euros en el desglose ofical de las monedas que se pudee hacer de esa cantidad; te aporto lo que yo he hecho de codigo; namespace BloqueEEjercicio20FormsObtenerBilletes { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private string DesglosarEnCentimos(decimal euros) { // Céntimos iniciales (utilizando la corrección de redondeo) //long centimos = (long)((euros + 0.005m) * 100m); string resultado = ""; int totalPiezas = 0; // Usamos una variable auxiliar para el desglose, // y así 'centimos' siempre mantiene el valor restante. int cantidadRestante = 0; // --- Billetes --- int b500 = (int)(euros / 500m); if (b500 > 0) { resultado = $"{b500} billete/s de 500,00 €\n"; totalPiezas += b500; } cantidadRestante = int(euros % 500m); // 200 € = 20 000 céntimos long b200 = cantidadRestante / 20000L; if (b200 > 0) { resultado += b200 + " billete/s de 200,00 €\n"; totalPiezas += b200; } cantidadRestante %= 20000L; // <-- Aplicación de la lógica de la imagen // 100 € = 10 000 céntimos long b100 = cantidadRestante / 10000L; if (b100 > 0) { resultado += b100 + " billete/s de 100,00 €\n"; totalPiezas += b100; } cantidadRestante %= 10000L; // 50 € = 5 000 céntimos long b50 = cantidadRestante / 5000L; if (b50 > 0) { resultado += b50 + " billete/s de 50,00 €\n"; totalPiezas += b50; } cantidadRestante %= 5000L; // 20 € = 2 000 céntimos long b20 = cantidadRestante / 2000L; if (b20 > 0) { resultado += b20 + " billete/s de 20,00 €\n"; totalPiezas += b20; } cantidadRestante %= 2000L; // 10 € = 1 000 céntimos long b10 = cantidadRestante / 1000L; if (b10 > 0) { resultado += b10 + " billete/s de 10,00 €\n"; totalPiezas += b10; } cantidadRestante %= 1000L; // 5 € = 500 céntimos long b5 = cantidadRestante / 500L; if (b5 > 0) { resultado += b5 + " billete/s de 5,00 €\n"; totalPiezas += b5; } cantidadRestante %= 500L; // --- Monedas --- // 2 € = 200 céntimos long m2 = cantidadRestante / 200L; if (m2 > 0) { resultado += m2 + " moneda/s de 2,00 €\n"; totalPiezas += m2; } cantidadRestante %= 200L; // 1 € = 100 céntimos long m1 = cantidadRestante / 100L; if (m1 > 0) { resultado += m1 + " moneda/s de 1,00 €\n"; totalPiezas += m1; } cantidadRestante %= 100L; // 0.50 € = 50 céntimos long m50 = cantidadRestante / 50L; if (m50 > 0) { resultado += m50 + " moneda/s de 0,50 €\n"; totalPiezas += m50; } cantidadRestante %= 50L; // 0.20 € = 20 céntimos long m20 = cantidadRestante / 20L; if (m20 > 0) { resultado += m20 + " moneda/s de 0,20 €\n"; totalPiezas += m20; } cantidadRestante %= 20L; // 0.10 € = 10 céntimos long m10 = cantidadRestante / 10L; if (m10 > 0) { resultado += m10 + " moneda/s de 0,10 €\n"; totalPiezas += m10; } cantidadRestante %= 10L; // 0.05 € = 5 céntimos long m05 = cantidadRestante / 5L; if (m05 > 0) { resultado += m05 + " moneda/s de 0,05 €\n"; totalPiezas += m05; } cantidadRestante %= 5L; // 0.02 € = 2 céntimos long m02 = cantidadRestante / 2L; if (m02 > 0) { resultado += m02 + " moneda/s de 0,02 €\n"; totalPiezas += m02; } cantidadRestante %= 2L; // 0.01 € = 1 céntimo // Después del último módulo, la cantidad restante es el número de monedas de 1 céntimo. long m01 = cantidadRestante; if (m01 > 0) { resultado += m01 + " moneda/s de 0,01 €\n"; totalPiezas += m01; } resultado += "\nTotal: " + totalPiezas + " billetes/monedas"; return resultado; } // Devuelve true si el texto es un número válido con coma decimal y puntos opcionales private bool LeerCantidad(string texto, out decimal euros) { euros = 0; if (string.IsNullOrWhiteSpace(texto)) return false; // 1. Quita todos los puntos (miles) string sinPuntos = texto.Replace(".", ""); // 2. Cambia la coma por el punto => formato INGLES string conPuntoDecimal = sinPuntos.Replace(',', '.'); // 3. Prueba conversion simple return decimal.TryParse(conPuntoDecimal, out euros) && euros > 0; } private void btnCalcular_Click(object sender, EventArgs e) { if (!LeerCantidad(textBoxCantidad.Text, out decimal cantidad)) { MessageBox.Show("Escribe la cantidad con coma para decimales.\n" + "Ejemplos: 1234,56 1.234,56"); return; } lblResultado.Text = DesglosarEnCentimos(cantidad); } } }

Please keep input under 1000 characters

Want to kickstart your project?Use the new AI Studio to create your code