# Algoritmos Semestre 02, 2025 ## Importancia * Toda solución comienza como un algoritmo. * Antes de solucionar un problema, debemos saber qué pasos seguir. * Un buen algoritmo evita errores y retrabajo. * Pensar en algoritmos mejora la lógica y el razonamiento. ### Algoritmos en la vida diaria * Seguir una receta de cocina. * Armar un mueble paso a paso. * Indicar direcciones para llegar a un lugar. * Resolver un problema matemático. ## Definición Un algoritmo es un método para resolver un problema mediante una serie de pasos: * Precisos * Ordenados * Finitos ### Origen * Proviene de Al-Khwarizmi. * Matemático persa del siglo IX. * Su trabajo dio origen a la palabra "algoritmo". ![Flow Chart](/courses/2026/cc2005/assets/Al-Khwarizmi.png) ## Características de un algoritmo ## Preciso Cada paso está descrito de forma clara y concreta. No hay espacio a interpretaciones personales. Cualquier persona que lea el algoritmo debe saber exactamente qué hacer en cada paso. Recomendaciones * No usa términos vagos como “un poco” o “rápido”. * Especificar claramente cada acción. * Ordenar los pasos explicitamente. Agrega un poco de azúcar. Agrega una cucharada de azúcar al vaso. ## Definido Al ejecutarse varias veces con los mismos datos de entrada, siempre produce el mismo resultado. * No depende del azar. * No cambia su comportamiento entre ejecuciones. * Es predecible. 1. Presionar el número 4. 2. Presionar el botón +. 3. Presionar el número 6. 4. Presionar =. Cada vez que se siguen estos pasos, el resultado siempre será 10. ## Finito Termina después de un número limitado de pasos. No puede ejecutarse indefinidamente. * Tiene un inicio y un final claros. * Siempre llega a una conclusión. * No entra en ciclos infinitos. Sigue revolviendo la mezcla. Revuelve la mezcla durante 1 minuto y detente. ## No ambiguo Cada paso se sabe exactamente qué acción realizar. No existen decisiones implícitas ni instrucciones confusas. * Cada instrucción tiene un solo significado. * No requiere adivinar. * Las condiciones son claras. Coloca el recipiente donde corresponda. Coloca el recipiente sobre la mesa, junto a la ventana. ## Eficiente Resolver el problema usando la menor cantidad razonable de pasos y recursos. * Evita repeticiones innecesarias. * No realiza cálculos redundantes. * Buscar una solución óptima. Sumar 1 cien veces para calcular 100 + 100 Multiplicar 100 por 2 ## Ejemplo ### Problema Calcular el promedio de tres números. ### Algoritmo * Leer el primer número. * Leer el segundo número. * Leer el tercer número. * Sumar los tres números. * Dividir la suma entre 3. * Mostrar el resultado. ## Validación ### Algoritmo correcto * Cumple todas las propiedades. * Resuelve el problema planteado. * Produce resultados confiables. ### Algoritmo incorrecto * Falta un paso. * Tiene ambigüedades. * No termina. * Produce resultados erróneos. ## Errores comunes * Saltarse pasos. * Asumir datos que no existen. * No considerar casos límite. * Mezclar solución con implementación. ## Importancia de los algoritmos ### En resolución de problemas * Ordenan el pensamiento. * Ayudan a dividir problemas grandes. * Aplicables fuera de la informática. ### En programación * Base de cualquier software. * Facilitan mantenimiento y mejoras. * Permiten detectar errores antes de programar. ## Actividad ### Diseña un algoritmo Un cajero automático debe entregar dinero. ### Guía * ¿Qué datos necesita? * ¿Qué validaciones debe hacer? * ¿Cuándo termina el proceso? ### Producto final * Algoritmo escrito en pasos claros. * Sin código.