Algoritmos y sus representaciones en pseudocódigo
Introducción
¡Hola! Estas entrando al desarrollo de secuencias lógicas y ordenadas.
En la clase anterior conceptualizaste sobre lenguajes de programación y lo que es necesario para lograr una comunicación entre un dispositivo o máquina y un ser humano o programador, para lograr esta comunicación es necesario un compilador y un intérprete para gestionar el código fuente (lenguaje de alto nivel) y realice la traducción a lenguaje máquina.
En esta segunda clase aprenderás que es un algoritmo y sus representaciones en pseudocódigo.
Se te ejemplificaran el desarrollo de pseudocódigos para que comiences a analizar y desarrollar una secuencia lógica para un procedimiento con un pensamiento estructurado, ordenado para plantear soluciones a diversas problemáticas que derivaran en lograr a que vayas interpretando cada vez más rápido la creación de órdenes secuenciales de todo lo que vives en tu entorno.
Cuando se te planteen los ejemplos no tienes que verlos como una única solución al problema plateado, cada ser humano tiene una estructura lógica en que puede plantearse una solución a un problema, por tanto, lo que se pretende es que tu mantengas tu creatividad y tu lógica, pero agregar a ello una estructura lógica ordenada y una introducción al manejo de sintaxis y semánticas.
Esta sintaxis y semántica ayudaran a formar el ordenamiento para cuando comiences a escribir líneas de código.
Sin más, nos introducimos en el desarrollo del tema deseando que esto te inspire a querer seguir aprendiendo más.
¡Éxito!
Desarrollo del tema
Algoritmo
Un algoritmo se asocia inmediatamente al área computacional, pero su nacimiento fue para darle solución a las operaciones matemáticas, de hecho, las operaciones matemáticas básica como la suma, resta, multiplicación tienen un algoritmo para desarrollar su solución.
En la clase digital anterior, en la historia de los lenguajes de programación se menciona a Ada Lovelace quien escribió a mano el primer algoritmo, haciendo una traducción de los escritos del matemático Luigi Menabrea.
Hoy día los algoritmos son utilizados en todas las ramas de las ciencias formales, naturales y sociales.
Podemos desarrollar un algoritmo para una armar una mesa, una receta de cocina, el uso de un electrodoméstico hasta algoritmos más complejos, como un algoritmo para resolver la ecuación para la transformada de Laplace o para el funcionamiento de una aplicación de un dispositivo móvil (Facebook, GPS, predicción del tiempo).
¿Qué es un algoritmo?
Un algoritmo es un conjunto ordenado y finito de pasos o instrucciones precisas, para resolver un problema.
También se define como “una serie de operaciones detalladas y no ambiguas, a ejecutar paso a paso, y que conducen a la solución de un problema” (Joyanes, 1992: 2).
Propiedades para desarrollar un algoritmo:
- Preciso. Indicar el orden de cada paso.
- Definido. Se debe obtener el mismo resultado cada vez, aun y si se ejecuta más de dos veces, siempre cuidando que los datos de entrada sean los mismos.
- Finito. El algoritmo se debe tener un fin y cumplir el objetivo.
- Legible. Ser claro, cualquier persona debería entenderlo.
Ejemplo 1. Desarrollar un algoritmo para hacer un sándwich
- Comprar la barra de pan, mayonesa, mostaza, jamón, queso, lechuga, jitomate
- Lavar la lechuga
- Lavar el jitomate
- Sacar dos piezas de pan
- Embarrar en una pieza de pan mostaza
- Embarrar en la segunda pieza de pan mayonesa
- Poner una cama lechuga sobre la pieza de pan con mostaza
- Poner dos rebanadas de jamón sobre la cama de lechuga
- Poner una rebanada de queso sobre el jamón
- Poner dos rebanadas de jitomate sobre el queso
- Empalmar la pieza de pan con mayonesa
Ejemplo 2 de algoritmo. Suma de dos números naturales
- Obtener un primer valor natural
- Obtener un segundo valor natural
- Realizar la operación de suma de los sumandos
- Obtener la suma o resultado
En el área computacional, dos herramientas apoyan al desarrollo de algoritmos:
- Pseudocódigo
- Diagrama de flujo
Pseudocódigo
Es una representación algorítmica que permite una escritura más parecida a líneas de un lenguaje de programación o código fuente.
Características para escribir un pseudocódigo:
- Puede estar en cualquier idioma, ya sea español, inglés, francés, alemán etc.
- Las instrucciones que utiliza son acciones en infinitivo
- Se sustituyen los espacios por guiones bajos «_”, ejemplo: area_de_un_figura_triangulo.
- Omitir el uso se acentos y ñ’s (las «ñ» se cambian por «ni»), ejemplo: año = anio.
- Lo que represente un fragmento de texto se denota con comillas, ya sea simples o dobles, ejemplo: «no he dormido», “Juan”, “La suma es: ”
- Siempre empieza con una instrucción de inicio y termina con una instrucción de fin.
Ejemplo 1 de pseudocódigo: Instrucciones para ir a la escuela.
- Inicio
- Levantarse_a_hora_adecuada
- Ducharte
- Secarte
- Vestirte
- Desayunar
- Preparar_mochila
- Salir_de_casa
- Ir_a_parada_de_camion
- Tomar_ruta_adecuada
- Pagar_transporte
- Bajarse_en_destino
- Entrar_a_la_escuela
- Fin
Ejemplo 2 de pseudocódigo: Calcula el área de un triángulo recibiendo como entrada el valor de la base y la altura.
- Inicio
- Variables Altura, Base, Area.
- Escribir «Introduce la base y la altura: «
- Leer Base y la Altura.
- Calcula_area= ( Base * Altura ) / 2
- Escribir «El área es: «, Area
- Fin
Ejemplo 3 de pseudocódigo. Suma de dos números naturales
- Inicio
- Variables num1, num2, suma
- Escribir “Introduce el primer número natural”
- Leer num1
- Escribir “Introduce el segundo número natural”
- Leer num2
- Calcular suma = num1 + num2
- Escribir “El total es: ”
- Imprimir suma
- Fin
Ejemplo 4 de pseudocódigo. Calcular la hipotenusa de un triángulo rectángulo.
- Inicio
- Variables Cateto1, Cateto2, Hipotenusa
- Escribir «Introduce Cateto 1: «
- Leer Cateto1
- Escribir «Introduce Cateto 2: «
- Leer Cateto2
- Calcular Hipotenusa = raiz (Cateto1 ^ 2 + Cateto2 ^ 2)
- Escribir «La hipotenusa es»
- Imprimir Hipotenusa
- Fin
Conclusión
La comprensión del uso de pseudocódigo antes de iniciar a programar es importante, ya que previo a crear líneas de programación tu ya has estructurado una semántica de lo que escribirás y evitará ambigüedades o repetición de procesos en tu programación.
En esta sesión aprendiste la conceptualización de algoritmo y pseudocódigo, ejemplificamos de manera muy sencilla y concisa las soluciones para algunas situaciones de la vida cotidiana, de manera natural irás desarrollando algoritmos para tareas que antes pasabas desapercibidas.
Con los ejemplos que te fueron propuestos, regálate un tiempo para verificar si la propuesta de solución es la única que pudiera solventar el resolver el problema, utiliza tu propia lógica para modificarlos y encontrar una solución al problema, estructurando una diferente a la planteada.
Cada vez que practicas el desarrollar tus propios algoritmos en pseudocódigo estarás desarrollando una mayor habilidad para gestionar soluciones.
¡Te invito a que sigas practicando!
Material didáctico complementario
Te invito a revisar este video llamado Análisis del Problema y Diseño del Algoritmo, en este video encontraras un ejercicio donde se te muestran las metodologías para desarrollar un algoritmo y su representación en pseudocódigo. [@zelidth](17/07/2009).
También puedes visitar el libro PDF de Anívar Chávez. Aprenda a Diseñar Algoritmos (Capítulo 3) (6 páginas). Chavez A. (2017). Aprenda a diseñar algoritmos. Sello Editorial UNAD URL: https://repository.unad.edu.co/bitstream/handle/10596/11970/Chave;jsessionid=D20A6649E17352AA307F10E15817DF59.jvm1?sequence=3
Fuentes de información
- Joyanes, L. (1992). Metodología de la Programación. México: McGraw-Hill.
- Gottfried, B. S. (2005). Programación en C. McGraw-Hill Interamericana.
- Schildt H (1991), Programación en TURBO C. McGraw-Hill. Chavez A. (2017). Aprenda a diseñar algoritmos. Sello Editorial UNAD URL: https://repository.unad.edu.co/bitstream/handle/10596/11970/Chave?sequence=3
- C Programming Language, Brian W. Kernighan Dennis M. Ritchie. Prentice Hall; 2 ed. Sitios web con programación estructurada en C y trabajos académicos específicos.