Buscar notas por palabras clave es un proyecto práctico de C++ para quienes ya conocen los fundamentos del lenguaje. Convertirás unas pocas palabras recordadas en una herramienta local reutilizable que encuentra todas las notas coincidentes en distintas carpetas y muestra dónde aparecen realmente esas palabras.
El curso combina dos laboratorios guiados con un desafío independiente. Primero relacionarás palabras con identidades de documentos en un índice. Después combinarás palabras de consulta para encontrar todos los documentos que las contengan. Por último, aplicarás las mismas reglas a otra colección de notas. Cada laboratorio proporciona sus propias notas y código inicial, sin depender de archivos del entorno anterior.
Lo que aprenderás
Al completar el curso, podrás:
- identificar documentos por su ruta relativa y mantener separados los archivos del mismo nombre en distintas carpetas;
- crear con
mapysetun índice de palabras a conjuntos de documentos, sin duplicar un documento por palabras repetidas; - aplicar una regla de palabras completas basada en letras ASCII, sin distinguir sus mayúsculas y minúsculas;
- combinar conjuntos candidatos con AND para devolver todos los documentos que contengan todas las palabras de la consulta;
- mostrar rutas reales, números de línea y líneas originales coincidentes sin duplicar resultados de línea;
- reconstruir el índice desde las notas de práctica actuales al ejecutar de nuevo el programa, conservando los originales de referencia.
A quién va dirigido este curso
Este curso está dirigido a estudiantes de C++ que quieren usar contenedores estándar y lectura de archivos para crear un buscador útil con reglas claras y comprobables.
Requisitos previos: Navegación básica en la terminal y familiaridad con cadenas, funciones, vector, flujos de archivos y excepciones básicas de C++. Los laboratorios guiados introducen las operaciones necesarias de map y set, las identidades por ruta relativa y la intersección de conjuntos.
Entorno de aprendizaje: LabEx proporciona un entorno Linux preparado en el navegador, con compilador C++17, código inicial, colecciones de notas y Terminal. El código de apoyo para cargar archivos, obtener tokens y dar formato a la salida está preparado. Los comandos y mensajes del programa están en inglés; los nombres y textos de las notas conservan el contenido proporcionado.
Preguntas frecuentes
¿Deben aparecer todas las palabras en la misma línea?
No. AND se aplica a cada documento completo. Las palabras pueden estar en líneas distintas. El resultado muestra una sola vez cada línea original que contenga cualquiera de las palabras de consulta, para que puedas localizar las pruebas.
¿Este buscador entiende todos los idiomas?
La regla se limita a secuencias de letras ASCII y solo unifica sus mayúsculas y minúsculas; los demás bytes separan tokens. cat y catalog son palabras distintas. Se conservan los nombres de archivo Unicode y el texto original, pero el proyecto no ofrece segmentación multilingüe general.
¿Cómo entran las notas modificadas en el índice?
Cada ejecución vuelve a leer los archivos actuales y crea un índice nuevo en memoria. Ejecuta de nuevo el programa después de editar, añadir o eliminar una nota de práctica permitida. Los originales de referencia no cambian; no hay índice persistente ni servicio de actualización en segundo plano.

