UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
FACULTAD DE CONTADURÍA Y ADMINISTRACIÓN
SUAYED
SISTEMA A DISTANCIA
LICENCIATURA EN INFORMÁTICA
SEMESTRE 2025-2
GRUPO: 8296
MATERIA: PROGRAMACIÓN (2237)
UNIDAD 5. COMPLEMENTARIA 1
ASESOR. MARÍA DE JESÚS QUIJADA ORTIZ
ALUMNO: JOSÉ ANTONIO GARCÍA SANDOVAL
NO. CUENTA: 304347089
21 DE MAYO DE 2025
Actividad Complementaria 1 de la Unidad 5
Se cuenta con la base de datos del estado de Aguascalientes con fecha 2021 del mes de abril, y se
desea buscar el sueldo del Sr. Humberto Ramos Chávez; realizar un programa que cargue el
archivo en memoria y realice dos búsquedas por el mismo ID: 276638993.
a) Una búsqueda secuencial, anotar el número de condicionantes antes de llegar al resultado,
junto con el tiempo que se tarda en dar la respuesta.
b) Una búsqueda binaria, anotar el número de condicionantes antes de llegar al resultado, junto
con el tiempo que se tarda en dar la respuesta. Si realizas de manera adecuada la búsqueda
binaria te darás cuenta que el resultado es "el logaritmo base 2 de n", es decir Log2 n; o lo que es lo
mismo n=2^x; por lo tanto, si tomamos esta base de datos con 34595, 34595=2^x; donde
x=15.0782759, por lo tanto, no deberás ocupar más de 16 condiciones para encontrar cualquier
persona dentro de esta base de datos.
En el mismo programa deberás dejar un ciclo para realizar cualquier otra búsqueda binaria
por cualquier ID. La base de datos puedes descargarla de la Liga:
https://oficinavirtual.issste.gob.mx/Transparencia/Padr%C3%B3n-de-Derechohabientes-
Activos#
Introducción
Este programa en C++ implementa técnicas de búsqueda sobre una base de datos del estado de
Aguascalientes, correspondiente al mes de abril del año 2021. La finalidad es encontrar el sueldo de un
ciudadano identificado por su ID, utilizando dos algoritmos distintos: búsqueda secuencial y búsqueda
binaria. Este ejercicio sirve como ilustración del uso de abstracciones de datos y control, conceptos
fundamentales en la programación estructurada.
Para la abstracción de datos, se optó por un enfoque estructurado a partir de un tipo de dato
personalizado que modela a un empleado, agrupando sus datos personales. Esta elección permite mantener
una alta cohesión en el diseño del programa y facilita la manipulación ordenada de los registros.
Desde el punto de vista del control, se implementaron estructuras de control secuencial y condicionales,
así como una estructura repetitiva para permitir búsquedas múltiples. Estas estrategias reflejan una
abstracción de control estructurada, conforme a las buenas prácticas señaladas en la unidad de estudio.
2
En la búsqueda binaria, se valida la eficiencia teórica conforme a la función log₂(n), lo que garantiza que el
número de comparaciones no exceda el orden de magnitud esperado para grandes volúmenes de datos. (Vid.
UNAM, 2024, pp. 154-165)
Este programa ejemplifica el uso de estructuras en C++ para modelar datos provenientes de un archivo
de texto plano con formato tabulado. La clase estructural `Ciudadano` representa un modelo lógico
de cada registro contenido en la base de datos, encapsulando todos los atributos relevantes de un
trabajador del sector público, tales como:
- Identificadores personales: id, nombre, apellidos, sexo
- Datos administrativos: año, mes, fecha de ingreso y alta, antigüedad
- Datos laborales: tipo de nombramiento, clave de trabajo, rama institucional
- Remuneración: sueldo bajo el ISSSTE y multiplicador salarial
- Ubicación institucional: número de ramo, ramo, entidad, modalidad, sector
Cada uno de estos campos ha sido definido con el tipo de dato más adecuado (`string`, `int`, `double`, `char`,
etc.) para optimizar tanto la carga como la consulta de datos.
La función `cargarDatos()` es responsable de leer el archivo de texto línea por línea. Para lograrlo, se emplea
un objeto `stringstream`, el cual permite interpretar cada línea como un flujo de entrada delimitado por
tabulaciones (`'\t'`), y así extraer los valores campo por campo utilizando la función estándar `getline`.
PSEUDOCÓDIGO PARA PROGRAMA DE BÚSQUEDA EN UNA BASE DE DATOS
_____________________________________________________
EVIDENCIAS
C++. Código fuente
3
Ejecución
4
Conclusión
Se aplicaron conceptos de la unidad 5, abstracción, para conformar el struct ciudadano, con los campos
como año, apellidos, nombre, id. Por otro lado, getline, visto en unidades pasadas, sirvió para disponer la
información en el módulo de búsqueda.
REFERENCIAS
OpenAI. (2025). [Búsqueda acerca de pseudocódigo; a partir de las indicaciones del ejercicio],
ChatGPT (Mar 14 version) [Large language model]. https://chatgpt.com/, 6 de mayo de 2025.
UNAM. (2024). Apuntes digitales. Informática. Programación. (Autores: Cervantes, Germán;
Díaz, Hugo; García, Rocío). México: UNAM, pp. 117-143.