📚 DE LIBRE ACCESO · SIN LOGIN

Respuestas modelo

Consulta aquí las respuestas correctas y explicaciones de las autoevaluaciones y los tests del manual. Ideal para repasar antes de un test o aclarar dudas.

111
🎯 autoevaluación
355
📝 test · opción múltiple
111 / 111
✍️ test · abiertas con respuesta
37
temas cubiertos
✕ Limpiar

B4 · Boss Final 4 — Editor de Texto con Undo/Redo

10 preguntas con respuesta en este tema.

🎯 Autoevaluación (2)

1
🎯 AE

¿Qué estructuras se usan en un editor de texto con Undo/Redo?

  • A. Array simple
  • B. Dos pilas: una para el historial de acciones, otra para redo ✓ CORRECTA
  • C. Solo una pila
  • D. Una lista enlazada
💡 Por qué es correcta:

Undo/Redo clásico: pila de undo (acciones realizadas) y pila de redo (deshechas). Al deshacer, mueves de undo a redo.

2
🎯 AE

¿Qué operaciones deben ser O(1) en undo/redo?

  • A. Buscar texto
  • B. Push y pop de las pilas de undo/redo ✓ CORRECTA
  • C. Renderizar
  • D. Compilar
💡 Por qué es correcta:

Las pilas tienen push/pop O(1). Cada acción del usuario se pushea; undo hace pop de una y push a la otra.

📝 Test · Sección A · Opción múltiple (5)

1
📝 MC

¿Qué estructuras se usan en un editor con Undo/Redo?

  • A. Una sola pila
  • B. Dos pilas: undo y redo ✓ CORRECTA
  • C. Solo array
  • D. Hash
💡 Por qué es correcta:

Undo: pila de acciones. Redo: pila de acciones deshechas. Mover entre ellas.

2
📝 MC

¿Qué operación de undo/redo es O(1)?

  • A. Buscar texto
  • B. push y pop de las pilas ✓ CORRECTA
  • C. Renderizar
  • D. Compilar
💡 Por qué es correcta:

Pila: push/pop O(1). Cada acción del usuario se pushea; undo hace pop de una y push a la otra.

3
📝 MC

¿Cómo manejar memoria en undo/redo?

  • A. Variables globales
  • B. Smart pointers o struct con copia del estado ✓ CORRECTA
  • C. Comentarios
  • D. Prints
💡 Por qué es correcta:

Cada acción guarda el estado o delta. RAII con smart pointers.

4
📝 MC

Para un editor con archivos grandes:

  • A. Cargar todo en RAM
  • B. Buffers + paginación + solo deltas en undo ✓ CORRECTA
  • C. Solo strings
  • D. Solo memoria
💡 Por qué es correcta:

Para archivos grandes: no cargar todo, trabajar con chunks. Undo: guardar diffs, no copias completas.

5
📝 MC

Undo/redo se puede implementar con:

  • A. Solo if
  • B. Command pattern: cada acción es un objeto con execute() y undo() ✓ CORRECTA
  • C. Solo switch
  • D. Solo while
💡 Por qué es correcta:

Command pattern: encapsula acción como objeto. Permite undo/redo genérico.

✍️ Test · Sección B · Preguntas abiertas (3)

11
✍️ AB

¿Cómo implementarías undo/redo para un editor de texto? Da un esquema.

💡 Por qué es correcta:

Dos pilas: undoStack (acciones realizadas), redoStack (deshechas). Cada acción: push a undoStack, clear redoStack. Undo: pop de undoStack, ejecutar la inversa, push a redoStack. Redo: pop de redoStack, ejecutar la acción, push a undoStack.

12
✍️ AB

¿Qué desafíos tiene implementar undo/redo para operaciones de texto como copiar y pegar?

💡 Por qué es correcta:

Copiar: no modifica el documento, no necesita undo. Pegar: inserta texto en posición, undo debe eliminarlo. Cortar: combinación de copiar+eliminar. Eliminar: necesita guardar el texto eliminado y la posición para restaurarlo. Reemplazar: combinación de eliminar+insertar.

13
✍️ AB

Diseña la estructura de datos para almacenar el estado del editor que permita undo/redo eficiente.

💡 Por qué es correcta:

struct Accion { string tipo; // insert, delete, replace size_t posicion; string texto; // insertado o eliminado Accion* inversa; }; O mejor: guardar el estado completo (snapshot) si la memoria lo permite, o deltas (diff) si es muy grande.

📝 ¿Listo para evaluarte?

Regístrate o inicia sesión para tomar la autoevaluación o el test de este tema y registrar tu puntaje.