Que Es Un Algoritmo

12
Que es un algoritmo: En una definición propia deducimos que un algoritmo es una secuencia de pasos lógicos y ordenados con las cuales le damos solución a un problema determinado. Un ejemplo de este seria cuando vamos hacer un huevo frito hacemos una serie de pasos en los cuales necesitamos cacerola, aceite, el huevo y la sal para poder hacer nuestro huevo frito pero con una serie de pasos lógicos. Que es un algoritmo es: Un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia. 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 problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida).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. Que es un algoritmo: Un algoritmo es una serie de operaciones detalladas y no ambiguas. En otras palabras un algoritmo es un conjunto de reglas para resolver una cierta clase de problemas.

Transcript of Que Es Un Algoritmo

Page 1: Que Es Un Algoritmo

Que es un algoritmo:En una definición propia deducimos que un algoritmo es una secuencia de pasos lógicos y ordenados con las cuales le damos solución a un problema determinado.Un ejemplo de este seria cuando vamos hacer un huevo frito hacemos una serie de pasos en los cuales necesitamos cacerola, aceite, el huevo y la sal para poder hacer nuestro huevo frito pero con una serie de pasos lógicos.

Que es un algoritmo es: Un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.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 problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida).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.

Que es un algoritmo:Un algoritmo es una serie de operaciones detalladas y no ambiguas. En otras palabras un algoritmo es un conjunto de reglas para resolver una cierta clase de problemas.El lenguaje informático es aquel por medio del cual dicho algoritmo se codifica a un sistema comprensible por el ordenador o computadora.

Que es un 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 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 dicitEl 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.

Page 2: Que Es Un Algoritmo

Características básicas de un algoritmo.

1. Finitos: Un algoritmo siempre debe terminar después de un número finito de pasos

2. Eficientes: Deben ocupar la mínima memoria y minimizar el tiempo de ejecución.

3. Legibles: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente.

4. Modificables: Estarán diseñados de modo que sus posteriores modificaciones sean fáciles de realizar, incluso por programadores diferentes a sus propios autores.

5. Modulares: La filosofía utilizada para su diseño debe favorecer la división del problema en módulos pequeños.

6. Único punto de entrada, único punto de salida: A los algoritmos y a los módulos que lo integran se entra por un sólo punto, inicio, y se sale por un sólo punto también, fin.

7. Manejable: Hacerlo de uso fácil para el usuario y no confuso.

Fases para desarrollar un algoritmo.

1. Fase de Análisis: consiste en el estudio detallado del problema con el fin de obtener una serie de documentos (especificación) en los cuales quedan totalmente definido el proceso a seguir en la automatización

2. Diseño: consiste en la realización del algoritmo que resuelve el problema de acuerdo a la especificación dada en la fase anterior. El algoritmo se representa mediante pseudocódigo.

3. Codificación: consiste en la traducción del algoritmo a un programa escrito en un lenguaje de programación

4. Compilación/Interpretación: consiste en obtener el programa ejecutable objeto a partir del programa fuente.

5. Prueba: consiste en determinar si el programa funciona correctamente y realiza las operaciones que esperamos de él.

Page 3: Que Es Un Algoritmo

Ejemplos de Algoritmos.

Cambiar la rueda pinchada de un coche:1. Buscar herramientas, rueda de repuesto y triángulo de señalización2. Ubicar el triángulo en el lugar adecuado (triangulo ó cono)3. Ir al lugar de la rueda averiada4. Sacar las tuercas 5. Colocar el gato6. Levantar el coche7. Sacar la rueda8. Colocar la rueda de Repuesto9. Colocar las tuercas10. Apretar las tuercas11. Guardar las herramientasFIN

Atole de Maicena

1 sobre de maicena1 raja de canela1 l de leche (1/2litro)4 cucharadas de azúcar 1 olla de metalALGORITMO1.-Encender la estufa.2.-Colocar una olla y agregar la leche después ponerla a hervir.3.-En un recipiente pequeño agregar un poco de leche para disolver la maicena4.-Una vez disuelta agregar la maicena a la olla.5.-Agregar una raja de canela.6.-Agregar azúcar.7.-Con una cuchara disolver el atole para que no se pegue.8.-Dejar hervir por 15 minutos aproximadamente.SALIDA

Ver televisión 1. Encender la televisión2. buscar canal programa favorito3. Dar volumen dependiendo entorno.4. acostarse sobre el sofá o lugar donde poder observar la TVFin

Page 4: Que Es Un Algoritmo

Hacer una llamada1. Sacar la agenda telefónica2. coger el teléfono3. colocarlo en la oreja derecha que quede entre oreja y cerca de la boca  4. marcar al destino que va a llamar 5. hablar con el destino que ah llamado 6. despedirse con el destino que ah llamado7. colgar el teléfono y dejarlo donde estaba8. tomar la agenda y dejarla donde la tomo9. fin

Técnicas de diseño para plantear un algoritmo.

Top-Down

También conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al problema. Consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de información. Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa.

El diseño Top-Down fue promovido en la década de 1970 por el investigador de IBM Harlan Mills y Nickaus Wirth. Mills desarrolló conceptos de programación estructurada para utilizarlos y probarlos en un proyecto de 1969 que tenía como objetivo automatizar algunos procedimientos del periódico New York Times. El desarrollo de este proyecto hizo que se dispersara y se ampliara la idea de hacer los programas con esta filosofía de trabajo al resto de los desarrolladores de IBM, así como al resto de la industria del software. Por su parte, Nicklaus Wirth, desarrolló entre otros lenguajes, el lenguaje de programación Pascal, escribió un artículo muy importante acerca del Desarrollo de programas por medio de refinamiento de pasos. Esta idea de diseñar programas permaneció como principal corriente de desarrollo hasta fines de la década de 1980, cuando fue desplazada por la programación orientada a objetos, sin embargo continúa siendo una muy importante ayuda para el desarrollo de los métodos en los la programación orientada a objetos.

Page 5: Que Es Un Algoritmo

Ejercicio: De la siguiente lista de actividades, ¿cuál crees que está orientada al diseño Top-down?

1) Empezar con los detalles

2) Empezar con el problema en general

3) Considerar el problema general y los detalles al mismo tiempo

El diseño top-down automáticamente produce módulos en un algoritmo. Recordemos que los módulos son grupos de instrucciones que desarrollan funciones específicas. Supongamos que queremos escribir un algoritmo que imprima facturas, en primer lugar vamos a identificar esa tarea en la primera iteración den diseño top-down. El paso calcular el monto total de la factura lo podemos redefinir como.

Lo que nos ayuda a definir los módulos de nuestro algoritmo en:

Módulo 1. Obtener detalles del cliente

Módulo 2. Obtener detalles de todas las ´ordenes de ese cliente

Módulo 3. Calcular el monto total de las facturas del cliente

Módulo 4. Agregar el 5% de interés a las facturas de hace 1 mes

Módulo 5. Agregar el 10% de interés a las facturas anteriores a 1 mes

Módulo 6. Sumar el monto de las facturas con el total de los intereses

Módulo 7. Imprimir el monto total

Page 6: Que Es Un Algoritmo

La utilización de la técnica de diseño Top-Down tiene los siguientes objetivos básicos:

Simplificación del problema y de los subprogramas de cada descomposición.

Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas.

El programa final queda estructurado en forma de bloque o módulos lo que hace mas sencilla su lectura y mantenimiento.

Bottom up.

El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse conforme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato.

Cuando la programación se realiza internamente y se hace un enfoque ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el desempeño global sea fluido. Los problemas de integración entre los subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta que la programación alcanza la fecha límite para la integración total del sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoran.

Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, éste padece de ciertas limitaciones por haber tomado un enfoque ascendente. Una de ellas es la duplicación de esfuerzos para accesar el software y más aún al introducir los datos. Otro es que se introducen al sistema muchos datos carentes de valor. Un tercero y tal vez el más serio inconveniente del enfoque ascendente, es que los objetivos globales de la organización no fueron considerados y en consecuencia no se satisfacen. Sobra decir que esta técnica de diseño es la menos usada por sus múltiples inconvenientes.

La diferencia del tipo de diseño ascendente y descendente solo se puede dar a la hora de la programación. Porque en el momento de dibujar la estructura del problema, en las dos formas el diseño queda igual, solamente que los módulos son enumerados en forma diferente, pero esto se hace pensando ya en como se va a comenzar a programar. En el diseño ascendente primero se programan los módulos que se encuentran mas abajo de la estructura, hasta llegar al primer modulo dibujado.

Page 7: Que Es Un Algoritmo

Tomando un ejemplo del diseño descendente la estructura quedaría como sigue :

Ejercicio: Realiza el diseño ascendente para la gestión del control de un hotel utilizando la siguiente información :

pagos a empleados (nombre, puesto, sueldo, horas extra) prestamos externos (cliente, préstamo, aval, plazo)

libro de reservaciones(nombre, departamento, entrada, salida)

mantenimiento (área, daños, total)

Warnier Orr

Los diagramas de Warnier/Orr (también conocidos como construcción lógica de programas/construcción lógica de sistemas) fueron desarrollados inicialmente en Francia por Jean Dominique Warnier y en los Estados Unidos por Kenneth Orr. Este método ayuda al diseño de estructuras de programas identificando la salida y resultado del procedimiento, y entonces trabaja hacia atrás para determinar los pasos y combinaciones de entrada necesarios para producirlos. Los sencillos métodos gráficos usados en los diagramas de Warnier/Orr hacen evidentes los niveles en un sistema y más claros los movimientos de los datos en dichos niveles.

ELEMENTOS BASICOS

Los diagramas de Warnier/Orr muestran los procesos y la secuencia en que se realizan. Cada proceso se define de una manera jerárquica ; es decir, consta de conjuntos de subprocesos que lo definen, en cada nivel, el proceso se muestra en una llave que agrupa a sus componentes. Puesto que un proceso puede tener muchos subprocesos distintos, un diagrama de Warnier/Orr usa un conjunto de llaves para mostrar cada nivel del sistema.

USO DE DIAGRAMAS DE WARNIER/ORR

la capacidad de mostrar la relación entre procesos y pasos de un proceso no es exclusiva de los diagramas de Warnier/Orr, así como tampoco lo es el uso de la iteración, selección de alternativas o el tratamiento de casos individuales. Tanto los diagramas de flujo estructurado y los métodos del español estructurado logran eso también. Sin embargo, el enfoque que se usa para desarrollar las definiciones de un sistema por medio de estos diagramas es distinto y se adapta y se adaptan bien a los que se usan en el diseño de sistemas lógicos.Para desarrollar un diagrama de Warnier/Orr , el analista trabaja hacia atrás, empezando con la salida del sistema y usando un análisis orientado hacia la salida. En el papel el desarrollo se mueve de izquierda a derecha. En primer lugar, se definen la salida

Page 8: Que Es Un Algoritmo

o resultados esperados del procedimiento. En el nivel siguiente, mostrado mediante la inclusión por medio de una llave, se definen los pasos necesarios para producir la salida. A su vez, cada paso se define un poco mas. Las llaves adicionales agrupan los procesos requeridos para producir el resultado en el siguiente nivel.Los diagramas de Warnier/Orr ofrecen a los expertos en sistemas algunas ventajas distintivas. Son simples en apariencia y fáciles de entender. Aun así, son poderosas herramientas de diseño. Tienen la ventaja de mostrar agrupaciones de procesos y los datos que deben transferirse de nivel a nivel. Además, la secuencia del trabajo hacia atrás garantiza que el sistema estará orientado hacia el resultado.