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 i = 0, p = 0, sw = 0;
string s = txtTexto.Text;
char l = char.Parse(txtCaracter.Text);
while(i < s.Length && sw == 0)
{
if (s[i] == l)
{
p = i;
sw = 1;
}
i++;
}
txtResultado.Text = $"El car谩cter {l} est谩 en la posici贸n {p}";
}
private void btnLimpiar_Click(object sender, EventArgs e)
{
txtTexto.Clear();
txtCaracter.Clear();
txtResultado.Clear();
txtTexto.Focus();
}
}
}
Definici贸n de los c贸digos del ejercicio:
int --> dato entero de 32 bits.
string --> dato de tipo cadena de texto.
char --> se usa para contener un 煤nico car谩cter unicode (con codificaci贸n Unicode de 16 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.
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.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
Length --> obtiene el n煤mero de caracteres del objeto String actual.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
&& --> el operador l贸gico AND ( && ) (conjunci贸n l贸gica) para un conjunto de operandos booleanos ser谩 true si y solo si todos los operandos son true. De lo contrario ser谩 false.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
$"{}" --> interpolaci贸n de cadenas proporciona una sintaxis conveniente para concatenar varios valores para formar una cadena.
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 desarrollado en Windows Forms permite ingresar una cadena de texto
y un car谩cter. Luego busca la primera posici贸n donde aparece ese car谩cter
dentro de la cadena y finalmente muestra el resultado en pantalla.
Librer铆as del programa
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;
Estas librer铆as permiten utilizar funciones b谩sicas de C# y crear interfaces
gr谩ficas utilizando Windows Forms.
Clase principal
public partial class frmEjercicio : Form
Se crea una clase llamada frmEjercicio, la cual representa
el formulario principal de la aplicaci贸n.
Constructor del formulario
public frmEjercicio()
{
InitializeComponent();
}
El constructor inicializa todos los componentes visuales del formulario,
como botones, cajas de texto y etiquetas.
Evento del bot贸n Mostrar
private void btnMostrar_Click(object sender, EventArgs e)
Este m茅todo se ejecuta cuando el usuario presiona el bot贸n
Mostrar.
Variables utilizadas
int i = 0, p = 0, sw = 0;
- i: controla la posici贸n del recorrido.
- p: almacena la posici贸n encontrada.
- sw: sirve como interruptor para detener la b煤squeda.
Captura de datos
string s = txtTexto.Text;
char l = char.Parse(txtCaracter.Text);
- s: guarda el texto ingresado.
- l: guarda el car谩cter que se desea buscar.
Recorrido de la cadena
while(i < s.Length && sw == 0)
El ciclo while recorre la cadena car谩cter por car谩cter
mientras no se llegue al final y el car谩cter a煤n no haya sido encontrado.
Comparaci贸n del car谩cter
if (s[i] == l)
Aqu铆 se compara cada car谩cter de la cadena con el car谩cter ingresado
por el usuario.
Guardar posici贸n encontrada
p = i;
sw = 1;
- p = i: guarda la posici贸n donde se encontr贸 el car谩cter.
- sw = 1: detiene el recorrido de la cadena.
Incrementar contador
i++;
Incrementa el valor de i para pasar al siguiente car谩cter
de la cadena.
Mostrar resultado
txtResultado.Text = $"El car谩cter {l} est谩 en la posici贸n {p}";
Muestra el resultado indicando en qu茅 posici贸n se encuentra el car谩cter.
Bot贸n Limpiar
private void btnLimpiar_Click(object sender, EventArgs e)
Este m茅todo limpia las cajas de texto del formulario.
txtTexto.Clear();
txtCaracter.Clear();
txtResultado.Clear();
txtTexto.Focus();
- Clear(): elimina el contenido de las cajas de texto.
- Focus(): coloca el cursor nuevamente en el campo principal.
C贸digo del ejercicio: Otra forma de hacer
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 i = 0;
string s = txtTexto.Text;
char x = char.Parse(txtCaracter.Text);
while(i < s.Length)
{
if (s[i] != x)
{
i++;
}
else
{
txtResultado.Text = $"El car谩cter {x} est谩 en la posici贸n {i}";
i = s.Length;
}
}
}
private void btnLimpiar_Click(object sender, EventArgs e)
{
txtTexto.Clear();
txtCaracter.Clear();
txtResultado.Clear();
txtTexto.Focus();
}
}
}
Definici贸n de los c贸digos del ejercicio:
int --> dato entero de 32 bits.
string --> dato de tipo cadena de texto.
char --> se usa para contener un 煤nico car谩cter unicode (con codificaci贸n Unicode de 16 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.
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.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
Length --> obtiene el n煤mero de caracteres del objeto String actual.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
&& --> el operador l贸gico AND ( && ) (conjunci贸n l贸gica) para un conjunto de operandos booleanos ser谩 true si y solo si todos los operandos son true. De lo contrario ser谩 false.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
$"{}" --> interpolaci贸n de cadenas proporciona una sintaxis conveniente para concatenar varios valores para formar una cadena.
Clear() --> borra todo el contenido del cuadro de texto.
Focus() --> establece el foco de entrada.
Explicaci贸n del C贸digo:
Este programa en Windows Forms permite buscar la primera posici贸n de un car谩cter dentro de una cadena de texto.
El usuario escribe un texto y un car谩cter, luego el programa muestra la posici贸n donde aparece por primera vez.
1. Librer铆as utilizadas
using System;
using System.Windows.Forms;
-
using System;
Permite utilizar funciones b谩sicas de C#.
-
using System.Windows.Forms;
Permite crear formularios y controles gr谩ficos.
2. Namespace y clase
namespace Ejercicio
{
public partial class frmEjercicio : Form
}
namespace Ejercicio
agrupa todas las clases del programa.
frmEjercicio : Form
representa el formulario principal de la aplicaci贸n.
3. Constructor del formulario
public frmEjercicio()
{
InitializeComponent();
}
El constructor se ejecuta cuando se abre el formulario.
InitializeComponent();
carga todos los controles del formulario.
4. Bot贸n Mostrar
private void btnMostrar_Click(object sender, EventArgs e)
Este m茅todo se ejecuta cuando el usuario hace clic en el bot贸n Mostrar.
Variables utilizadas
int i = 0;
string s = txtTexto.Text;
char x = char.Parse(txtCaracter.Text);
-
i
guarda la posici贸n actual del recorrido.
-
s
almacena el texto ingresado.
-
x
almacena el car谩cter a buscar.
5. Ciclo while
while(i < s.Length)
El ciclo while
recorre la cadena car谩cter por car谩cter.
s.Length
devuelve el tama帽o de la cadena.
6. Condici贸n if
if (s[i] != x)
{
i++;
}
Verifica si el car谩cter actual es diferente del car谩cter buscado.
Si son diferentes, la variable
i
aumenta en 1 para continuar buscando.
7. Cuando encuentra el car谩cter
txtResultado.Text = $"El car谩cter {x} est谩 en la posici贸n {i}";
i = s.Length;
Cuando encuentra el car谩cter:
-
Muestra la posici贸n encontrada.
-
Finaliza el ciclo asignando el tama帽o total de la cadena a
i.
8. Bot贸n Limpiar
private void btnLimpiar_Click(object sender, EventArgs e)
{
txtTexto.Clear();
txtCaracter.Clear();
txtResultado.Clear();
txtTexto.Focus();
}
Este m茅todo limpia todas las cajas de texto del formulario.
- Clear() elimina el contenido.
- Focus() coloca el cursor en la caja principal.
9. Funcionamiento General
- El usuario escribe una cadena.
- Ingresa un car谩cter.
- El programa recorre la cadena.
- Busca el primer car谩cter coincidente.
- Muestra la posici贸n encontrada.