miércoles, 29 de julio de 2015


Que es un algoritmo ?
En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un cálculo o un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida).1 2 3 4 5 6 Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versión modificada de la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo.7
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemáticos. Esto fue realizado por Alonzo Church en 1936 con el concepto de "calculabilidad efectiva" basada en su cálculo lambda y por Alan Turing basándose en la máquina de Turing. Los dos enfoques son equivalentes, en el sentido en que se pueden resolver exactamente los mismos problemas con ambos enfoques.8 9 Sin embargo, estos modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.3 1 En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:7
Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo así una secuencia de estados "computacionales" por cada entrada válida (laentrada son los datos que se le suministran al algoritmo antes de comenzar).
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.
Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.
En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigüedad y sin hacer referencia a una computadora en particular, y además tiene un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia definición abarca tanto a algoritmos prácticos como aquellos que solo funcionan en teoría, por ejemplo el método de Newton y la eliminación de Gauss-Jordan funcionan, al menos en principio, con números de precisión infinita; sin embargo no es posible programar la precisión infinita en una computadora, y no por ello dejan de ser algoritmos.10 En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda función calculable se puede programar en una máquina de Turing (o equivalentemente, en un lenguaje de programación suficientemente general):10

pasos para elaborar un algoritmo 
Para la realización de un algoritmo es necesario realizar una secuencia de pasos para llegar a cumplir con la resolución de un problema dado. Para ello, definiremos los siguientes pasos:
  1. Análisis previo del Problema: Se debe realizar un análisis del funcionamiento del problema antes que se realice cualquier algoritmo.
  2. Definición de Requerimientos: Los problemas a solucionar, esto es, por ejemplo, el sumar dos números, multiplicar dos matrices, ordenar una lista de números, generar un reporte, etc.
  3. Identificación de los Módulos: La identificación de los módulos es tan importante como la identificación correcta de los requerimientos, esto porque la correcta identificación de los módulos simplifica considerablemente la realización de los algoritmos que darán solución a los requerimientos identificados en el paso anterior.
  4. Realización de los Algoritmos: El algoritmo deberá cumplir con las características que se indicaron para posteriormente implementarse en un lenguaje de programación comprensible por una computadora.
  5. Implementación de los Algoritmos: La implementación de los algoritmos se debe realizar en un lenguaje de programación para que una computadora pueda comprender las instrucciones que el algoritmo modela para así poder ejecutarlas y lograr el resultado esperado.
En el último paso ya podemos hablar de una aplicación o programa de computadora, que estará compuesto por una serie de instrucciones que ordenadas una tras otra logran representar los algoritmos diseñados y dar así solución a los requerimientos identificados.

lenguajes de algoritmo
Definición de Lenguajes Algorítmicos.
Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle.
La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera :
  • Lenguaje Natural.
  • Lenguaje de Diagrama de Flujo.
  • Lenguaje Natural de Programación.
  • Lenguaje de Programación de Algoritmos.
Lenguaje Natural.
Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce como lenguaje jergacuando se utilizan términos especializados de una determinada ciencia,
profesión o grupo.
Lenguaje de Diagrama de Flujo.
Es aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo.
Lenguaje Natural de Programación.
Son aquéllos que están orientados a la solución de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboración de fórmulas o métodos científicos.
El lenguaje natural tiene las siguientes características :
  • Evita la ambigüedad (algo confuso que se puede interpretar de varias maneras).
  • Son precisos y bien definidos.
  • Utilizan términos familiares al sentido común.
  • Elimina instrucciones innecesarias.
Lenguaje de Programación de Algoritmos.
Es aquél que se utiliza para introducir en la computadora un algoritmo específico. Se les conoce también como Lenguaje de Programación.
Lenguaje de Programación :
Es un conjunto de palabras, símbolos y reglas sintácticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema.
Los lenguajes de programación pueden clasificarse por diversos criterios, siendo el más común su nivel de semejanza con el lenguaje natural, y su capacidad de manejo de niveles internos de la máquina.


LIMONADA.

Algoritmo para preparar una limonada 1.Tener lo ingredientes necesarios, cuatro limones con jugo, azúcar y medio litro de agua. 2.Lavar los limones bien 3.Con ayuda de un exprimidor, cortar los limones por la mitad;extraer el jugo y depositarlo en un recipiente 4.Ir agregando el agua conforme el gusto de cada quien. 5.Endulzar el agua a su gusto y servir en un vaso. 

No hay comentarios:

Publicar un comentario