domingo, 10 de mayo de 2026

Eliminar un dígito x de un número introducido por teclado 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 btnMostrar_Click(object sender, EventArgs e)
        {
            int r = 0, p = 1, n, x;
            n = int.Parse(txtNum.Text);
            x = int.Parse(txtDigito.Text);
            while (n > 0)
            {
                int d = n % 10;
                if (d != x)
                {
                    r = r + d * p;
                    p *= 10;
                }
                n /= 10;
            }
            if (r == 0)
            {
                txtResultado.Text = "El resultado no tiene dígitos.";
            }
            else
            {
                txtResultado.Text = r.ToString();
            }
        }

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

Definición de los códigos del ejercicio:

int --> dato entero de 32 bits.
Parse() --> se utiliza para convertir una representación de cadena de un número en un entero equivalente con signo de 16/32/64 bits.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
> --> 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 asignación de división ( /= ) divide el valor del operando derecho de una variable y asigna el resultado a la variable.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
*= --> el operador de asignación de multiplicación ( *= ) multiplica el valor del operando derecho de una variable y asigna el resultado a la variable.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
ToString() --> devuelve una cadena que representa el objeto actual.
Clear() --> borra todo el contenido del cuadro de texto.
Focus() --> establece el foco de entrada.

Explicación del Código:

¿Qué hace el programa?

Este programa permite ingresar un número y un dígito. Luego elimina todas las veces que aparece ese dígito dentro del número ingresado y finalmente muestra el nuevo resultado.

Librerías utilizadas

using System; using System.Windows.Forms;

Estas librerías permiten usar funciones básicas del lenguaje y crear formularios en Windows Forms.

Clase principal del formulario

public partial class frmEjercicio : Form

Aquí se crea el formulario principal del programa. La palabra Form indica que el programa trabaja con una ventana gráfica.

Constructor del formulario

public frmEjercicio() { InitializeComponent(); }

El constructor inicializa todos los componentes del formulario, como botones, cajas de texto y etiquetas.

Evento del botón Mostrar

private void btnMostrar_Click(object sender, EventArgs e)

Este bloque se ejecuta cuando el usuario hace clic en el botón Mostrar.

Declaración de variables

int r = 0, p = 1, n, x;
  • r: Guarda el resultado final.
  • p: Ayuda a formar el nuevo número.
  • n: Guarda el número ingresado.
  • x: Guarda el dígito que será eliminado.

Lectura de datos

n = int.Parse(txtNum.Text); x = int.Parse(txtDigito.Text);

Convierte los datos escritos en las cajas de texto a números enteros.

Recorrido del número

while (n > 0)

El ciclo while recorre cada dígito del número mientras el valor sea mayor que cero.

Obtener el último dígito

int d = n % 10;

Obtiene el último dígito del número usando el operador módulo (%).

Verificar el dígito

if (d != x)

Verifica si el dígito actual es diferente al dígito que se desea eliminar.

Formar el nuevo número

r = r + d * p; p *= 10;

Agrega el dígito al nuevo número y aumenta la posición decimal.

Eliminar el último dígito

n /= 10;

Elimina el último dígito del número para continuar revisando los siguientes dígitos.

Mostrar el resultado final

if (r == 0) { txtResultado.Text = "El resultado no tiene dígitos."; } else { txtResultado.Text = r.ToString(); }

Si el resultado queda vacío, muestra un mensaje. Caso contrario, muestra el nuevo número obtenido.

Evento del botón Limpiar

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

Limpia todas las cajas de texto y coloca nuevamente el cursor en la caja del número.

No hay comentarios.:

Publicar un comentario

Calcular el volumen de un prisma rectangular 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. ❤️