analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

14
Análisis Y Algoritmos Leonardo Aquino Hernandez

Upload: byakino-tecleonardo

Post on 21-Dec-2014

172 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

AnálisisY

Algoritmos

Leonardo Aquino Hernandez

Page 2: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

2. Definición de algoritmo: Que, Quien, cuando y porque de la definición

¿Qué es?Un programa de computadora es un algoritmo que le dice a la computadora los pasos específicos para llevar acabo una tarea. ¿Quién es?Los algoritmos son rigurosamente definidos para que la computadora pueda interpretarlos.¿Por qué la definición?El orden en que se ejecuta cada uno de los pasos que constituyen un algoritmo es fundamental. El orden más básico es de arriba hacia abajo, ejecutándose una instrucción tras otra de un código. Pero un algoritmo puede variar en su flujo u orden de ejecución de pasos dependiendo de los valores de inicio o que entran durante su ejecución. El flujo es manejado por las estructuras de control.

Page 3: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

3. Características de 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". Cada instrucción deberá especificarse en cada caso exactamente y sin ambigüedad.

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 puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".

6. Resolución. El algoritmo deberá llegar a un resultado específico, producir un resultado. Los datos de salida serán los resultados de efectuar las instrucciones.

Page 4: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

4.-Objetivo de los algoritmosTiene como objetivo facilitar las cosas mediante un sistema automatizado.Logrando. Tener control del mismo y sabiendo cómo se programo. Y llegar a corregir el o los problemas que se hayan suscitado

5. Definición de programa: que, quien, cuando y porque de la definición

Es el conjunto de instrucciones escritas con algún lenguaje de programación y que ejecutadas secuencialmente resuelven un problema especifico.

6. Características de un programaUn buen programa debe ser rápido: Puede tener o no un código optimizado, pero el usuario final debe sentir que para lo que usa el programa el tiempo que tarda en hacer las cosas es normal.Un buen programa debe ser estable: Una fija es la confiabilidad que debe generar un programa, una buena aplicación no te debe dejar a mitad del camino con todo el trabajo hecho en un procesador de textos, con una cita a punto de concretarse mediante el programa de chat ni con una presentación frustrada delante de decenas de colegas.  

Page 5: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

7. Definición de pseudocódigo: que, quien, cuando y porque de la definición

Un buen programa debe ser usable e intuitivo: De nada sirve que programes algo con miles opciones si no las colocas de una manera de que el usuario pueda encontrarlas y utilizarlas. Eso no quiere decir que las miles de opciones estén a la vista como las viejas versiones de Word que mareaban al pobre usuario de oficina. Lo ideal es presentar de una manera accesible los menúes frecuentes y luego juntar todos los demás en un menú avanzado para que, además, los usuarios que se inician con el software no sufran frustraciones tempranas y se vayan adecuando al mismo de una manera paulatina.  Un buen programa debe actualizarse silenciosamente: Este mismo programa a lo sumo requiere la acción del usuario para actualizar complementos de vez en cuando y es casi el extremo de programas molestísimos.Un buen programa debe ser inteligente: Quizás este punto parezca un poco pretencioso

Lenguaje de especificación, mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudo código se puede definir como un lenguaje de especificaciones de algoritmos.

Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudo código utiliza palabras que indican el proceso a realizar.

Page 6: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

8. Características de un pseudocódigo

Las principales características de este lenguaje son:  1. Se puede ejecutar en un ordenador  2. Es una forma de representación sencilla de utilizar y de manipular.  3. Facilita el paso del programa al lenguaje de programación.  4. Es independiente del lenguaje de programación que se vaya a utilizar.  5. Es un método que facilita la programación y solución al algoritmo del programa.Todo documento en pseudocódigo debe permitir la descripción de:  1. Instrucciones primitivas.  2. Instrucciones de proceso.  3. Instrucciones de control.  4. Instrucciones compuestas.  5. Instrucciones de descripción.Estructura a seguir en su realización:  1. Cabecera.       1. Programa.      2. Modulo.      3. Tipos de datos.      4. Constantes.      5. Variables.  2. Cuerpo.       6. Inicio.      7. Instrucciones.      8. Fin.

Page 7: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

9. Diferencia entre algoritmo, programa y pseudocódigo

Algoritmo: es una secuencia de acciones lógicas necesarias para lograr un objetivo cualquiera que sea, no específicamente matemático, un programa en general es una serie de instrucciones en determinado lenguaje necesarias para que un ordenador cumpla con una tarea, mismas que en todo caso, son la traducción de un algoritmo al lenguaje en cuestión.

Programa: es siempre programa ya sea ejecutable o código, estas son solo etapas en la elaboración del mismo, es decir en ambos casos son la traducción del algoritmo al lenguaje de la maquina, solo que cuando es el código es en la forma que es entendible para las personas y el ejecutable es en lenguaje que entiende la maquina.

Pseudocódigo: es siempre programa ya sea ejecutable o código, estas son solo etapas en la elaboración del mismo, es decir en ambos casos son la traducción del algoritmo al lenguaje de la maquina, solo que cuando es el código es en la forma que es entendible para las personas y el ejecutable es en lenguaje que entiende la maquina.

Page 8: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

10. Definición de diagrama de flujo: que, quien, cuando y porque de la definición

Los diagramas de flujo (o flujogramas) son diagramas que emplean símbolos gráficos para representar los pasos o etapas de un proceso. También permiten describir la secuencia de los distintos pasos o etapas y su interacción.Las personas que no están directamente involucradas en los procesos de realización del producto o servicio, tienen imágenes idealizadas de los mismos, que pocas veces coinciden con la realidad. La creación del diagrama de flujo es una actividad que agrega valor, pues el proceso que representa está ahora disponible para ser analizado, no sólo por quienes lo llevan a cabo, sino también por todas las partes interesadas que aportarán nuevas ideas para cambiarlo y mejorarlo.11. Características de un diagrama de flujoLas siguientes son acciones previas a la realización del diagrama de flujo:-Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar presentes el autor o responsable del proceso, los autores o responsables del proceso anterior y posterior y de otros procesos interrelacionados, así como las terceras partes interesadas.-Definir qué se espera obtener del diagrama de flujo.-Identificar quién lo empleará y cómo.-Establecer el nivel de detalle requerido.-Determinar los límites del proceso a describir.

Page 9: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

12. Notación de los diagramas de flujo.

Círculo: Procedimiento estandarizado.Cuadrado: Proceso de control.Línea ininterrumpida: Flujo de información vía formulario o documentación en soporte de papel escrito.Línea interrumpida: Flujo de información vía formulario digital.Rectángulo: Formulario o documentación. Se grafica con un doble de ancho que su altura.Rectángulo Pequeño: Valor o medio de pago (cheque, pagaré, etcétera). Se grafica con un cuádruple de ancho que su altura, siendo su ancho igual al de los formularios.Triángulo (base inferior): Archivo definitivo.Triángulo Invertido (base superior): Archivo Transitorio.Semi-óvalo: Demora.Rombo: División entre opciones.Trapezoide: Carga de datos al sistema.Elipsoide: Acceso por pantalla.Hexágono: Proceso no representado.Pentágono: Conector.Cruz de Diagonales: Destrucción de Formularios.Según la normativa, el flujo presupuesto es de izquierda a derecha y de arriba hacia abajo, siendo optativo el uso de flechas. Cuando el sentido es invertido (de derecha a izquierda o de abajo hacia arriba), es obligatorio el uso de la flecha.

Page 10: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

13. Cuadro comparativo entre: algoritmo, pseudocódigo y diagrama de flujo, ventajas y desventajasModalidad Ventajas Desventajas

ALGORITMO

podes trabajar en ordenes casi seguro que vas a llegar a tu objetivo propuestote redacta paso por paso lo que ahí que hacer

seguirías siempre un mismo patrónse perdería la autenticidad de cada quien

PSEUDOCODIGO

>Idioma natural. (Español, inglés, etc)> Ordenado> Fácil de entender> Aplica para varios lenguajes de programación.

> Cada persona maneja su pseudocódigo.> No vez exactamente como es la sintaxis de alguna línea.> Tal vez no entiendas la notación de la persona que lo explica.

DIAGRAMA DE FLUJO

Favorecen la comprensión del proceso a través de mostrarlo como un dibujo.Un buen diagrama de flujo reemplaza varias páginas de texto.Permiten identificar los problemas y las oportunidades de mejora del proceso.Se identifican los pasos redundantes, los flujos de los reproceso, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.Es bastante sencillo y el más utilizado por su fácil comprensión y programación.En un código reducido se realiza el ordenamiento.Eficaz.

Es el más ineficiente de todos los métodos.Consume bastante tiempo de computadora.Requiere de muchas lecturas/escrituras en memoria.No se elaboran con base en los principios de la programación estructurada, ilustran el flujo del programa, pero no su estructura.Requiere de un espacio considerable y cuenta con demasiadas ramificaciones.Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).

Page 11: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

14. ¿Los algoritmos son complejos? sí/no por que

SI Es aquel donde se resuelve un problema a traves de arboles de desiciones.Los algoritmos de ordenación básicos se dividen en:* Algoritmos de ordenación por selección.* Ordenación por Inserción.* Ordenación por burbuja. ALGORITMO DE ORDENACION POR SELECCIÓN Es aquel donde se resuelve un problema a través de arboles de decisiones.

 Los algoritmos de ordenación básicos se dividen en: * Algoritmos de ordenación por selección.* Ordenación por Inserción.* Ordenación por burbuja. ALGORITMO ORDENACION POR INSERCION Se trata de ordenar un vector formado por n enteros. Para esto el algoritmo de selección va seleccionando los elementos menores al actual y los intercambia.  ALGORITMO ORDENACION POR BURBUJAEl Ordenamiento de Burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas".

Page 12: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

15. ¿Que es un analisis de algoritmos?

El análisis de algoritmos es una parte importante de la Teoría de complejidad computacional más amplia, que provee estimaciones teóricas para los recursos que necesita cualquier algoritmo que resuelva un problema computacional dado. Estas estimaciones resultan ser bastante útiles en la búsqueda de algoritmos eficientes.

A la hora de realizar un análisis teórico de algoritmos es común calcular su complejidad en un sentido asintótico, es decir, para un tamaño de entrada suficientemente grande. La cota superior asintótica, y las notaciones omega (cota inferior) y theta (caso promedio) se usan con esa finalidad. Por ejemplo, la búsqueda binaria decimos que se ejecuta en una cantidad de pasos proporcional a un logaritmo, en O(log(n)), coloquialmente "en tiempo logarítmico". Normalmente las estimaciones asintóticas se utilizan porque diferentes implementaciones del mismo algoritmo no tienen porque tener la misma eficiencia. No obstante la eficiencia de dos implementaciones "razonables" cualesquiera de un algoritmo dado están relacionadas por una constante multiplicativa llamada constante oculta.

La medida exacta (no asintótica) de la eficiencia a veces puede ser computada pero para ello suele hacer falta aceptar supuestos acerca de la implementación concreta del algoritmo, llamada modelo de computación. Un modelo de computación puede definirse en términos de un ordenador abstracto, como la Máquina de Turing, y/o postulando que ciertas operaciones se ejecutan en una unidad de tiempo. Por ejemplo, si al conjunto ordenado al que aplicamos una búsqueda binaria tiene n elementos, y podemos garantizar que una única búsqueda binaria puede realizarse en un tiempo unitario, entonces se requieren como mucho log2 N + 1 unidades de tiempo para devolver una respuesta.

Page 13: Analisis y algotimos actividad 1 conocer los conceptos basicos del algoritmo

16. A que se refiere la Máquina de Turing

La máquina de Turing es un modelo computacional introducido por Alan Turing enel trabajo ―On computable numbers, with an application to the Entscheid ungsproblem, publicado por la Sociedad Matemática de Londres, en el cual se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing construyó un modelo formal de computador, la máquina de Turing, y demostró que existían problemas que una máquina no podía resolver. La máquina de Turinges un modelo matemático abstracto que formaliza el concepto de algoritmo. Una máquina de Turing con una sola cinta puede ser definida como una 6-tupla , donde Q es un conjunto finito de estados Γ es un conjunto finito de símbolos de cinta, el alfabeto de cinta es el estado inicial es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces es el conjunto de estados finales de aceptación es una función parcial denominada función de transición, donde L es un movimiento a la izquierda y R es el movimiento a la derecha. Existen en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el símbolo como símbolo de ―no movimiento en un paso de cómputo.