# T03: Algoritmos Un algoritmo es un conjunto de **instrucciones** que le dicen a un ser humano COMO REALIZAR una tarea específica, dichas instrucciones pueden estar escritas en código o lenguaje natural. Un algoritmo puede ser expresado con palabras o números. Un algoritmo es cualquier actividad o evento con inicio y final, que tenga una serie de pasos lógicos para lograr su ejecución. Y estos suelen ser representados mediante diagramas de flujo. Existen dos tipos de algoritmos: - Algoritmos cualitativos (informales) - Algoritmos cuantitativos (formales) --- ## Algoritmos cualitativos (informales) No requieren de cálculos numéricos para su ejecución. En su lugar, se deben ejecutar secuencias lógicas. Por ejemplo: las instrucciones para ensamblar un artefacto. --- ## Algoritmos cuantitativos (formales) Requieren de cálculos numéricos (por ejemplo la solución de una ecuación). Si el cálculo numérico puede ser procesado por una persona, entonces es un **algoritmo cuantitativo no computacional**. Si los cálculos numéricos son muy complejos entonces requieren poder computacional. A esta clase de algoritmos se les dice que son **algoritmos cuantitativos computacionales**. - **Algoritmo cuantitativo no computacional:** Estos algoritmos requieren de operaciones numéricas simples, que un ser humano puede resolver sin necesidad de usar un sistema computacional. Por ejemplo una receta de cocina, un cálculo numérico sencillo o las instrucciones para llegar a un lugar. - **Algoritmo cuantitativo computacional:** Estos algoritmos requieren de operaciones numéricas complejas que deben resolverse con dispositivos de cálculo, como una computadora o calculadora. Ecuaciones de mucha complejidad o códigos que solo pueden ser interpretados por una máquina, son ejemplos de este tipo de algoritmo. --- ## Metodología para desarrollar un algoritmo Cuando se desarrolla un algoritmo, cualquier usuario podría ejecutarlo siempre y cuando cumpla unos requisitos iniciales. Para desarrollar un algoritmo, se tienen las siguientes fases: - **FASE 01: Análisis de requisitos (objetivo y condiciones)** En esta fase se identifica lo siguiente: - **Objetivo:** Identificar el objetivo claro del algoritmo. - **Condiciones iniciales:** Identificar los requisitos que debe cumplir el usuario para poder desarrollar el algoritmo. - **Condiciones de incumplimiento:** Identificar todos los condicionales del algoritmo. - **Condiciones de cumplimiento:** Identificar el estado del usuario cuando se cumple el algoritmo. --- - **FASE 02: Diseño del algoritmo (diagrama de flujo)** Realizar un diagrama de flujo donde muestre el paso a paso lógico por medio de las siguientes figuras: - **Círculos:** INICIO y FIN - **Rectángulos:** Acciones - **Rombos:** Condicionales - **Rombos anidados:** Bucles - **Flechas:** Orden de secuencia. Después de tener el diagrama de flujo, realizar un análisis. --- - **FASE 03: Construcción del algoritmo (código fuente)** Conversión del **diagrama de flujo** a **CÓDIGO FUENTE**. El código fuente es cualquier código que usa un lenguaje de programación que entienda una PC. En este caso sería PYTHON pero de momento se usará PSEUDOCÓDIGO. Se debe identificar el algoritmo. La identificación debe tener: - **TÍTULO:** “Nombre del algoritmo” - **AUTOR:** “Creador del algoritmo” - **FECHA:** “Fecha de creación o última modificación del algoritmo” --- ## Algoritmo para ir al colegio (ejemplo) Desarrolle el siguiente ejercicio: :::{dropdown} Algoritmo para ir al colegio En su cuaderno desarrolle un **algoritmo que permita a un estudiante ir al colegio**. Tenga en cuenta lo siguiente: > El estudiante inicialmente está en su casa. Luego debe ponerse el uniforme e ir al garaje para intentar prender la moto. > > Si la moto NO prende, entonces salir del garaje, luego salir de la casa para llegar al colegio a pie. > > Si la moto SI prende, entonces abrir el garaje, luego salir del garaje para llegar al colegio en moto. ::: A continuación se muestra la solución del desarrollo del algoritmo. ### FASE 01: Análisis de requisitos :::{admonition} (Objetivo y condiciones) :class: tip #### OBJETIVO - Llegar al colegio. #### CONDICIONES INICIALES - El estudiante debe estar en su casa - La casa del estudiante debe tener un garaje. - El estudiante no debe tener puesto el uniforme. - El estudiante debe tener una moto en el garaje. #### CONDICIONES DE INCUMPLIMIENTO - La moto no prende. #### CONDICIONES DE CUMPLIMIENTO - El estudiante está en el colegio. - El estudiante tiene el uniforme puesto. - La moto puede estar en el colegio o en el garaje. ::: ### FASE 02: Diseño del algoritmo :::{admonition} (Diagrama de flujo) :class: tip ```{figure} ./recursos/image14.png :align: center :width: 400 ``` ::: ### FASE 03: Construcción del algoritmo :::{admonition} (Código fuente) :class: tip ```{list-table} * - TÍTULO - Algoritmo para que un estudiante pueda ir al colegio * - AUTOR - Camilo Fonseca * - FECHA - Domingo, 12 de Abril de 2026 - 03:38pm ``` ```python INICIO 1. Ponerse el uniforme 3. Ir al garaje 4. Intentar prender la moto 5. Si (la moto SI prende) 5.1 Abrir el garaje 5.2 Sacar la moto 5.3 Cerrar el garaje 5.4 Conducir hasta el colegio 6. Si (la moto NO prende) 6.1 Salir del garage 6.2 Salir de la casa 6.3 Cerrar la puerta 6.4 Caminar hasta el colegio 7. Llegar al colegio FIN ``` :::