algoritmos

9
UNIVERSIDAD POLITECNICA SALESIANA ESCUELA DE INGENIERIAS FACULTAD DE SISTEMAS PROGRAMACION HIPERMEDIAL OCTAVO TELEMATICA TEMA: ALGORITMOS INTEGRANTES: CRISTIAN GUACHAMIN DIEGO NOBOA MARIA AUXILIADORA MONTALVO CARLOS DE LA TORRE

Upload: cristian-andres

Post on 13-Jun-2015

21.768 views

Category:

Education


0 download

DESCRIPTION

Descripcion y caracteristicas de un algoritmo, tipos, diferencias y ejemplos

TRANSCRIPT

Page 1: Algoritmos

UNIVERSIDAD POLITECNICA SALESIANA

ESCUELA DE INGENIERIAS

FACULTAD DE SISTEMAS

PROGRAMACION HIPERMEDIAL

OCTAVO TELEMATICA

TEMA:

ALGORITMOS

INTEGRANTES:

CRISTIAN GUACHAMIN

DIEGO NOBOA

MARIA AUXILIADORA MONTALVO

CARLOS DE LA TORRE

JAVIER SALINAS

SILVIA VEGA

Page 2: Algoritmos

Índice

Tema Pág.

1) Algoritmos _______________________________________ 1

2) Diferencia entre el lenguaje algorítmico y el informático. _______________________________________ 1

3) Características de los algoritmos ________________ 1

4) Algoritmos y funciones ___________________________ 2

5) Medios de expresión de un algoritmo _____________ 2

5.1) Diagrama de flujo ______________________________ 3

5.2) Pseudocódigo ___________________________________ 4

5.3) Máquina de Turing ______________________________ 4

6) Implementación ___________________________________ 4

7) Ejemplos _________________________________________ 5

8) Bibliografía _____________________________________ 5

Page 3: Algoritmos

1) Algoritmo

Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. La palabra "algoritmo" deriva del nombre latinizado del gran matemático árabe Mohamed Ibn Moussa Al Kow Rizmi, el cual escribió sobre entre los años 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema deNumeración hindú y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latín y la inició con las palabras: Algoritmi dicit.

2) Diferencia entre el lenguaje algorítmico y el informático.

El lenguaje algorítmico es aquel por medio del cual se realiza un análisis previo del problema a resolver y encontrar un método que permita resolverlo. El conjunto de todas las operaciones a realizar, y el orden en el que deben efectuarse, se le denomina algoritmo.

El lenguaje informático es aquel por medio del cual dicho algoritmo se codifica a un sistema comprensible por el ordenador o computadora. Este tipo de lenguaje es más cercano a la máquina que al ser humano y podemos distinguir distintos tipos dependiendo de la proximidad a la maquina. Se denomina lenguaje de alto nivel aquel que es más cercano a la comprensión humana y lenguaje de bajo nivel a aquellos que son más comprensibles por la máquina. En concreto, nosotros vamos a estudiar un lenguaje en la frontera de uno de bajo nivel. Es por ello que el 'C' es tan potente y rápido, pues las funciones principales representan las funciones más básicas del ordenador.

3) Características de los algoritmos

El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:

1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".

2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".

3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".

4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".

5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio

Page 4: Algoritmos

puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".

Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal, puesto que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y no ambigua", o "suficientemente básicas", y así sucesivamente..A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción de los algoritmos probabilistas.

4) Algoritmos y funciones

Formalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto numerable se puede expresar en términos del conjunto de los números naturales (infinito, pero numerable, de hecho no existe otro conjunto más grande que sea también numerable), en esencia, todo algoritmo calcula a funciones definidas en los números naturales. En este punto, una función está parcial o totalmente definida. Una función es parcial cuando hay números naturales que no pertenecen a su dominio (es decir, hay números naturales sobre los que no está definida la función), y una función es total en caso contrario.

Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado (es decir gasta un tiempo de cálculo finito) para los valores en los que la función está definida, no devolviendo resultado (el tiempo de cálculo es infinito) para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra. Del mismo modo, un algoritmo que calcula a una función total siempre devuelve un resultado para todo valor, y que al igual que las funciones parciales, éste debe coincidir exactamente con el valor que devuelve la función a la que calcula; y reiterativamente, en caso contrario, no calcularía a esa función sino a otra. Así, todo algoritmo calcula a una función definida sobre los números naturales, sea cuál sea ésta su naturaleza.Toda función para la cual exista un algoritmo que lo calcule se denomina función computable (parcialmente computable o totalmente computable depende del grado de definición de la función en cuestión), pero existen funciones que no pueden ser calculadas como la función de Ackermann, a este último tipo de funciones se las denomina funciones no computables.

5) 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 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.

Page 5: Algoritmos

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:

1. 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.

2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.

3. 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.

5.1) Diagrama de flujo

Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x

Page 6: Algoritmos

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 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.

5.2) 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 maquina.

5.3) 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.

6) Implementación

Muchos 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 mecánico. 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.

7) Ejemplos:

Ejemplo 1: determinar cuánto vale (a,b,c) después de las siguientes sentencias de asignación

INICIO a <-- 2 b <-- a * 4 /* b <-- 2 * 4 = 8 */ a <-- b + 2 * a /* a <-- 8 + 2 * 2 = 12 */ b <-- 2 - a * b /* b <-- 2 - 12 * 8 = 2 - 96 = -94 */ a <-- a - b /* a <-- 12 - -94 = 12 + 94 = 106 */

Page 7: Algoritmos

b <-- -b + 6 /* b <-- --94 + 6 = 94 + 6 = 100 */FIN

Ejemplo 2: Todo comentario de alguna sentencia, debe ir entre los simbolos /* */.Los comentarios son útiles para explicar mejor alguna sentencia que puede estar no clara, para alguien que se enfrenta a las sentencias por primera vez.

Calculo del área de una esfera.

INICIO PI <-- 3.14 /* constante */ Leer radio area <-- 4 * PI * radio * radio /* area de una esfera */FIN

8) Bibliografía:

o www.wikipedia.com o www.monografias.com o www.slideshare.net