viernes, 29 de mayo de 2026

Elabore un programa en C Sharp a prueba de errores y que permita al usuario ingresar una frase y solicite la vocal que desea contabilizar en la frase ingresada. El programa preguntará al usuario si desea terminar o ingresar una nueva frase. Las vocales con tildes y diéresis no son tomadas en cuenta en C Sharp

Código del ejercicio:

string frase, vocal, nuevaFrase;
do
{
    do
    {
        Console.Write("Ingresar frase: ");
        frase = Console.ReadLine();
    } while (frase.Length <= 0);
    do
    {
        Console.Write("Ingresar vocal a contabilizar: ");
        vocal = Console.ReadLine();
    } while (vocal.ToLower() != "a" && vocal.ToLower() != "e" && vocal.ToLower() != "i" && vocal.ToLower() != "o" && vocal.ToLower() != "u");
    int total = frase.Where(c => c.ToString().ToLower() == vocal.ToLower()).Count();
    Console.WriteLine($"La frase tiene {total} vocales {vocal}");
    Console.Write("¿Desea continuar? s/n: ");
    nuevaFrase = Console.ReadLine();
} while (nuevaFrase.ToLower() == "s");

Definición de los códigos del ejercicio:

string --> dato de tipo cadena de texto.
do while --> este ciclo ejecutará el bloque de código una vez, antes de verificar si la condición es verdadera, luego repetirá el ciclo mientras la condición sea verdadera.
Console.Write() --> escribe un texto en pantalla.
Console.ReadLine() --> lee un dato desde teclado.
Length --> obtiene el número de caracteres del objeto String actual.
<= --> el operador menor o igual ( <= ) devuelve true si el operando izquierdo es menor o igual que el operando derecho, y en false caso contrario.
ToLower() --> convierte todos los caracteres a minúsculas.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
&& --> 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.
int --> dato entero de 32 bits.
Where() --> especifica qué elementos del origen de datos se devolverán en la expresión de consulta.
(parámetro1, parámetro2, ...) => expresión o instrucciones --> Una expresión lambda es una función o método anónimo con el que podemos crear tipo delegados y árboles de expresiones.
ToString() --> devuelve una cadena que representa el objeto actual.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
Count() --> devuelve el número total de elementos presentes en una matriz.
Console.WriteLine() --> escribe un texto en pantalla y avanza de línea.
$"{}" --> interpolación de cadenas proporciona una sintaxis conveniente para concatenar varios valores para formar una cadena.

Explicación del Código:

Objetivo del Programa

El programa permite ingresar una frase y luego solicitar una vocal para contar cuántas veces aparece dentro de la frase.

Después de mostrar el resultado, el programa pregunta si el usuario desea continuar o terminar.

Código Completo

string frase, vocal, nuevaFrase;

do
{
    do
    {
        Console.Write("Ingresar frase: ");
        frase = Console.ReadLine();

    } while (frase.Length <= 0);

    do
    {
        Console.Write("Ingresar vocal a contabilizar: ");
        vocal = Console.ReadLine();

    } while (vocal.ToLower() != "a" &&
             vocal.ToLower() != "e" &&
             vocal.ToLower() != "i" &&
             vocal.ToLower() != "o" &&
             vocal.ToLower() != "u");

    int total = frase.Where(c =>
                 c.ToString().ToLower() == vocal.ToLower()).Count();

    Console.WriteLine($"La frase tiene {total} vocales {vocal}");

    Console.Write("¿Desea continuar? s/n: ");
    nuevaFrase = Console.ReadLine();

} while (nuevaFrase.ToLower() == "s");

1. Declaración de Variables

string frase, vocal, nuevaFrase;

Se crean tres variables de tipo texto:

  • frase: guarda la frase ingresada por el usuario.
  • vocal: guarda la vocal que se desea contar.
  • nuevaFrase: guarda la respuesta del usuario para continuar o salir.

2. Ciclo Principal

do
{
   ...
} while (nuevaFrase.ToLower() == "s");

El ciclo do while repite el programa mientras el usuario escriba la letra "s".

Si escribe otra letra, el programa termina.

3. Ingreso de la Frase

do
{
    Console.Write("Ingresar frase: ");
    frase = Console.ReadLine();

} while (frase.Length <= 0);

El programa solicita una frase.

La condición:

frase.Length <= 0

verifica que la frase no esté vacía.

4. Ingreso de la Vocal

do
{
    Console.Write("Ingresar vocal a contabilizar: ");
    vocal = Console.ReadLine();

} while (vocal.ToLower() != "a" &&
         vocal.ToLower() != "e" &&
         vocal.ToLower() != "i" &&
         vocal.ToLower() != "o" &&
         vocal.ToLower() != "u");

El programa valida que el usuario ingrese únicamente una vocal.

La función ToLower() convierte el texto a minúsculas para aceptar mayúsculas y minúsculas.

5. Conteo de Vocales

int total = frase.Where(c =>
             c.ToString().ToLower() == vocal.ToLower()).Count();

Esta línea cuenta cuántas veces aparece la vocal dentro de la frase.

  • Where() busca coincidencias.
  • ToString() convierte caracteres en texto.
  • ToLower() convierte a minúsculas.
  • Count() cuenta los resultados encontrados.

6. Mostrar Resultado

Console.WriteLine($"La frase tiene {total} vocales {vocal}");

Muestra la cantidad de veces que aparece la vocal en la frase.

7. Preguntar si Desea Continuar

Console.Write("¿Desea continuar? s/n: ");
nuevaFrase = Console.ReadLine();

El programa pregunta si el usuario desea ingresar otra frase.

  • Si escribe s, el programa continúa.
  • Si escribe n, el programa finaliza.

Conclusión

El programa utiliza:

  • Ciclos do while.
  • Validación de datos.
  • Conversión de mayúsculas y minúsculas.
  • Búsqueda y conteo de caracteres.

También es un programa a prueba de errores porque evita:

  • Frases vacías.
  • Ingresar caracteres que no sean vocales.

No hay comentarios.:

Publicar un comentario

Generar los números pares del 0 hasta n número y excluir un número en C Sharp

Código del ejercicio: Console . Write ( "Ingresar número: " ); int num = int . Parse ( Console . ReadLine ()); Con...

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