Diferencia entre revisiones de «Algoritmo»

Contenido eliminado Contenido añadido
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 201.143.121.160 a la última edición de Diegusjaimes
Línea 12:
 
En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su [[patrón]]. También existen ejemplos de índole matemática, como el algoritmo de la [[división]] para calcular el cociente de dos números, el [[algoritmo de Euclides]] para calcular el [[máximo común divisor]] de dos [[Números enteros|enteros]] positivos, o el [[eliminación de Gauss-Jordan|método de Gauss]] para resolver un [[Sistema lineal de ecuaciones]].
 
== Medios de expresión de un algoritmo ==
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al [[lenguaje natural]], [[pseudocódigo]], [[diagramas de flujo]] y [[Lenguaje de programación|lenguajes de programación]] entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
 
La descripción de un algoritmo usualmente se hace en tres niveles:
# '''Descripción de alto nivel'''. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
# '''Descripción formal'''. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
# '''Implementación'''. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
 
También es posible incluir un [[teorema]] que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
 
=== Diagrama de flujo ===
[[Archivo:AlgoritmoRaiz.png|thumb|[[Diagrama de flujo]] que expresa un algoritmo para calcular la raíz cuadrada de un número <math>x</math>]]
{{AP|Diagrama de flujo}}
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por [[Organización Internacional para la Estandarización|ISO]].
 
Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.
 
=== Pseudocódigo ===
{{AP|Pseudocódigo}}
Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar.
pseudo viene de falso y por ende es un código al que aunque es entendible no se aplica al proceso que debe realizar la máquina.
 
=== Máquina de Turing ===
{{AP|Máquina de Turing}}
La máquina de Turing es un modelo matemático, diseñado por [[Alan Turing]], que formaliza el concepto de algoritmo. A este modelo se le refiere comúnmente como la "descripción de más bajo nivel" por el hecho de que no utiliza ninguna expresión coloquial.
 
=== Implementación ===
Muchos algoritmos son ideados para implementarse en un [[Programa (computación)|programa]]. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una [[Red neuronal artificial|red neuronal]], un circuito eléctrico o un aparato mecánico y electrico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El [[algoritmo de multiplicación]] tradicional, el [[algoritmo de Euclides]], la [[criba de Eratóstenes]] y muchas [[formas de resolver la raíz cuadrada]] son sólo algunos ejemplos.
 
== Algoritmos y funciones ==