Este examen presenta cuatro retos de nivel avanzado-moderado. Cada enunciado incluye la solución completa en C#. Está diseñado para que los alumnos trabajen al menos una hora comprendiendo y adaptando cada ejercicio.
1. MascotaVirtual: Serialización y estado
Enunciado:
A partir de la jerarquía de MascotaVirtual, PerroVirtual y GatoVirtual:
- Añade al proyecto un método estático
GuardarEstado(string ruta, List<MascotaVirtual> mascotas)que serialice la lista de mascotas a JSON (con sus propiedades: nombre, edad, raza y atributos concretos) y la escriba en el archivo indicado. - Implementa
List<MascotaVirtual> CargarEstado(string ruta)que lea el JSON y devuelva la lista de objetos correctamente tipados (PerroVirtualoGatoVirtual). - En
Main, crea al menos dos perros y dos gatos, guárdalos en"mascotas.json", luego cárgalos de nuevo e imprime por consola los datos de cada mascota.
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;
// --- Clases de mascota (resumidas) ---
public abstract class MascotaVirtual
{
public string Nombre { get; }
...

2. Estadísticas avanzadas de array
Enunciado:
Tomando como base el array de números del ejercicio original:
- Declara y rellena un array con los enteros:
45, 23, 12, 7, 54, 12, 98, 33, 23, 65, 87, 54, 28, 99, 33, 100 - Con LINQ, calcula y muestra:
- Valores únicos (aparecen una sola vez), ordenados ascendentemente.
- Frecuencia de cada número (Valor → Veces).
- Mínimo, máximo, promedio y mediana del conjunto.
- En
Main, imprime cada resultado con claridad.

3. CofreSecreto con acceso asíncrono y logging
Enunciado:
Mejora la clase CofreSecreto original para que:
- Implemente un método
async Task<bool> IntentarAbrirAsync(int[] codigo)que simule cada verificación con un retraso de 500 ms (Task.Delay). - Mantenga un registro en
List<string> Logcon entradas como"[timestamp] Intento correcto"o"[timestamp] Intento fallido". - Lance
CodigoIncorrectoExceptiontras 3 intentos fallidos acumulados (aunque no sean consecutivos). - En
Main, itera solicitando códigos hasta abrir el cofre o agotar los intentos. Al finalizar, muestra todo el log.

4. Extensión con métodos genéricos y delegados
Enunciado:
- Crea un método genérico de extensión
PrintIf<T>(this IEnumerable<T> seq, Func<T,bool> predicado)que recorra la secuencia y muestre por consola sólo los elementos que cumplan la condición. - En
Main, usaPrintIfsobre:- La lista de enteros del ejercicio 2 para mostrar sólo los pares.
- Una lista de cadenas (
"uno","dos","tres","cuatro") para mostrar sólo las de longitud ≥ 4.

using System;
using System.Collections.Generic;
using System.Linq;
public static class Extensiones
{
public static void PrintIf<T>(
this IEnumerable<T> seq, Func<T,bool> predicado)
{
foreach (var item in seq)
if (predicado(item))
Console.WriteLine(item);
}
}
class ProgramaDelegados
{
static void Main()
{
static void Main()
{
int[] numeros = {45,23,12,7,54,12,98,33,23,65,87,54,28,99,33,100};
Console.WriteLine("Números pares:");
numeros.PrintIf(n => n % 2 == 0);
var palabras = new List<string>{"uno","dos","tres","cuatro"};
Console.WriteLine("\nPalabras de longitud ≥ 4:");
palabras.PrintIf(s => s.Length >= 4);
}
}
¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.

NUESTRAS ÚLTIMAS PUBLICACIONES
- ¡VOLVEMOS A NUESTROS HORARIOS HABITUALES!

- Especificadores de formato en C (printf/sprintf y scanf)

- Propuestas de actividades avanzadas con XML, DTD, XPath y XSLT

- Apuntes extensos de XML y XSLT

- El momento IDEAL para impulsar tu FORMACIÓN y alcanzar tus Metas Académicas: LAS NAVIDADES.

- 20 ejercicios de funciones avanzadas en Python (al estilo de Ackermann)

- Cómo guardar una página web completa en MySQL con PHP (urlencode, BLOB y otras técnicas)

- 60 ejercicios de funciones recursivas en Python para la carrera de Informática

- SIMULACRO 2 – FP Programación de Videojuegos

ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido





































































































































































































































































INFORMACIÓN SOBRE 







Comments are closed