Algoritmos. Conceptos basicos
Algoritmo: es una serie de pasos ordenados para realizar una tarea o actividad.
En informática utilizamos los algoritmos para ayudar a nuestros estudiantes a desarrollar la lógica en Programación, ya que para crear un programa debemos realizar un algoritmo de instrucciones para que el computador nos entienda y pueda resolver el problema que le estamos planteando.
Aquí te presentamos algunos conceptos básicos de los algoritmos que te ayudaran a relacionarte con este termino y las herramientas usadas para su creación, espero que te guste:
Algoritmo: Es un conjunto finito de pasos que
sirven para ejecutar una tarea o resolver un problema. Es una secuencia finita
de operaciones realizables, cuya ejecución da una solución de un problema en un
tiempo finito. Es la especificación rigurosa de la secuencia de pasos a
realizar para alcanzar un resultado deseado en un tiempo finito. Es una serie
de operaciones a realizar en un orden o una fórmula para la resolución de
problemas. Es un sistema por el cual se
llega a una solución, teniendo en cuenta que debe de ser preciso finito y definido,
Por preciso entendemos que cada paso a seguir tiene un orden; finito
implica que tiene un determinado número de pasos, o que tiene un fin; y definido,
que si se sigue el mismo proceso más de un vez llegaremos al mismo resultado.
Programa: es un conjunto de instrucciones, ejecutables sobre
una computadora, escritos en un lenguaje de programación que permite cumplir
una función específica.
Dato: es una representación de un objeto, un hecho,
concepto o entidad del mundo real mediante la cual se pueden modelizar aspectos
de un problema que se desea resolver con un programa sobre una computadora.
Información: son datos procesados y organizados de manera
significativa y útil.
El
seudocódigo
es una herramienta utilizada para el diseño de programas que permite expresar los
pensamientos de una forma clara, utilizando su lenguaje natural y mostrando el
orden de ejecución de las sentencias del programa.
Un diagrama
de flujo o flujograma es una
representación grafica que ilustra la secuencia de las operaciones o el flujo
de datos que se realizarán para conseguir la solución de un problema.
Historia
La
palabra algoritmo proviene del nombre del matemático llamado Abu Abdullah Mohammed Bin Musa Al-Khwarizmi
que vivió entre los siglos VIII y IX d.C. Señaló
las virtudes del sistema decimal indio (en contra de los sistemas tradicionales
árabes) y explicó que, mediante una especificación clara y concisa de cómo
calcular sistemáticamente, se podrían definir algoritmos que fueran usados en
dispositivos mecánicos en vez de las manos (por ejemplo, ábacos). También estudió la manera de
reducir las operaciones que formaban el cálculo. Aunque no fue el creador del
primer algoritmo, el concepto lleva su pseudónimo, ya que formuló el enunciado de
las reglas paso a paso para la suma, resta, multiplicación y división de
números decimales. Así, de la palabra algorismo, que originalmente hacía
referencia a las reglas de uso de la aritmética utilizando dígitos árabes,
se evolucionó a la palabra latina, derivación de
al-Khwarizmi, algobarismus, que más tarde mutaría a algoritmo
en el siglo XVIII. La palabra ha cambiado, de
forma que en su definición se incluye a todos los procedimientos finitos
para resolver problemas.
Ya en el siglo XIX, se
produjo el primer algoritmo escrito para un computador. La autora fue Ada Augusta Byron duquesa de Lovelace,
considerada como la primera programadora.
Uno de
los algoritmos más antiguos conocidos es el algoritmo de Euclides donde se describe
la realización de operaciones elementales en el sistema de numeración decimal.
También el algoritmo de la división para calcular el cociente de dos números, calcular el
máximo común divisor de dos enteros
positivos, o incluso el método de Gauss para resolver Sistema lineal de ecuaciones. En la
actualidad, el término algoritmo se aplica a muchos de los métodos de resolver
problemas que emplean una secuencia mecánica de pasos
- Clasificación de algoritmos
· Algoritmo
determinista: en cada paso del algoritmo se determina de forma única el
siguiente paso. Sus pasos están perfectamente definidos y aportan una solución
exacta.
·
Algoritmos no determinísticos deben
decidir en cada paso de la ejecución entre varias alternativas y agotarlas
todas antes de encontrar la solución.
·
Algoritmos paralelos: permiten la división
de un problema en subproblemas de forma que se puedan ejecutar de forma
simultánea en varios procesadores.
·
Divide y vencerás: dividen el problema en
subconjuntos disjuntos obteniendo una solución de cada uno de ellos para
después unirlas, logrando así la solución al problema completo. Técnicamente a
esta técnica se le denomina diseño Top-Down o Descendente. El proceso de romper
el problema en cada etapa y expresar cada paso en forma más detallada se
denomina refinamiento sucesivo.
·
Ramificación y acotación: se basa en la
construcción de las soluciones al problema mediante un árbol implícito que se
recorre de forma controlada encontrando las mejores soluciones.
·
Vuelta Atrás: se construye el espacio de
soluciones del problema en un árbol que se examina completamente, almacenando
las soluciones menos costosas.
· Cualitativos: Son
aquellos en los que se describen los pasos utilizando palabras.
· Cuantitativos: Son aquellos en los que se
utilizan cálculos numéricos para definir los pasos del proceso.
Además debe cumplir estas condiciones:
·
Finitud: el algoritmo debe acabar tras un número finito de pasos. Es más,
es casi fundamental que sea en un número razonable de pasos.
·
Definibilidad: el algoritmo debe definirse de forma precisa para cada paso.
Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante
un lenguaje formal, ya sea matemático o de programación para un computador.
· Entrada: el algoritmo tendrá cero o más
entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas
cantidades pertenecen además a conjuntos especificados de objetos. Por ejemplo,
pueden ser cadenas de caracteres, enteros, naturales, fraccionarios, etc. Se
trata siempre de cantidades representativas del mundo real expresadas de tal
forma que sean aptas para su interpretación por el computador.
· Salida: el algoritmo tiene una o más salidas,
en relación con las entradas.
· Efectividad:
una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de
una máquina en un lapso de tiempo finito.
Estructura Básica de los algoritmos:
1.
Inicio (Denota el punto de inicio
del algoritmo.)
2.
Datos de entrada (operaciones
básicas) Leer: Denota la acción de introducir datos a variables desde un
dispositivo estándar de entrada.
3.
Procesamiento de los datos Calcular:
Denota la realización de cualquier operación aritmética que genere valores para
ser almacenados en una variable.
4.
Datos de salida (Imprimir: Denota
la acción de enviar datos desde variables a un dispositivo estándar de salida.)
5.
Fin (Denota el punto de
finalización del algoritmo.)
Técnicas para la creación de algoritmos
Una recomendación
muy práctica es el que nos pongamos en el lugar del computador, y analizar qué
es necesario que me ordenen y en que secuencia, para poder producir los
resultados esperados.
Analizado el
problema, posiblemente tengamos varias formas de resolverlo; lo importante es
determinar cuál es la mejor alternativa, con resultados en el menor tiempo y al
menor costo. Una vez que sabemos cómo resolver el problema, pasamos a dibujar
gráficamente la lógica de la alternativa seleccionada. Eso es precisamente un
Diagrama de Flujo
Luego trasladar
esos pasos lógicos planteados en el diagrama a frases que indiquen lo mismo; es
decir, una codificación del programa pero utilizando instrucciones en Español.
Esto es lo que denominaremos seudocódigo. Cuando logremos habilidad para
desarrollar programas, es posible que no elaboremos el diagrama de flujo; en su
lugar podremos hacer directamente el pseudocódigo del programa.
No hay comentarios.:
Publicar un comentario