HERRAMIENTAS DE DISEO DE ALGORITMOS CONCEPTO ALGORITMO Definimos

  • Slides: 50
Download presentation
HERRAMIENTAS DE DISEÑO DE ALGORITMOS

HERRAMIENTAS DE DISEÑO DE ALGORITMOS

CONCEPTO ALGORITMO Definimos como algoritmo a un conjunto de pasos necesarios para resolver un

CONCEPTO ALGORITMO Definimos como algoritmo a un conjunto de pasos necesarios para resolver un problema ya sea manualmente o por métodos mecanizados que, son los más usuales en la actualidad. El concepto de algoritmos fue definido inicialmente por el matemático Persa Alkhowarizmi en el siglo diecinueve. En el que se debe especificar: - Los datos que se utilizaran. - El procedimiento que actuara sobre estos datos.

Algoritmo Procesador Entradas Instrucciones Salidas

Algoritmo Procesador Entradas Instrucciones Salidas

Pasos para realizar un algoritmo • Diseño del algoritmo que describe la secuencia ordenada

Pasos para realizar un algoritmo • Diseño del algoritmo que describe la secuencia ordenada de pasos que conducen a la solución de un problema dado. (Análisis del problema y desarrollo del algoritmo) • Expresar el algoritmo como un programa en un lenguaje de programación adecuado. (Fase de codificación) • Ejecución y validación del programa por la computadora.

Un ejemplo de un algoritmo sería el siguiente • Inicio del algoritmo • Entrada

Un ejemplo de un algoritmo sería el siguiente • Inicio del algoritmo • Entrada de datos • Salida de datos • Fin del algoritmo

Características de un Algoritmo Como lo definimos anteriormente debe estar bien definido y ser

Características de un Algoritmo Como lo definimos anteriormente debe estar bien definido y ser un conjunto finito de instrucciones que se deben seguir para resolver un problema por tanto debe cumplir lo siguiente: • Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. • Un algoritmo debe estar definidos. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. • Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o se, debe tener un número finito de pasos.

REPRESENTACION DE ALGORITMOS: DIAGRAMAS DE FLUJO. Es una notación gráfica para implementar algoritmos. Se

REPRESENTACION DE ALGORITMOS: DIAGRAMAS DE FLUJO. Es una notación gráfica para implementar algoritmos. Se basa en la utilización de unos símbolos gráficas que denominamos cajas, en las que escribimos las acciones que tiene que realizar el algoritmo Las cajas están conectadas entre sí por líneas y eso nos indica el orden el que tenemos que ejecutar las acciones.

SIMBOLOS FUNCION Terminal (representa el comienzo, << inicio >>, y el fin, << fin

SIMBOLOS FUNCION Terminal (representa el comienzo, << inicio >>, y el fin, << fin >>, de un programa). Entrada/Salida (cualquier tipo de introducción de datos en la memoria desde los periféricos, << entrada >>, o registro de la información procesada en un periférico, << salida >>. Proceso (cualquier tipo de operación que pueda originar cambio de valor, formato o posición de la información almacenada en memoria) Decisión (indica operaciones lógicas o de comparación entre datos normalmente dos- ) Conector (sirve para enlazar dos partes cualesquiera de un ordinograma a través de un conector en la salida y otro conector en la entrada). Indicador de dirección o línea de flujo (indica el sentido de ejecución de las operaciones). Línea conectora (sirve de unión entre dos símbolos). Llamada a subrutina o a un proceso predeterminado Impresora (se utiliza en ocasiones en lugar del símbolo de E/S).

DIAGRAMA DE FLUJO La lámpara no funciona ¿Está enchufada la no lámpara? Enchufar La

DIAGRAMA DE FLUJO La lámpara no funciona ¿Está enchufada la no lámpara? Enchufar La lámpara si ¿Está quemada la lámpara? si Comprar nueva lámpara no Ajustar la lámpara

Pseudocódigo Es un lenguaje de especificación de algoritmos, pero muy parecido a cualquier lenguaje

Pseudocódigo Es un lenguaje de especificación de algoritmos, pero muy parecido a cualquier lenguaje de programación, por lo que luego su traducción al lenguaje es muy sencillo, pero con la ventaja de que no se rige por las normas de un lenguaje en particular. Nos centramos más en la lógica del problema. Inicio Acción 1 Acción 2 …. Acción n Fin

Pseudocódigo Instrucción en Inglés Begin End Read/input Write/Print If ____then Else For While Repeat

Pseudocódigo Instrucción en Inglés Begin End Read/input Write/Print If ____then Else For While Repeat Until Pseudocódigo en español Inicio Fin Leer/ Entrada de Datos Escribir/Salida de Datos. Si _____entonces Sino / Caso Contrario Desde Mientras Repetir Hasta____

CONCEPTOS PRINCIPALES PROGRAMACION Se llama programación a la implementación de un algoritmo en un

CONCEPTOS PRINCIPALES PROGRAMACION Se llama programación a la implementación de un algoritmo en un determinado lenguaje de programación, para programar PROGRAMAR Es la acción de escribir instrucciones correctas para que sean interpretadas por una máquina. SISTEMA INFORMATICO Un sistema en general se define como conjunto de componentes concentrados e interactivos, que tienen un propósito y una unidad total. Sistema de procesamiento de información es un sistema que transforma datos brutos en información organizada, significativa y útil

Lenguaje de Programación • Es cualquier lenguaje artificial que puede utilizarse para definir una

Lenguaje de Programación • Es cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por un computador o computadora. • Existen cientos de lenguajes de programación los cuales pueden dividirse en tres tipos generales: – Lenguajes máquina. – Lenguajes de bajo nivel. – Lenguajes de alto nivel.

GENERACIONES DE LOS LENGUAJES DE PROGRAMACION

GENERACIONES DE LOS LENGUAJES DE PROGRAMACION

Instrucciones que ejecuta el Computador • Lenguaje de Maquina. - Instrucciones en binario 1001

Instrucciones que ejecuta el Computador • Lenguaje de Maquina. - Instrucciones en binario 1001 1111 1011 1101 • Lenguaje de Bajo nivel. - Es el lenguaje básico con el que opera la computadora, ósea es el código de la máquina. MOV AX, A ADD AX, B MOV C, AX • Lenguaje de Alto Nivel. - Requiere traducción al lenguaje de maquina de la computadora. Se usan variables.

TRADUCTORES DE LENGUAJE Metaprograma que tiene como entrada un programa fuente y obtiene como

TRADUCTORES DE LENGUAJE Metaprograma que tiene como entrada un programa fuente y obtiene como salida un programa objeto. Programa fuente Programa objetivo Errores 16

Tipos de Traductores • Compilador: Traduce el programa fuente completo y genera un programa

Tipos de Traductores • Compilador: Traduce el programa fuente completo y genera un programa objeto equivalente, además informa de los errores detectados. Programa fuente Lenguaje Alto Nivel Compilar Programa Objeto Lenguaje Intermedio Ensamblar Programa Ejecutable Lenguaje de Maquina • Interprete: Traduce y ejecuta sentencia

FASES DE PROGRAMACION 1. Definición del problema 2. Análisis del problema 3. Diseño de

FASES DE PROGRAMACION 1. Definición del problema 2. Análisis del problema 3. Diseño de la solución 4. Codificación 5. Prueba y depuración (Puesta a Punto) 6. Documentación 7. Implementación (Producción) 8. Mantenimiento MEBH

FASES DE PROGRAMACION Definición del problema ¿Qué entradas se requieren, de qué tipo, en

FASES DE PROGRAMACION Definición del problema ¿Qué entradas se requieren, de qué tipo, en qué orden y qué cantidad? ¿Qué salidas se desean, de qué tipo, en qué orden y qué cantidad? ¿Qué método(s) o fórmula(s) produce(n), o puede(n) producir las salidas deseadas? MEBH

Análisis del problema Es la comprensión a fondo del problema y sus detalles y

Análisis del problema Es la comprensión a fondo del problema y sus detalles y es un requisito para lograr una solución eficaz. Es precisamente en esta fase donde se definen formal y correctamente la Entrada que recibirá el programa (datos o materia prima), la Salida que producirá (información o resultados) y el Proceso necesario para su solución (el método para convertir los datos de entrada en información de salida). MEBH

Diseño de la solución En esta fase se diseña la lógica de la solución

Diseño de la solución En esta fase se diseña la lógica de la solución a usar, o sea, cómo hará el programa la tarea que se desea automatizar usando los datos de entrada para generar los datos de salida, enfatizándose los diseños limpios, sencillos y claros. MEBH

El proceso se realiza en dos pasos C Elaboración de un algoritmo C Pruebas

El proceso se realiza en dos pasos C Elaboración de un algoritmo C Pruebas de escritorio MEBH

Codificación En este paso se traduce el algoritmo ya estructurado, verificado y comprobado a

Codificación En este paso se traduce el algoritmo ya estructurado, verificado y comprobado a mano, al lenguaje de programación que vaya a utilizarse. Se requiere de conocimientos del lenguaje y de sumo cuidado en la colocación de las instrucciones, las que deben apegarse y seguir fielmente a la lógica del algoritmo y la semántica y sintaxis del lenguaje. MEBH

Codificación • Digitación. - el acto de teclear el algoritmo codificado • Compilación. -

Codificación • Digitación. - el acto de teclear el algoritmo codificado • Compilación. - o corrección de los errores sintácticos y semánticos del código, es la eliminación de los errores "gramaticales" según las reglas de construcción de instrucciones particulares del propio lenguaje (la sintaxis). • Nota: Se necesita un compilador. MEBH

Prueba y depuración Las pruebas que se aplican al programa son de diversa índole

Prueba y depuración Las pruebas que se aplican al programa son de diversa índole y generalmente dependen del tipo de problema que se está resolviendo. Comúnmente se inicia la prueba de un programa introduciendo datos válidos, inválidos e incongruentes y observando como reacciona en cada ocasión. MEBH

Documentación La documentación es la guía o comunicación escrita en sus variadas formas, ya

Documentación La documentación es la guía o comunicación escrita en sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas y sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). Se divide en 3 partes: Ø Documentación Interna Ø Documentación Externa Ø Manual del Usuario MEBH

Documentación externa Es todo el material creado y empleado en las diferentes fases del

Documentación externa Es todo el material creado y empleado en las diferentes fases del desarrollo del programa. Incluye: üDescripción del Problema üNarrativo con la descripción de la solución üAutor(s) üAlgoritmo (diagrama de flujo y/o pseudocódigo) üCódigo Fuente (programa) üLimitaciones del programa MEBH Documentación interna • Son los comentarios que se añaden al código fuente para clarificarlo. Manual del usuario escribe paso a paso la manera como funciona el programa, con el fin de que los usuarios pueda operarlo correctamente y obtener los resultados deseados.

Implementación El programa ya probado, revisado y mejorado se considera terminado y puede utilizarse

Implementación El programa ya probado, revisado y mejorado se considera terminado y puede utilizarse con un alto grado de confianza para resolver los problemas que dieron origen a su creación. Si se está automatizando alguna tarea manual, ésta última se desecha para emplear solamente la programa. MEBH

Mantenimiento Es posible que el programa deba revisarse cada cierto tiempo para ajustes. Estos

Mantenimiento Es posible que el programa deba revisarse cada cierto tiempo para ajustes. Estos cambios pueden ser por la dinámica del problema, por la naturaleza del código, las exigencias del tiempo o las modernas necesidades que surgen frecuentemente, por lo que se considera que ningún programa es estático. MEBH

Mantenimiento Se enfatiza el hecho de que cualquier actualización o cambio en el programa

Mantenimiento Se enfatiza el hecho de que cualquier actualización o cambio en el programa deberá reflejarse en su documentación para que ésta mantenga su vigencia. - MEBH

METODOLOGÍA DE PROGRAMACIÓN Una metodología de programación es un conjunto o sistema de métodos,

METODOLOGÍA DE PROGRAMACIÓN Una metodología de programación es un conjunto o sistema de métodos, principios y reglas que permiten enfrentar de manera sistemática el desarrollo de un programa que resuelve un problema algorítmico.

Programación Convencional Al inicio el desarrollo de software era artesanal en su totalidad, la

Programación Convencional Al inicio el desarrollo de software era artesanal en su totalidad, la fuerte necesidad de mejorar el proceso y llevar los proyectos a la meta deseada, tuvieron que importarse la concepción y fundamentos de metodologías existentes en otras áreas y adaptarlas al desarrollo de software. Esta nueva etapa de adaptación contenía el desarrollo dividido en etapas de manera secuencial que de algo mejoraba la necesidad latente en el campo del software.

PROGRAMACION MODULAR La programación modular es uno de los métodos de diseño más flexibles

PROGRAMACION MODULAR La programación modular es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa. En programación modular, el programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos.

Programación estructurada • Las tres estructuras básicas en este tipo de programación son: –

Programación estructurada • Las tres estructuras básicas en este tipo de programación son: – Secuenciación – Selección – Repetición

Estructura secuencial • Es la ejecución de una secuencia de instrucciones en el orden

Estructura secuencial • Es la ejecución de una secuencia de instrucciones en el orden que aparecen, de tal manera que se ejecutan una sola vez. – Ejemplo En una página web para explicar el concepto de oración simple, la estructura de secuencia estará marcada en su inicio por la etiqueta <HTML> y en su término por </HTML>.

Estructura de selección • Permite la selección de una o varias acciones alternativas, dependiendo

Estructura de selección • Permite la selección de una o varias acciones alternativas, dependiendo de la decisión del usuario o de una decisión en el flujo del programa. – Ejemplo En la página web de oración simple se puede dar al usuario la oportunidad de ir a una explicación más profunda sobre cierto término, por ejemplo: la composición del predicado.

Estructura de repetición • Hace posible la ejecución repetida de una o más instrucciones

Estructura de repetición • Hace posible la ejecución repetida de una o más instrucciones – Ejemplo • En la página web de oración simple se puede incluir un video o audio que se repita constantemente al momento de seleccionarlo o desde la primera vez que se carga la página.

Programación Orientado a Objetos (POO). -El significado de Orientado a Objetos nace como un

Programación Orientado a Objetos (POO). -El significado de Orientado a Objetos nace como un conjunto de practicas que definen un estilo de programación. - Los seres humanos perciben el mundo como si estuviera formado por objetos: mesas, sillas, computadoras, coches, cuentas bancarias, etc. Donde conciente o inconscientemente tienden a organizarlos, clasificarlos, relacionarlos entre si, y hasta extraen las características más importantes dependiendo de lo que quieren hacer con ellas.

Programación Orientada a Objetos • Definición: La POO es un estilo de programación, donde

Programación Orientada a Objetos • Definición: La POO es un estilo de programación, donde todos los elementos que forman parte del problema se conciben como objetos, definiendo cuales son sus atributos y comportamiento, como se relacionan entre sí y como están organizadas. Estructura Interna de un Objeto: Atributos: Define el estado del objeto Métodos: Define el comportamiento del objeto

Las clases y los objetos están en todas partes Figura Vehículo Animal

Las clases y los objetos están en todas partes Figura Vehículo Animal

Clases • Concepto Generalmente, una clase se puede definir como una descripción abstracta de

Clases • Concepto Generalmente, una clase se puede definir como una descripción abstracta de un grupo de objetos, cada uno de los cuales tiene una serie de atributos, un estado específico y es capaz de realizar una serie de operaciones. n n n Atributos Operaciones Comportamiento Lavadora marca modelo capacidad. . . Programar Poner. Ropa Cerrar. Puerta Lavar

Objetos • Concepto: Un objeto, no es más que una instancia de una clase.

Objetos • Concepto: Un objeto, no es más que una instancia de una clase. La instancia de una clase significa definir un objeto dándole valores a sus atributos y comportamiento, y realizando operaciones permitidas por la clase. n n n Valores de los atributos Estado Identidad ID: Lavadora marca=“Lapava” capacidad=5 estado=enjuagando

CARACTERISTICAS DE LA POO Abstracción: La Abstracción Básicamente es la capacidad de separar los

CARACTERISTICAS DE LA POO Abstracción: La Abstracción Básicamente es la capacidad de separar los elementos para poder verlos de forma singular. Herencia: La herencia es la capacidad que tiene una clase de derivar las propiedades y métodos de otra. Objeto Es la consolidación de una clase. Clase: Encapsulación: La clase es solo el plano del que después podremos construir el objeto. La encapsulación se encarga de mantener ocultos los procesos internos que necesita para hacer lo que sea que haga, dándole al programador acceso sólo a lo que necesita. MAESTRIA EN TELECOMUNICACIONES

HERRAMIENTAS PRINCIPALES DFD Es un programa de libre disposición para ayuda al diseño e

HERRAMIENTAS PRINCIPALES DFD Es un programa de libre disposición para ayuda al diseño e implementación de algoritmos expresados en diagramas de flujo (DF). PSEINT PSe. Int, es la abreviatura de Pseudocode Interpreter, Intérprete de Pseudocódigo. El programa utiliza pseudocódigo, un lenguaje de programación ficticio cuya principal misión es que el programador pueda centrarse en los aspectos lógicos de la programación. JAVANETBEANS Es un paquete de desarrollo de java que nos genera documentación sobre cada proyecto en una jerarquía de árbol. 44

APLICACIÓN Los diagramas de flujo (también llamados DFD) sirve para representar algoritmos y procesos

APLICACIÓN Los diagramas de flujo (también llamados DFD) sirve para representar algoritmos y procesos similares que resuelven problemas a través de un Computador. DFD nos permite enriquecer y completar esos diagramas DFD incluyendo multitud de elementos y guardándolos después en el disco o imprimiéndolos mediante una impresora. 45

GUIA DE LABORATORIO Aplicaremos el programa DFD para hallar la suma de dos números

GUIA DE LABORATORIO Aplicaremos el programa DFD para hallar la suma de dos números naturales. 46

GUIA DE LABORATORIO Aparecerá la ventana del programa, la cual se detalla a continuación

GUIA DE LABORATORIO Aparecerá la ventana del programa, la cual se detalla a continuación 47

GUIA DE LABORATORIO Elabore diagrama de flujo que lea desde el teclado dos números

GUIA DE LABORATORIO Elabore diagrama de flujo que lea desde el teclado dos números cualesquiera y realice la suma de estos, posteriormente visualice el resultado en pantalla. INICIO X, Y R=X + Y R FIN 48

GUIA DE LABORATORIO Los resultados se verán en la siguiente ventana 49

GUIA DE LABORATORIO Los resultados se verán en la siguiente ventana 49

Gracias por su atención 2/26/2021 1 50

Gracias por su atención 2/26/2021 1 50