viernes, 15 de mayo de 2026

Determinar la frecuencia de dígitos de un número en Windows Forms C Sharp

Código del ejercicio:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Ejercicio
{
    public partial class frmEjercicio : Form
    {
        public frmEjercicio()
        {
            InitializeComponent();
        }

        private void btnCalcular_Click(object sender, EventArgs e)
        {
            long c = 0, aux = 0, r = 0, fd = 0, n;
            n = Convert.ToInt64(txtNum.Text);
            while (c <= 9)
            {
                aux = n;
                fd = 0;
                while (aux > 0)
                {
                    r = aux % 10;
                    if (r == c)
                    {
                        fd++;
                    }
                    aux = (aux - r) / 10;
                }
                if(fd > 0)
                {
                    lbxResultado.Items.Add($"La frecuencia de {c} es: {fd}");
                }
                c++;
            }
        }

        private void btnLimpiar_Click(object sender, EventArgs e)
        {
            txtNum.Clear();
            lbxResultado.Items.Clear();
            txtNum.Focus();
        }
    }
}

Definición de los códigos del ejercicio:

long --> dato entero de 64 bits.
Convert.ToInt64() --> convierte un valor especificado en un entero de 64 bits con signo.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
<= --> el operador menor o igual ( <= ) devuelve true si el operando izquierdo es menor o igual que el operando derecho, y en false caso contrario.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
% --> el operador de modulo ( % ) devuelve el resto de la división.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
ToString() --> devuelve una cadena que representa el objeto actual.
Clear() --> borra todo el contenido del cuadro de texto.
Focus() --> establece el foco de entrada.
ListBox.Items.Clear() --> borra todos los elementos dentro de un cuadro de lista.
listBox.Items.Add() --> agregar elementos a un control de cuadro de lista

Explicación del Código:

¿Qué hace el programa?

Este programa permite ingresar un número y calcular cuántas veces aparece cada dígito del 0 al 9.

Ejemplo:

Número ingresado: 1223344

Resultado:
La frecuencia de 1 es: 1
La frecuencia de 2 es: 2
La frecuencia de 3 es: 2
La frecuencia de 4 es: 2

Librerías using

using System; using System.Windows.Forms;

Las librerías permiten usar funciones básicas de C# y los componentes gráficos de Windows Forms.

Namespace

namespace Ejercicio

El namespace organiza las clases del programa.

Clase del formulario

public partial class frmEjercicio : Form

Esta línea crea el formulario principal de la aplicación.

Constructor

public frmEjercicio() { InitializeComponent(); }

Inicializa todos los componentes del formulario.

Evento del botón Calcular

private void btnCalcular_Click(object sender, EventArgs e)

Este evento se ejecuta cuando el usuario hace clic en el botón "Calcular".

Variables utilizadas

long c = 0, aux = 0, r = 0, fd = 0, n;
  • c: dígito que se busca.
  • aux: copia auxiliar del número.
  • r: almacena el último dígito.
  • fd: frecuencia del dígito.
  • n: número ingresado.

Leer el número

n = Convert.ToInt64(txtNum.Text);

Convierte el texto ingresado en un número entero.

Recorrer los dígitos del 0 al 9

while (c <= 9)

Este ciclo busca la frecuencia de todos los dígitos del 0 al 9.

Extraer el último dígito

r = aux % 10;

Obtiene el último dígito del número.

Comparar dígitos

if (r == c) { fd++; }

Si el dígito es igual al buscado, aumenta el contador.

Eliminar el último dígito

aux = (aux - r) / 10;

Elimina el último dígito para continuar revisando el número.

Mostrar resultados

lbxResultado.Items.Add($"La frecuencia de {c} es: {fd}");

Muestra la frecuencia encontrada en el ListBox.

Botón Limpiar

txtNum.Clear(); lbxResultado.Items.Clear(); txtNum.Focus();

Limpia la caja de texto, elimina los resultados y coloca el cursor nuevamente en el TextBox.

No hay comentarios.:

Publicar un comentario

Generar la siguiente serie 1,1,1,2,2,2,3,3,3,4,4,4,... en Windows Forms C Sharp

Código del ejercicio: using System ; using System . Collections . Generic ; using System . ComponentModel ; using System . ...

Copyright ©2025 Ejercicios de programación. Todos los derechos reservados. ❤️