Desarrollo de Soluciones en C#: Ejercicios 1 y 2 Explicados

En este artículo, exploraremos las soluciones para los ejercicios 1 y 2 de la evaluación presentada. Ambos ejercicios demuestran habilidades clave en C#, desde manipulación de datos hasta extensiones útiles. Acompáñame en este recorrido técnico.


Ejercicio 1: Muestra los números impares

Descripción del problema:

Se debe crear un método llamado NúmerosImpares que tome como parámetro un array de cadenas (string[]). Cada cadena contiene una serie de números enteros separados por espacios. El método debe devolver un nuevo array donde cada cadena contiene solo los números ubicados en las posiciones impares (índices 0, 2, 4, etc.) del array original.

Ejemplo de entrada y salida:

Entrada:

string[] arrayInicial = { "234 64 32", "23" };

Salida esperada:

string[] arrayFinal = { "234 32", "23" };

Solución en C#:

using System;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        string[] arrayInicial = { "234 64 32", "23" };
        string[] arrayFinal = NumerosImpares(arrayInicial);

        Console.WriteLine("Array final:");
        foreach (var cadena in arrayFinal)
        {
            Console.WriteLine(cadena);
        }
    }

    static string[] NumerosImpares(string[] arrayInicial)
    {
        return arrayInicial.Select(cadena =>
        {
            string[] numeros = cadena.Split(' ');
            return string.Join(" ", numeros.Where((num, index) => index % 2 == 0));
        }).ToArray();
    }
}

Explicación del código:

  1. División de cadenas: Cada cadena se divide en números usando Split(' ').
  2. Filtrado por índices impares: Con Where, seleccionamos únicamente los números en índices pares.
  3. Unión de resultados: Los números filtrados se combinan de nuevo en una cadena con string.Join.

Este enfoque usa LINQ, lo que garantiza un código conciso y fácil de entender.


Ejercicio 2: Crear una extensión para el trimestre

Descripción del problema:

Se debe crear una extensión en C# que reciba una fecha y devuelva el trimestre correspondiente (un valor int del 1 al 4).

Ejemplo de entrada y salida:

Entrada:

DateTime fecha = new DateTime(2024, 5, 15);

Salida esperada:

int trimestre = 2;

Solución en C#:

using System;

public static class ExtensionesFecha
{
    public static int ObtenerTrimestre(this DateTime fecha)
    {
        return (fecha.Month - 1) / 3 + 1;
    }
}

class Program
{
    static void Main(string[] args)
    {
        DateTime fecha = new DateTime(2024, 5, 15);
        int trimestre = fecha.ObtenerTrimestre();

        Console.WriteLine($"La fecha {fecha.ToShortDateString()} pertenece al trimestre {trimestre}.");
    }
}

Explicación del código:

  1. Creación de la extensión: El método ObtenerTrimestre se añade a la clase DateTime usando la palabra clave this.
  2. Cálculo del trimestre: Se utiliza la fórmula (fecha.Month - 1) / 3 + 1 para determinar a qué trimestre pertenece el mes.
  3. Llamada simple: Una vez creada, la extensión se usa como cualquier otro método de DateTime.

Conclusión:

Ambos ejercicios destacan la importancia de comprender conceptos fundamentales en C#, como la manipulación de cadenas, el uso de LINQ y la implementación de extensiones. Estas soluciones son versátiles y muestran cómo abordar problemas comunes de manera eficiente. Implementar estas técnicas no solo mejora nuestras habilidades de programación, sino que también fomenta un código limpio y reutilizable.

¿Listo para aplicar estas soluciones en tus proyectos? ¡Manos a la obra!

person encoding in laptop
Photo by Lukas on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde Tomás González: Formador y Desarrollador Web

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad