El participante definirá el concepto de algoritmos y lenguaje e identificar sus aplicaciones.
En su libro Fundamentos de programación, Luis Joyanes Aguilar, define al algoritmo como un método para resolver un problema. Aunque la popularización del término ha llegado con el advenimiento de la era informática, algoritmo proviene de Mohammed al-KhoWârizmi, matemático persa que vivió durante el siglo IX y alcanzó gran reputación por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir números decimales; la traducción al latín del apellido en la palabra algorismus derivó posteriormente en algoritmo. Señala, Joyanes Aguilar, que Euclides, matemático griego (del siglo IV a.C.) quien inventó un método para encontrar el máximo común divisor de dos números, se considera con Al-KhoWârizmi el otro gran padre de la algoritmia (ciencia que trata de los algoritmos).
Joyanes Aguilar, hace un señalamiento histórico con respecto a Niklaus Wirth, inventor de Pascal, Modula-2 y Oberon, profesor quien tituló uno de sus más famosos libros, Algoritmos+Estructuras de datos=Programas, señalandonos que sólo se puede llegar a realizar un buen programa con el diseño de un algoritmo y una correcta estructura de datos.
La resolución de un problema exige el diseño de un algoritmo que resuelva el mismo. La propuesta para la resolución de un problema es la siguiente:
PROBLEMA > DISEÑO DEL ALGORITMO > PROGRAMA DE COMPUTADORA
Los pasos para la resolución de un problema son:
1.- Diseño del algoritmo, describe la secuencia ordenada de pasos, sin ambigüedades, que conducen a la solución de un problema dado. (Análisis del problema y desarrollo del algoritmo).
2.- Expresar el algoritmo como un programa en un lenguaje de programación adecuado. (Fase de codificación).
3.- Ejecución y validación del programa por computadora.
Para llegar a la resolución de un problema es necesario el diseño previo de un algoritmo, de modo que sin algoritmo no puede existir un programa.
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo, el algoritmo será siempre el mismo. Así, por ejemplo, en una analogía con la vida diaria, la receta de un platillo de cocina se puede expresar en español, inglés o francés, pero cualquiera que sea el lenguaje, los pasos para la elaboración, del mismo se realizarán sin importar el idioma del cocinero.
En la ciencia de la computación y en la programación, los algoritmos son más importantes que los lenguajes de programación o las computadoras. Un lenguaje de programación es tan sólo un medio para expresar un algoritmo y una computadora es sólo un procesador para ejecutarlo. Tanto el lenguaje de programación como la computadora son los medios para obtener un fin: conseguir que el algoritmo se ejecute y se efectúe el proceso correspondiente.
Dada la importancia del algoritmo en la ciencia de la computación, un aspecto importante será el diseño de algoritmos. Joyanes Aguilar, enfatiza que el diseño de la mayoría de los algoritmos requiere creatividad y conocimientos profundos de la técnica de programación. En esencia, la solución de un problema se puede expresar mediante un algoritmo.
Características de los algoritmos
Las características fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un número finito de pasos.
La definición de un algoritmo debe describir tres partes:
Entrada, Proceso y Salida.
Por ejemplo, en el cálculo de la edad de una persona, conociendo su año de nacimiento, la definición del algoritmo, quedaría de la siguiente manera:
Entrada: la edad de la persona, información del año de nacimiento y el actual.
Proceso: realizar la diferencia del año actual menos el año de nacimiento.
Salida: visualización del resultado generado. Es decir, el resultado es la edad.
Se emplea un lenguaje natural describiendo paso a paso el algoritmo en cuestión.
En la realización del algoritmo aplicar sus tres características: preciso, definido y finito.
Por ejemplo algoritmo para conocer si el promedio de un alumno es aprobatorio o no teniendo como referencia que alumno cursa 5 materias y además que el promedio mínimo aprobatorio es 7.0.
-------------------------------------------------------------
1.- inicio
2.- solicitar las cinco calificaciones del alumno
3.-sumar las cinco calificaciones del alumno
4.- El resultado del paso 3 dividirlo entre cinco
5.- si el resultado del paso 4 es mayor o igual a 7.0 entonces
5.1Visualizar Alumno aprobado
si_no
5.2 Visualizar Alumno reprobado
fin_si
6.- fin
-----------------------------------------------------------
En el algoritmo anterior se dio solución al planteamiento básico del cálculo del promedio de un alumno. Se observa que los pasos del algoritmo tienen un número que conforme se va describiendo la secuencia, ese número se va incrementando. Es importante destacar que todo algoritmo es finito, es decir, así como tiene un inicio debe tener un fin, lo que se observa en los pasos 1 y 6.
El lenguaje que se emplea es de lo más natural. En el ejemplo se ilustra la precisión de cada una de las actividades, no se prestan a confusión. Así mismo podrá notarse que en el ejemplo, por su naturaleza existió la necesidad de tomar decisiones, es por ello el empleo de las palabras reservadas (sientonces-sino if-then-else) las cuales se emplean para la selección o toma de decisiones.
En el paso 5.1 y 5.2 se implementa lo que se conoce como (sangrado o justificación) en la escritura de algoritmos, que no es más que una tabulación, estrategia recomendada tanto en la escritura de éstos, como en la captura de programas de computadora, ya que faciliten la lectura y permite un análisis más fluido de lo escrito.
(Juan Velázquez)
Comentarios
Publicar un comentario