1. UNIVERSIDAD POLITECNICA SALESIANA
ESCUELA DE INGENIERIAS
FACULTAD DE SISTEMAS
PROGRAMACION HIPERMEDIAL
OCTAVO TELEMATICA
TEMA:
ALGORITMOS
INTEGRANTES:
CRISTIAN GUACHAMIN
DIEGO NOBOA
3. Í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
4. 1) Algoritmo
Un algoritmo es el conjunto de operaciones y procedimientos
que deben seguirse para resolver un problema. La palabra
quot;algoritmoquot; 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 de
Numeració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. quot;Un algoritmo siempre debe terminar después de un número
finito de pasosquot;.
2. Precisión. quot;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 casoquot;.
5. 3. Entrada. quot;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 objetosquot;.
4. Salida. quot;Un algoritmo tiene una o más salidas: cantidades que tienen una
relación específica con las entradasquot;.
5. Eficacia. quot;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 puedan ser hechas de manera exacta y en un
tiempo finito por un hombre usando lápiz y papelquot;.
Knuth admite que, aunque su descripción pueda ser
intuitivamente clara, carece de rigor formal, puesto que no
está exactamente claro qué significa quot;precisamente definidoquot;,
quot;de manera rigurosa y no ambiguaquot;, o quot;suficientemente
básicasquot;, 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
6. 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. 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
7. Diagrama de flujo que expresa un algoritmo para calcular la
raíz cuadrada de un número x
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.
8. 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 quot;descripción
de más bajo nivelquot; 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 */
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
9. 8) Bibliografía:
o www.wikipedia.com
o www.monografias.com
o www.slideshare.net