Fundamentos de Algoritmos dsssaaaaaaaaaaaaaaaaaaaa

AIZANCHOWv 0 views 29 slides Oct 07, 2025
Slide 1
Slide 1 of 29
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29

About This Presentation

Fundamentos de Algoritmos dsssaaaaaaaaaaaaaaaaaaaa


Slide Content

Fundamentos de Algoritmos Explorando la lógica esencial de la computación moderna.

Índice • Definición y Orígenes de los Algoritmos • Características y Componentes Fundamentales • Estructuras de Control Algorítmicas • Métodos de Representación: Pseudocódigo y Diagramas • Aplicaciones y Consideraciones Éticas

¿Qué es un Algoritmo? Un algoritmo es una secuencia finita y ordenada de instrucciones bien definidas. Está diseñado para resolver un problema específico o realizar una tarea en un número finito de pasos. Un ejemplo fundamental es el Algoritmo de Euclides, que determina el máximo común divisor de dos números, demostrando su aplicación práctica. Algoritmos: secuencia de instrucciones para resolver problemas.

Orígenes Históricos El concepto de algoritmo se remonta al matemático persa Al-Juarismi (c. 780-850 d.C.), cuyo tratado "Algoritmi de numero Indorum" difundió el sistema de numeración indo-arábigo y métodos de cálculo, dando origen al término. Sin embargo, algoritmos como el de Euclides para el máximo común divisor son aún más antiguos. La formalización moderna, iniciada por figuras como Alan Turing en el siglo XX con la máquina de Turing, transformó estos procedimientos en la base de la computación y la inteligencia artificial. Manuscrito medieval con diagramas geométricos y texto.

Engranajes que simbolizan la precisión de los algoritmos. Importancia en la Computación • Fundamento de software: desde sistemas operativos hasta apps móviles. • Procesamiento de datos: motores de búsqueda (Google), análisis Big Data. • Inteligencia Artificial: Machine Learning, redes neuronales (AlphaGo). • Ciberseguridad: Cifrado (AES, RSA), protección de transacciones digitales.

Definición Formal Un algoritmo es una secuencia finita y bien definida de instrucciones para resolver un problema o realizar una tarea. Cada paso debe ser preciso y unívoco, garantizando un resultado específico a partir de entradas determinadas. Un ejemplo clásico es el algoritmo de Dijkstra para encontrar la ruta más corta en un grafo. Flujo del proceso de comunicación: instrucciones definidas para resolver problemas.

Pasos infinitos del factorial: crecimiento secuencial. Característica: Finitud y Precisión • Finitud: Terminación garantizada en pasos finitos. • Evita bucles infinitos; por ejemplo, el Problema de la Parada. • Precisión: Pasos unívocos, sin ambigüedades. • Determinismo: Misma entrada, misma salida siempre.

Característica: Determinismo y Generalidad • Determinismo: Misma entrada siempre produce la misma salida. • Ejemplo: `2 + 2` siempre resulta en `4`; Quicksort siempre igual. • Generalidad: Resuelve una clase de problemas, no un caso único. • Ejemplo: Búsqueda binaria funciona en cualquier lista ordenada.

Característica: Eficiencia y Robustez La eficiencia mide el uso óptimo de recursos computacionales, como tiempo y memoria, crucial en algoritmos de búsqueda como A*. La robustez asegura que el algoritmo resista entradas inesperadas o fallos, evitando colapsos en sistemas críticos como los de control aéreo. Ambos son pilares para la fiabilidad de cualquier software moderno. Piezas de rompecabezas interconectadas simbolizan la coherencia y la unidad.

Funciones algebraicas: entradas y salidas. Componentes Fundamentales • **Entrada:** Datos iniciales; ej., valores para calcular promedio. • **Proceso:** Pasos lógicos para transformar; ej., suma y división. • **Salida:** Resultado final obtenido; ej., el promedio calculado. • **Ejemplo:** Receta de cocina: ingredientes (entrada), pasos (proceso), plato (salida).

Entrada de Datos La entrada de datos es el mecanismo fundamental mediante el cual un algoritmo recibe la información necesaria para su procesamiento. Esto implica la declaración de variables para almacenar tipos específicos de datos, como un `int` para la edad o un `float` para una temperatura. Los valores pueden ser leídos interactivamente desde el teclado por un usuario o importados de fuentes persistentes como archivos CSV o bases de datos SQL, crucial para sistemas como el análisis de datos meteorológicos. Manos analizando datos en un portátil, entrada de datos para algoritmos.

Procesamiento Lógico El procesamiento lógico transforma datos de entrada mediante operaciones definidas para alcanzar un resultado. Esto incluye cálculos aritméticos, comparaciones lógicas y estructuras de control como bucles o condicionales. Por ejemplo, un algoritmo de ordenamiento como Quicksort aplica comparaciones y swaps repetidamente para organizar una lista de números. Representación de datos combinatorios: gráficos, tablas y dados.

Salida de Resultados La salida de resultados es la fase final donde el algoritmo comunica su solución o información procesada. Puede manifestarse como un informe generado por un sistema de gestión de bases de datos, un gráfico interactivo en una aplicación web, o un mensaje de confirmación de transacción bancaria. La claridad y el formato de esta salida son cruciales para la usabilidad y la toma de decisiones del usuario. Representación de datos: gráficos, diagramas y análisis.

Notación de secuencias algebraicas: a₁, a₂, a₃, ..., aₙ₊₁. Estructuras Secuenciales • Instrucciones ejecutadas en orden estricto, una tras otra. • Flujo de control lineal, sin bifurcaciones o bucles. • Ejemplos: cálculo de promedio, conversión de unidades. • Base fundamental para algoritmos más complejos.

Lógica de Decisión Algorítmica Implementación y Casos de Uso Las estructuras condicionales permiten a los algoritmos tomar decisiones, alterando su flujo de ejecución en función de la evaluación de expresiones lógicas. Esta capacidad es fundamental para la adaptabilidad y la inteligencia de cualquier programa, simulando un proceso de pensamiento 'SI-ENTONCES-SINO'. Por ejemplo, un sistema de gestión de inventario podría evaluar 'SI el stock de un producto es menor a 10, ENTONCES generar orden de compra, SINO no hacer nada'. Estas construcciones, como `if-else` en Python o `switch-case` en C++, son esenciales en la programación moderna. En aplicaciones bancarias, se utilizan para 'SI el PIN es correcto, ENTONCES permitir acceso, SINO bloquear tarjeta'. En sistemas de recomendación, 'SI el usuario vio la película X, ENTONCES sugerir película Y'.

Permutaciones con repetición: círculos superpuestos de colores. Estructuras Iterativas (Bucles) • Bucle PARA (for): Iteración definida, ej. `for i in range(10)`. • Bucle MIENTRAS (while): Iteración condicional, ej. `while datos_disponibles`. • Bucle HACER-MIENTRAS: Ejecuta al menos una vez, ej. validación de entrada. • Optimización: Crucial para eficiencia en algoritmos de gran escala.

Tipo de Dato Descripción Ejemplo Entero (Integer) Números enteros, sin componentes fraccionarios. edad = 25, cantidad_productos = 1000 Flotante (Float) Números reales con componentes decimales o fraccionarios. precio_unitario = 19.99, pi_valor = 3.14159 Cadena de Texto (String) Secuencias de caracteres alfanuméricos. nombre_usuario = "Ana García", mensaje = "¡Bienvenido!" Booleano (Boolean) Valores lógicos que representan verdadero (True) o falso (False). es_admin = True, esta_activo = False

Pseudocódigo Diagramas de Flujo Es una descripción de alto nivel de un algoritmo que combina lenguaje natural con elementos de lenguajes de programación. Permite a los desarrolladores centrarse en la lógica del algoritmo sin preocuparse por la sintaxis específica de un lenguaje de implementación. Un ejemplo clásico para calcular el factorial sería: `Función Factorial(n): Si n = 0 entonces retornar 1; Sino retornar n * Factorial(n-1); Fin Si; Fin Función.` Son representaciones gráficas de la secuencia de pasos de un algoritmo, utilizando símbolos estandarizados para visualizar el flujo de control. Facilitan la comprensión de la lógica y las decisiones, siendo herramientas valiosas en la fase de diseño y análisis. Por ejemplo, la norma ISO 5807 define símbolos como el óvalo para inicio/fin, el rectángulo para procesos y el rombo para decisiones.

Efecto dominó: la lógica de los algoritmos paso a paso. Pseudocódigo: Concepto y Ventajas • Descripción de alto nivel de un algoritmo. • Mezcla de lenguaje natural y convenciones de programación. • Independiente de cualquier lenguaje específico (ej. Python). • Facilita diseño, depuración y comunicación de lógica.

Estructuras Secuenciales y Condicionales Estructuras Iterativas (Bucles) Las estructuras secuenciales ejecutan instrucciones en orden lineal, una tras otra, como en el pseudocódigo: `INICIO`, `LEER num1`, `LEER num2`, `suma = num1 + num2`, `ESCRIBIR suma`, `FIN`. Las condicionales, por otro lado, permiten la toma de decisiones basándose en una condición lógica. Un ejemplo claro es `SI edad >= 18 ENTONCES ESCRIBIR 'Mayor de edad' SINO ESCRIBIR 'Menor de edad' FIN_SI`, dirigiendo el flujo del programa. Las estructuras iterativas, o bucles, permiten repetir un bloque de instrucciones múltiples veces, lo cual es fundamental para la eficiencia algorítmica. Esto se observa en `PARA i DESDE 1 HASTA 10 HACER ESCRIBIR i FIN_PARA`, que imprime números del 1 al 10. Otro ejemplo es `MIENTRAS contador < 5 HACER ESCRIBIR 'Repetición' contador = contador + 1 FIN_MIENTRAS`, que ilustra la repetición basada en una condición.

Pseudocódigo: ¿Cómo lo resolverías? ¿Cómo diseñarías un algoritmo en pseudocódigo para determinar si N3 es la suma de N1 y N2, usando estructuras condicionales?

Diagramas de Flujo: Concepto Los diagramas de flujo son representaciones gráficas de algoritmos, utilizando símbolos estandarizados para ilustrar el flujo de control y la secuencia de operaciones. Permiten visualizar la lógica de un proceso, como el algoritmo para procesar una transacción bancaria. Son fundamentales en el diseño, análisis y documentación de sistemas y programas. Diagrama de flujo: Referenciando en el trabajo académico.

Símbolo Nombre Función Óvalo (o Elipse) Terminal (Inicio/Fin) Representa el punto de partida o finalización de un algoritmo. Ejemplo: 'Inicio del programa', 'Fin de la ejecución'. Rectángulo Proceso Indica una operación o conjunto de operaciones que transforman datos. Ejemplo: 'Calcular promedio', 'Asignar valor a variable'. Rombo Decisión Muestra un punto donde se evalúa una condición, con caminos de flujo alternativos (Sí/No). Ejemplo: '¿Es el número par?'. Flecha Línea de Flujo Conecta los símbolos, indicando la dirección y secuencia lógica del proceso. Es fundamental para la coherencia. Paralelogramo Entrada/Salida de Datos Representa la introducción de datos al sistema o la visualización de resultados. Ejemplo: 'Leer dato del usuario', 'Mostrar resultado en pantalla'. Cilindro Base de Datos Simboliza el almacenamiento o recuperación de información de una base de datos. Ejemplo: 'Guardar registro en DB', 'Consultar datos de usuario'. Rectángulo con base ondulada Documento Indica la generación o uso de un documento impreso o digital. Ejemplo: 'Imprimir informe', 'Generar factura PDF'.

Este diagrama ilustra la lógica para determinar si un número entero ingresado por el usuario es múltiplo de 2, usando símbolos estándar.

Pseudocódigo Diagramas de Flujo Ofrece una representación textual semi-formal, cercana al lenguaje natural y a los lenguajes de programación. Su escritura es ágil para algoritmos complejos, como el algoritmo de Dijkstra para rutas más cortas, permitiendo expresar estructuras de control anidadas con facilidad. Facilita la transición directa a código fuente, aunque su claridad visual puede ser menor para principiantes absolutos. Proporcionan una representación gráfica intuitiva del flujo lógico, ideal para visualizar secuencias y decisiones simples. Son excelentes para la conceptualización inicial de un proceso, como un sistema de autenticación de usuario, pero su mantenimiento y escalabilidad se complican con la creciente complejidad del algoritmo. Para algoritmos con muchas ramificaciones o iteraciones, pueden volverse extensos y difíciles de seguir.

Algoritmos en la Vida Cotidiana Los algoritmos son el motor invisible de muchas de nuestras interacciones diarias, orquestando procesos complejos. Desde la asignación de plazas escolares mediante sorteos aleatorios hasta las recomendaciones personalizadas en plataformas como Netflix o Spotify, su influencia es omnipresente. También guían nuestros trayectos con sistemas de navegación como Google Maps, optimizando rutas y tiempos en tiempo real.

Algoritmos: ¿Hacia dónde vamos? ¿Cómo podemos asegurar que el pensamiento algorítmico y los sistemas complejos beneficien éticamente a la sociedad del siglo XXI, evitando sesgos y promoviendo la equidad?

Recursos https://es.slideshare.net/slideshow/algoritmos-50-ejemplos-1/49081621 https://eduteka.icesi.edu.co/pdfdir/FGPUPonenciaAlgoritmos.pdf https://eduteka.icesi.edu.co/articulos/GuiaAlgoritmos https://tekkieuni.com/es/blog/algorithms-for-kids/

Conclusión • Los algoritmos son secuencias finitas y precisas para resolver problemas. • Son el pilar de la computación, desde software hasta IA y ciberseguridad. • Se caracterizan por su finitud, precisión, determinismo, generalidad, eficiencia y robustez. • Se diseñan usando pseudocódigo y diagramas de flujo para claridad y lógica. • Su impacto en la vida cotidiana exige una reflexión ética continua.
Tags