COMPARTE ESTE ARTÍCULO

¡Bienvenidos a este examen de práctica! A continuación encontrarás cuatro ejercicios inspirados en el examen de “Fundamentos de Programación”, pero con un grado de dificultad más suave. Después de cada pregunta, se incluye la solución en C# para que puedas comprobar tu comprensión.


1. Simulación de semáforo

Enunciado (versión simplificada):
Crea un programa en C# que muestre en consola el estado de un semáforo con tres etapas:

  1. VERDE
  2. AMARILLO
  3. ROJO

El programa debe:

  1. Empezar en el estado VERDE.
  2. Preguntar al usuario si quiere avanzar al siguiente estado (Y/N).
  3. Si responde “Y”, mostrar el siguiente estado; si responde “N”, volver a mostrar el estado actual.
  4. Detenerse automáticamente cuando llegue a ROJO y el usuario acepte (responda “Y”).

Solución:

using System;

class SemaforoSimplificado
{
    static void Main()
    {
        Console.WriteLine("Bienvenido al semáforo simplificado.");
        string[] estados = { "VERDE", "AMARILLO", "ROJO" };
        int indice = 0;
        bool continuar = true;

        while (continuar)
        {
            Console.WriteLine($"Estado actual: {estados[indice]}. ¿Avanzar al siguiente? (Y/N)");
            string respuesta = Console.ReadLine().ToUpper();

            if (respuesta == "Y")
            {
                if (indice < estados.Length - 1)
                {
                    indice++;
                }
                else
                {
                    Console.WriteLine("Has llegado al estado ROJO. Fin de la simulación.");
                    break;
                }
            }
            else if (respuesta == "N")
            {
                Console.WriteLine($"Manteniéndose en {estados[indice]}.");
            }
            else
            {
                Console.WriteLine("Por favor, introduce Y o N.");
            }
        }
    }
}

2. Números posteriores saltando uno

Enunciado (versión simplificada):
Escribe un programa que pida al usuario:

  1. Un número de inicio (entero).
  2. La cantidad de valores siguientes que desea ver.

El programa mostrará esos valores, incrementando de 2 en 2 (es decir, “saltando” un número cada vez).

Solución:

using System;

class SaltandoUnNumero
{
    static void Main()
    {
        Console.WriteLine("Bienvenido al generador de números saltando uno.");

        int inicio;
        do
        {
            Console.Write("Introduce un número entero de inicio: ");
        } while (!int.TryParse(Console.ReadLine(), out inicio));

        int cantidad;
        do
        {
            Console.Write("¿Cuántos números posteriores quieres mostrar? ");
        } while (!int.TryParse(Console.ReadLine(), out cantidad) || cantidad < 1);

        Console.WriteLine("Los números son:");
        int valor = inicio;
        for (int i = 0; i < cantidad; i++)
        {
            valor += 2;
            Console.WriteLine(valor);
        }
    }
}

3. Menú de configuración de un pedido

Enunciado (versión simplificada):
Crea un menú en consola que permita al usuario ajustar dos opciones de un pedido de comida rápida:

  1. Tamaño: “Pequeño” (P) o “Grande” (G)
  2. Añadir bebida: “Sí” (S) o “No” (N)

El menú debe mostrarse en bucle, hasta que el usuario elija salir (opción 3).

Solución:

using System;

class MenuPedido
{
    static void Main()
    {
        Console.WriteLine("Configuración de tu pedido:");

        string tamaño = "P";  // P = Pequeño, G = Grande
        string bebida = "N";  // S = Sí, N = No

        while (true)
        {
            Console.WriteLine("\n--- Menú de Ajustes ---");
            Console.WriteLine("1. Tamaño actual: " + (tamaño == "P" ? "Pequeño" : "Grande"));
            Console.WriteLine("2. Bebida añadida: " + (bebida == "S" ? "Sí" : "No"));
            Console.WriteLine("3. Salir");
            Console.Write("Elige una opción (1-3): ");

            string op = Console.ReadLine();
            if (op == "1")
            {
                Console.Write("Nuevo tamaño (P/G): ");
                string t = Console.ReadLine().ToUpper();
                if (t == "P" || t == "G") tamaño = t;
                else Console.WriteLine("Opción no válida.");
            }
            else if (op == "2")
            {
                Console.Write("¿Añadir bebida? (S/N): ");
                string b = Console.ReadLine().ToUpper();
                if (b == "S" || b == "N") bebida = b;
                else Console.WriteLine("Opción no válida.");
            }
            else if (op == "3")
            {
                Console.WriteLine("¡Pedido finalizado!");
                break;
            }
            else
            {
                Console.WriteLine("Selecciona una opción del 1 al 3.");
            }
        }
    }
}

4. Validación básica de fecha

Enunciado (versión simplificada):
Pide al usuario un día y un mes (sin año). Asume que el año no es bisiesto. El programa debe indicar si la fecha es válida (por ejemplo, 30 de febrero es inválido).

Solución:

using System;

class ValidarFecha
{
    static void Main()
    {
        Console.WriteLine("Validación de fecha (año no bisiesto).");

        int dia, mes;
        // Pedir día
        do
        {
            Console.Write("Introduce el día (1-31): ");
        } while (!int.TryParse(Console.ReadLine(), out dia) || dia < 1 || dia > 31);

        // Pedir mes
        do
        {
            Console.Write("Introduce el mes (1-12): ");
        } while (!int.TryParse(Console.ReadLine(), out mes) || mes < 1 || mes > 12);

        bool esValida = false;
        // Días máximos por mes
        int[] maxDias = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

        if (dia <= maxDias[mes])
            esValida = true;

        Console.WriteLine(esValida ? "FECHA VÁLIDA" : "FECHA INVÁLIDA");
    }
}

Contenido restringido

Acceso de usuarios existentes
   
Registro de un nuevo usuario
*Campo necesario

Categories:

Tags:

Comments are closed

Estado de acceso
ESTADO DE ACCESO
TRADUCTORES
COMPARTENOS
error: CONTENIDO PROTEGIDO