Primer Parcial
1. Implementación de algoritmos de ordenamiento y búsqueda
Investigar, analizar e implementar los siguientes algoritmos aplicados al manejo de vectores:
- Ordenamiento Burbuja (Bubble Sort).
- Búsqueda Binaria (Binary Search).
- Ordenamiento Burbuja Mejorado (Optimized Bubble Sort).
A partir del menú para el manejo de vectores desarrollado en las clases anteriores, incorporar las opciones correspondientes a cada uno de estos algoritmos.
Para el desarrollo de la actividad, se deben elaborar:
- El pseudocódigo en PSeInt de cada algoritmo.
- La implementación mediante funciones en Python de cada algoritmo.
- La integración de las funciones en el menú de manejo de vectores desarrollado previamente.
- Una explicación del funcionamiento, propósito y lógica de cada algoritmo.
Producto esperado
El estudiante deberá entregar un programa funcional que permita seleccionar, desde el menú de manejo de vectores, las opciones de Ordenamiento Burbuja, Búsqueda Binaria y Ordenamiento Burbuja Mejorado, demostrando el correcto funcionamiento de cada algoritmo tanto en PSeInt como en Python.
2. Implementación y procesamiento de matrices
Implementar en Python el pseudocódigo trabajado previamente en PSeInt para la creación, almacenamiento y visualización de una matriz.
Posteriormente, ampliar el programa desarrollado incorporando una nueva opción al menú principal que permita:
- Crear y mostrar una matriz en Python.
- Verificar si la matriz es cuadrada, es decir, si posee el mismo número de filas y columnas.
- En caso de que la matriz sea cuadrada, calcular y mostrar la suma de los elementos de la diagonal principal.
- Si la matriz no es cuadrada, mostrar un mensaje indicando que no es posible realizar la suma de la diagonal principal bajo la condición establecida.
Se deberá integrar esta funcionalidad al menú de manejo de matrices desarrollado durante las clases anteriores, aplicando estructuras de control, ciclos, funciones y manejo de arreglos bidimensionales.
Producto esperado
Entregar un programa funcional en Python que permita crear y visualizar una matriz, determinar si esta es cuadrada y, cuando cumpla dicha condición, calcular correctamente la suma de los elementos de su diagonal principal.
El programa deberá estar organizado mediante funciones, presentar un menú claro para el usuario y demostrar, mediante ejemplos de ejecución, el correcto funcionamiento de cada opción.

