La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Algorítmica y Programación

Presentaciones similares


Presentación del tema: "Algorítmica y Programación"— Transcripción de la presentación:

1 Algorítmica y Programación
Instituto Universitario de Tecnología “José Antonio Anzoátegui” Ingeniería en Informática Núcleo: El Tigre Algorítmica y Programación Clase 1 Ing. Thais T. Hernández C. El Tigre, Marzo de 2012

2 Contenido Algoritmo Características
Fases de Resolución de un algoritmo Tipos de Algoritmos Representación de los Algoritmos Diagrama de Bloques Diagrama de Flujos Diagrama de Nassi-Schneiderman Pseudocódigo

3 Algoritmos “Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos.” Concepto: Alkhôwarîzmi matemático-astrónomo árabe Tratado de manipulación de números y ecuaciones en el siglo IX. Algoritmo

4 Característica de los Algoritmos
Un algoritmo debe ser: Preciso, es decir, indicar el orden de realización en cada paso (claro y sin ambigüedades). Ser definido-concreto: debe contener sólo el número de pasos necesarios para llegar a la solución (no deben darse pasos de más)

5 Características de los Algoritmos
Repetitividad: el algoritmo debe repetirse tantas veces, alcanzando siempre los mismos resultados para una misma entrada, independiente del momento de ejecución. Finito (tiene fin: un número determinado de pasos. Independientes tanto del lenguaje como del ordenador

6 Características de los Algoritmos
Válido: el algoritmo construido debe hacer exactamente lo que se pretende hacer Eficiente: Debe dar una solución razonable Óptimo

7 Algoritmos Métodos utilizados para la resolución de problemas:
Métodos Algorítmicos: utilizan algoritmos (se implementan en las computadoras) Métodos Heurísticos: implican algún juicio o interpretación, son difíciles de implementar (Inteligencia artificial, etc.)

8 Algoritmos Ejemplos de algoritmo:
Instrucciones para aprender a manejar un carro Ejemplos de no algoritmo: Instrucciones para realizar una receta de cocina

9 Algoritmos Los algoritmos se pueden expresar por:
Fórmulas: L = 2 *  * r Diagrama de Bloques Diagrama de Flujos Diagramas de Nassi-Schneiderman (N-S) o Diagrama de Chapin Pseudocódigos

10 Algoritmos Los algoritmos nos permiten resolver problemas, pero este proceso en la computadora requiere de la escritura de un programa y su posterior ejecución.

11 Fases de Resolución de Algoritmos
1.- Análisis del problema 2.- Diseño de un algoritmo 3.- Codificación 4.- Compilación y ejecución 5.- Verificación 6.- Depuración 7.- Mantenimiento 8.- Documentación

12 Fases de Resolución de Algoritmos
1.- Análisis: Se debe tener presente la especificación de los requisitos dados por la empresa o por la persona que encarga el problema. 2.- Diseño: Una vez analizado el problema, se procede a realizar el diseño de una solución que conducirá a un algoritmo que resuelva el problema.

13 Fases de Resolución de Algoritmos
2.- Diseño: Una vez analizado el problema, se procede a realizar el diseño de una solución que conducirá a un algoritmo que resuelva el problema.

14 Fases de Resolución de Algoritmos
3.- Codificación (implementación): La solución se escribe en la sintaxis del lenguaje de alto nivel (por ejemplo, C, C+, C++, Pascal, Basic, Turbo Basic, etc) y se obtiene el programa

15 Fases de Resolución de Algoritmos
4.- Compilación, ejecución y verificación: El problema se ejecuta, se comprueba rigurosamente y se eliminan todos los errores (denominados “bugs”, en inglés) que puedan aparecer, es decir, el programa fuente debe ser traducido al lenguaje de máquina y este proceso se realiza con el compilador y el Sistema operativo.

16 Fases de Resolución de Algoritmos
Luego se realiza la fase de montaje o enlace del programa, del programa objeto con las librerías del programa del compilador. El proceso de montaje produce un programa ejecutable. Cuando el programa se ha creado, se puede ya ejecutar desde el sistema operativo con solo teclear su nombre.

17 Fases de Resolución de Algoritmos
5.- Depuración y Mantenimiento: El programa se actualiza y modifica cada vez que sea necesario de modo que se cumplan todas las necesidades de cambio de los usuarios. Para realizar la verificación se debe desarrollar varios test: valores normales de entrada, valores extremos, valores especiales. La depuración es hallar los errores del programa y eliminarlos.

18 Fases de Resolución de Algoritmos
Tipos de errores: a.- Compilación: Se producen por uso incorrecto de las reglas del lenguaje y suelen ser errores de sintaxis. b.- Ejecución: Se producen por instrucciones que la computadora pueda comprender pero no ejecutar. Ej: dividir por cero, raíces cuadradas negativas, etc. c.- Lógicos: Se producen por la lógica del problema y la fuente suele ser de diseño del algoritmo.

19 Fases de Resolución de Algoritmos
6.- Documentación: Escritura de las diferentes fases del ciclo de vida del software, esencialmente el análisis, diseño y codificación, unidos a manuales de usuario y de referencia, así como normas para el mantenimiento. Documentación interna Documentación externa

20 Análisis del Problema Esta fase requiere de una clara definición donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada. A esta fase también se le denomina Levantamiento de la información

21 Análisis del Problema Para poder definir bien un problema es conveniente responder a las siguientes preguntas: ¿Qué entradas se requieren? ¿Cuál es la salida deseada? ¿Qué método produce la salida deseada? ¿Qué información debe proporcionar la resolución de un problema?

22 Diseño del Algoritmo En la etapa anterior (análisis) se determina qué hace, en esta etapa se define cómo se hace el programa.

23 Tipos de Algoritmos 1.- Programación Modular
2.- Programación Estructurada 3.- Resolución por Analogía

24 Programación Modular Es uno de los métodos más flexibles y potentes. El programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad y se codifica independientemente de los otros módulos. Cada subprograma es resuelto mediante un módulo (subprograma) que tiene un solo punto de entrada y un solo punto de salida

25 Programación Modular Cualquier programa bien diseñado consta de un programa principal (módulo de nivel más alto) que llama a subprogramas (módulos de nivel más bajo) que a su vez pueden llamar a otros subprogramas. Este método también se conoce como “Divide y vencerás” (Divide and conquer)

26 Programación Modular Los métodos más eficaces se basan en este conocido método, que consiste en dividir un problema grande en unidades más pequeñas que puedan ser resueltas individualmente. Ejemplo: Se puede dividir el problema de limpiar una casa en labores más simples como limpiar cada habitación

27 Programación Modular Raíz Módulo 1 Módulo 3 Módulo 2 Módulo 11

28 Programación Estructurada
Significa escribir un programa de acuerdo a las siguientes reglas: El programa tiene un diseño modular Los módulos son diseñados de modo descendente Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección y repetición.

29 Programación Estructurada
La programación estructurada es el conjunto de técnicas que incorporan: recursos abstractos, diseño descendente (top-down) y estructuras básicas Recursos Abstractos: Según Dijkstra, consiste en descomponer una determinada acción compleja en términos de un número de acciones más simples capaces de ejecutarlas o que constituyan instrucciones de computadoras disponibles.

30 Programación Estructurada
Diseño descendente (top-down): Es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stepwise). Consiste en efectuar una relación entre las sucesivas etapas de modo que se relacionen unas con otras mediante entradas y salidas de información.

31 Programación Estructurada
Estructuras Básicas: Las estructuras de control son métodos de especificar el orden en que las instrucciones se ejecutarán. Las estructuras básicas son: Secuencia Selección Repetición

32 Resolución por Analogía
Dado un problema, se trata de recordar alguno similar que ya haya sido resuelto. Los dos problemas análogos pueden incluso pertenecer a áreas de conocimiento totalmente distintas. Ejemplo: El cálculo de la media de las temperaturas con la media de las notas de los alumnos de una clase.

33 Ejemplos Diseñar un algoritmo para cambiar una bombilla fundida.
1.- Quitar la bombilla fundida 2.- Colocar la nueva bombilla

34 Ejemplos Quitar la bombilla antigua
Subir la escalera debajo de la bombilla fundida b) Subir por la escalera hasta alcanzar la bombilla c) Girar la bombilla en sentido antihorario hasta soltarla 2. Colocar la nueva bombilla Elegir una nueva bombilla de la misma potencia que la fundida b) Enroscar la bombilla nueva en sentido horario hasta que quede apretada c) Bajar la escalera d) Comprobar que la bombilla funcione

35 Ejemplos Repetir hasta que la bombilla sea válida Decisión Repetición
Algoritmo para elegir una bombilla de la misma potencia Repetir hasta que la bombilla sea válida Elegir una bombilla b) Si la potencia de la nueva bombilla es igual al de la vieja bombilla I. Entonces la bombilla es válida II. Si no la bombilla no es válida Conceptos Importantes: Decisión Repetición

36 Representación de Algoritmos
Se necesita disponer de un lenguaje algorítmico que permita reflejar las sucesivas acciones que resuelven el problema. La primera sería utilizar el lenguaje natural pero plantea imprecisión y ambigüedad, por esta razón debe ser independiente del lenguaje a utilizar y que permita una traducción clara del algoritmo al programa.

37 Representación de Algoritmos
Un algoritmo posee: 1.- Entrada (datos) 2.- Proceso (cálculo un operaciones) 3.- Salida (resultados) Para representar un algoritmo se debe utilizar un método que permita independizar dicho algoritmo del lenguaje de programación.

38 Representación de Algoritmos
Métodos Usuales: 1.- Diagrama de Bloques 2.- Diagrama de Flujos 3.- Diagrama de Nassi – Schneiderman o Diagrama de Chapin 4.- Pseudocódigo 5.- Lenguaje (Idioma) 6.- Fórmulas

39 Diagrama de Bloque La estructura del algoritmo se puede expresar en un diseño estructurado en forma de bloques, donde se muestre los sucesivos refinamientos a partir del problema inicial.

40 Diagrama de Bloque Cálculo Longitud y Superficie Entrada De Datos
Salida Resultados Leer Radio L = 2  R S =  R2 Escribir L S

41 Diagrama de Flujo Son una herramienta gráfica. Consta de una serie de símbolos estándar, que representan las distintas acciones del algoritmo conectados mediante líneas que indican el orden en el cual debe hacerse las operaciones. Comienzo de un programa Operaciones que realiza Orden en que se realizan Final del programa

42 Diagrama de Flujo Un diagrama de flujo, también se le denomina flowchart. Los símbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalización (ANSI) y los más frecuentemente aplicados se muestran a continuación

43 Diagrama de Flujo Subprograma Inicio Proceso Operación No Decisión
Conectores Decisión No Terminal

44 Diagrama de Flujo Inicio Indican el inicio y el fin del algoritmo. Del primero sólo puede salir una línea y del segundo sólo puede llegar una línea Terminal Indican una acción a realizar, Tiene una única línea de entrada y otra de salida (origina cambio de valores, formatos, etc) Proceso

45 Diagrama de Flujo Indica una acción de entrada o salida. Tiene una única línea de entrada y otra de salida (cualquier introducción de datos o salida Operación Decisión No Se usan para tomar una decisión, dependiendo de cierta condición. Tiene una línea de entrada y dos de salidas.

46 Diagrama de Flujo Decisión Decisión Múltiple: En función del resultado de la comparación seguirá un camino Teclado Operación Manual Impresora Disco Magnético Pantalla

47 Diagrama de Flujo Se usan para conectar los símbolos anteriores y especifican el flujo del algoritmo Se usan para conectar distintos puntos de los diagramas de flujo evitando cruces de flechas.

48 Devuelta  entregada - precio
Diagrama de Flujo Escribir precio Escribir devuelta Leer entregada Inicio Leer precio Leer peso Precio  peso x precio Devuelta  entregada - precio Fin

49 Diagrama de Nassi-Schneiderman
También se le conoce con el nombre de Diagrama de Chapin. Es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas y, como en los diagramas de flujo se pueden escribir diferentes acciones en una caja. Un algoritmo se representa con un rectángulo en el que cada banda es una acción a realizar.

50 Diagrama de Nassi-Schneiderman
Leer Peso, precio, entregada Calcular Precio  peso x precio devuelta  entregada - precio Escribir Precio, devuelta

51 Estructura de Decisión Diagrama de Nassi-Schneiderman
Acción 1 Acción 2 Condición No Acciones No Condición Diagrama de Flujo Diagrama de Nassi-Schneiderman

52 Pseudocódigo El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan tanto la escritura como la lectura de programas. También se le conoce comp “primer borrador”

53 Pseudocódigo En esencia, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos. A pesar de su flexibilidad, tiene que respetar normas: ser legibles, claros y fácilmente codificables. Los identificadores deben tener un significado de acuerdo a su contenido. El conjunto de sentencias debe ser completo, en el sentido de especificar cualquier tarea con suficiente detalle. Contener un conjunto de palabras reservadas

54 Pseudocódigo Ventajas:
1.- Podemos centrarnos en la lógica del problema olvidándonos de la síntaxis de un lenguaje concreto 2.- Es fácil modificar el algoritmo descrito 3.- Es fácil traducir directamente a cualquier lenguaje de programación el algoritmo obtenido. Desventajas: Imprecisión porqué está definido de un modo vago y poco formal

55 Pseudocódigo Palabras utilizadas: Inicio Repetir Fin Hasta que Leer
Si – entonces – si no Escribir Entre otras Mientras Fin_mientras

56 Pseudocódigo Inicio Leer precio Leer peso Leer entregada
peso  peso x precio devuelta  entregada – precio Escribir precio Escribir devuelta Fin

57 GRACIAS POR SU ATENCION.


Descargar ppt "Algorítmica y Programación"

Presentaciones similares


Anuncios Google