Вы находитесь на странице: 1из 6

Algoritmo

Saltar a: navegacin, bsqueda

Los diagramas de flujo sirven para representar algoritmos de manera grfica. En matemticas, lgica, ciencias de la computacin y disciplinas relacionadas, un algoritmo del griego y lat!n, dixit algorithmus y este a su ve" del matemtico persa #l$ %uarismi& ' es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite reali"ar una actividad mediante pasos sucesivos que no generen dudas a quien deba reali"ar dic(a actividad.) *ados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos son el objeto de estudio de la algoritmia.& En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. #lgunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrn. #lgunos ejemplos en matemtica son el algoritmo de multiplicacin, para calcular el producto, el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para obtener el m+imo comn divisor de dos enteros positivos, o el m,todo de -auss para resolver un sistema lineal de ecuaciones.

ndice

& *efinicin formal ) .edios de e+presin de un algoritmo


o o

).& *iagrama de flujo ).) /seudocdigo

o o o o

).0 Sistemas formales ).1 2mplementacin ).3 4ariables ).5 Estructuras secuenciales

0 #lgoritmos como funciones 1 #nlisis de algoritmos 3 Ejemplo de algoritmo


o o o

3.& *escripcin de alto nivel 3.) *escripcin formal 3.0 2mplementacin

5 4,ase tambi,n
o o o o

5.& 6ipos de algoritmos segn su funcin 5.) 6,cnicas de dise7o de algoritmos 5.0 6emas relacionados 5.1 *isciplinas relacionadas

8 9eferencias : ;ibliograf!a < Enlaces e+ternos

Definicin formal
En general, no e+iste ningn consenso definitivo en cuanto a la definicin formal de algoritmo. .uc(os autores los se7alan como listas de instrucciones para resolver un clculo o un problema abstracto, es decir, que un nmero finito de pasos convierten los datos de un problema entrada' en una solucin salida'.& ) 0 1 3 5 Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. /or ejemplo, una versin modificada de la criba de Eratstenes que nunca termine de calcular nmeros primos no deja de ser un algoritmo.8 # lo largo de la (istoria varios autores (an tratado de definir formalmente a los algoritmos utili"ando modelos matemticos. Esto fue reali"ado por #lon"o =(urc( en &<05 con el concepto de >calculabilidad efectiva> basada en su clculo lambda y por #lan 6uring basndose en la mquina de 6uring. Los dos enfoques son equivalentes, en el sentido en

que se pueden resolver e+actamente los mismos problemas con ambos enfoques. .: < Sin embargo, estos modelos estn sujetos a un tipo particular de datos como son nmeros, s!mbolos o grficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.0 & En general, la parte comn en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:8 Tiempo secuencial. ?n algoritmo funciona en tiempo discreti"ado @paso a paso@, definiendo as! una secuencia de estados >computacionales> por cada entrada vlida la entrada son los datos que se le suministran al algoritmo antes de comen"ar'. Estado abstracto. =ada estado computacional puede ser descrito formalmente utili"ando una estructura de primer orden y cada algoritmo es independiente de su implementacin los algoritmos son objetos abstractos' de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo. Exploracin acotada. La transicin de un estado al siguiente queda completamente determinada por una descripcin fija y finitaA 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 ambigBedad y sin (acer referencia a una computadora en particular, y adems tiene un l!mite fijo en cuanto a la cantidad de datos que se pueden leerCescribir en un solo paso. Esta amplia definicin abarca tanto a algoritmos prcticos como aquellos que solo funcionan en teor!a, por ejemplo el m,todo de DeEton y la eliminacin de -auss$ %ordan funcionan, al menos en principio, con nmeros de precisin infinitaA sin embargo no es posible programar la precisin infinita en una computadora, y no por ello dejan de ser algoritmos.&F En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de =(urc($6uring de que toda funcin calculable se puede programar en una mquina de 6uring o equivalentemente, en un lenguaje de programacin suficientemente general':&F Aritmetizabilidad. Solamente operaciones innegablemente calculables estn disponibles en el paso inicial.

Medios de expresin de un algoritmo


Los algoritmos pueden ser e+presados de muc(as maneras, incluyendo al lenguaje natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y e+tensas. El usar pseudocdigo y diagramas de flujo evita muc(as ambigBedades del lenguaje natural. *ic(as e+presiones son formas ms estructuradas para representar algoritmosA no obstante, se mantienen independientes de un lenguaje de programacin espec!fico. La descripcin de un algoritmo usualmente se (ace en tres niveles:

&. Descripcin de alto nivel. Se establece el problema, se selecciona un modelo matemtico y se e+plica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. ). Descripcin formal. Se usa pseudocdigo para describir la secuencia de pasos que encuentran la solucin. 0. Implementacin. Se muestra el algoritmo e+presado en un lenguaje de programacin espec!fico o algn objeto capa" de llevar a cabo instrucciones. 6ambi,n es posible incluir un teorema que demuestre que el algoritmo es correcto, un anlisis de complejidad o ambos.

Diagrama de flujo

*iagrama de flujo que e+presa un algoritmo para calcular la ra!" cuadrada de un nmero #rt!culo principal: Diagrama de flujo Los diagramas de flujo son descripciones grficas de algoritmosA usan s!mbolos conectados con flec(as para indicar la secuencia de instrucciones y estn regidos por 2SG. Los diagramas de flujo son usados para representar algoritmos peque7os, ya que abarcan muc(o espacio y su construccin es laboriosa. /or su facilidad de lectura son usados como introduccin a los algoritmos, descripcin de un lenguaje y descripcin de procesos a personas ajenas a la computacin. Los algoritmos pueden ser e+presados de muc(as maneras, incluyendo al lenguaje natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y e+tensas. El usar pseudocdigo y diagramas de flujo evita muc(as ambigBedades del lenguaje natural. *ic(as e+presiones

son formas ms estructuradas para representar algoritmosA no obstante, se mantienen independientes de un lenguaje de programacin espec!fico.

Pseudocdigo
#rt!culo principal: Pseudocdigo

El pseudocdigo falso lenguaje, el prefijo pseudo significa falso' es una descripcin de alto nivel de un algoritmo que emplea una me"cla de lenguaje natural con algunas convenciones sintcticas propias de lenguajes de programacin, como asignaciones, ciclos y condicionales, aunque no est regido por ningn estndar. Es utili"ado para describir algoritmos en libros y publicaciones cient!ficas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocdigo requieren menos espacio para representar instrucciones complejas. El pseudocdigo est pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementacin. /rogramadores diferentes suelen utili"ar convenciones distintas, que pueden estar basadas en la sinta+is de lenguajes de programacin concretos. Sin embargo, el pseudocdigo, en general, es comprensible sin necesidad de conocer o utili"ar un entorno de programacin espec!fico, y es a la ve" suficientemente estructurado para que su implementacin se pueda (acer directamente a partir de ,l. #s! el pseudodocdigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programacin. ;usque fuentes ms precisas para tener mayor comprensin del tema.

istemas formales
La teor!a de autmatas y la teor!a de funciones recursivas proveen modelos matemticos que formali"an el concepto de algoritmo. Los modelos ms comunes son la mquina de 6uring, mquina de registro y funciones H$recursivas. Estos modelos son tan precisos como un lenguaje mquina, careciendo de e+presiones coloquiales o ambigBedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementacin.

Implementacin
.uc(os algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito el,ctrico o un aparato mecnico y el,ctrico. #lgunos algoritmos inclusive se dise7an especialmente para implementarse usando lpi" y papel. El algoritmo de multiplicacin tradicional, el algoritmo de Euclides, la criba de Eratstenes y muc(as formas de resolver la ra!" cuadrada son slo algunos ejemplos.

!ariables

Son elementos que toman valores espec!ficos de un tipo de datos concreto. La declaracin de una variable puede reali"arse comen"ando con var. /rincipalmente, e+isten dos maneras de otorgar valores iniciales a variables: &. .ediante una sentencia de asignacin. ). .ediante un procedimiento de entrada de datos por ejemplo: IreadI'. Ejemplo:
... i:=1; read(n); while i < n do begin (* cuerpo del bucle *) i := i + 1 end; ...

Вам также может понравиться