diseno estructurado de algoritmos parte1

15
Diseño Estructurado de Algoritmos. Parcial 1 - Presentación 1 1 1 DISEÑO ESTRUCTURADO DE ALGORITMOS De los Problemas a los Programas Para resolver un problema es necesario escribir un programa, este proceso es esencialmente creativo, pero se puede considerar una serie de fases o pasos: 2 1. Análisis del problema 5. Verificación. 2. Diseño del algoritmo 6. Depuración. 3. Codificación. 7. Mantenimiento. 4. Compilación y ejecución. 8. Documentación.

Upload: jorge-ventura

Post on 22-Dec-2015

222 views

Category:

Documents


1 download

DESCRIPTION

Muestra información para realizar algoritmos sin problema, se muestran las instrucciones necesarias para aprender y mejorar los pseucodigos de información...

TRANSCRIPT

Page 1: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

1

1

DISEÑO ESTRUCTURADO

DE ALGORITMOS

De los Problemas a los Programas

Para resolver un problema es necesario escribir un programa, este

proceso es esencialmente creativo, pero se puede considerar una

serie de fases o pasos:

2

1. Análisis del problema 5. Verificación.

2. Diseño del algoritmo 6. Depuración.

3. Codificación. 7. Mantenimiento.

4. Compilación y ejecución. 8. Documentación.

Page 2: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

2

3

De los Problemas a los Programas

Estas etapas constituyen el ciclo de vida del software:

1) Análisis. El problema se analiza teniendo presente la

especificación de los requisitos dados.

2) Diseño. Una vez analizado el problema se diseña una solución que

conducirá a un algoritmo que resuelva el problema.

3) Codificación (Implementación). La solución se escribe en la

sintaxis de un lenguaje de alto nivel y se obtiene un programa.

4) Compilación, ejecución y verificación. El programa se ejecuta, se

comprueba y se eliminan todos los errores (denominados «bugs»).

DISEÑO ESTRUCTURADO

DE ALGORITMOS

4

De los Problemas a los Programas

5) Depuración y mantenimiento. El programa se actualiza y modifica

cada vez que sea necesario, cumpliendo todas las necesidades de los

usuarios.

6) Documentación. Escritura de documentos de las fases del ciclo de

vida del software y manuales de usuario.

Las dos primeras etapas conducen a un diseño detallado escrito en

forma de algoritmo.

Durante la tercera etapa se implementa el algoritmo en un código

escrito en un lenguaje de programación.

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 3: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

3

5

Algoritmo

Es un método para resolver un problema mediante una serie de

pasos precisos, definidos y finitos.

Características

• Preciso. Indica el orden de realización de cada paso.

• Definido. Si se realiza dos veces, obtiene el mismo resultado.

• Finito. Tiene fin, un número determinado de pasos.

DISEÑO ESTRUCTURADO

DE ALGORITMOS

6

Lenguaje

Los lenguajes de programación sirven para escribir programas que

permitan la comunicación usuario/máquina . Programas especiales

llamados traductores convierten las instrucciones escritas en

lenguaje de programación en lenguaje de máquina (0 y 1, bits) .

Los principales tipos de lenguajes utilizados son tres:

• Lenguajes máquina.

• Lenguajes de bajo nivel (ensamblador o de máquina).

• Lenguajes de alto nivel.

*Investigar los tres tipos de lenguajes

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 4: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

4

7

Instrucciones a la computadora

Un programa consta de una secuencia de instrucciones y cada una

especifica operaciones que debe ejecutar la computadora. Las

instrucciones comunes de casi todos los lenguajes de programación

se pueden condensar en cuatro grupos:

Instrucciones de entrada/salida. Instrucciones de transferencia de datos

entre dispositivos periféricos.

Instrucciones aritmético-lógicas. Instrucciones que ejecutan operaciones

aritméticas y lógicas.

Instrucciones selectivas. Instrucciones que permiten la selección de tareas

en función de los resultados de expresiones condicionales.

Instrucciones repetitivas. Instrucciones que permiten la repetición de

secuencias de instrucciones un número determinado de veces.

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Traductores de Lenguaje

Los traductores de lenguajes son programas que traducen los

programas fuente escritos en lenguaje de alto nivel a código de

máquina. Los traductores se dividen en compiladores e intérpretes.

Intérpretes. Es un traductor que toma un programa fuente, lo

traduce y a continuación lo ejecuta.

Compiladores. Después que se ha diseñado el algoritmo y escrito el

programa en un papel se debe iniciar el proceso de introducir el

programa en un archivo. La traducción de lenguaje de alto nivel a

lenguaje de bajo nivel se hace mediante un compilador.

8

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 5: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

5

9

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Herramientas de Programación

Las dos herramientas más utilizadas para diseñar algoritmos son:

diagramas de flujo y pseudocódigos.

Diagramas de Flujo. Un diagrama de flujo es una representación

gráfica de un algoritmo, los símbolos utilizados han sido

normalizados por el Instituto Norteamericano de Normalización

(ANSI).

Pseudocódigo. Es una herramienta de programación en la que las

instrucciones se escriben en palabras similares al inglés o el español

y facilitan tanto la escritura como la lectura de programas.

10

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 6: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

6

Símbolos Principales de los Diagramas de Flujo

11

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Símbolos Principales de los Diagramas de Flujo

12

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 7: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

7

13

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Análisis del Problema

La primera fase de la resolución de un problema con computadora

es el análisis del problema. Esta fase requiere una clara definición,

contemplando exactamente lo que debe hacer el programa y el

resultado o solución deseada.

Para definir bien un problema se debe responder las siguientes

preguntas:

• ¿Qué entradas se requieren? (tipo y cantidad)

• ¿Cuál es la salida deseada? (tipo y cantidad)

• ¿Qué método produce la salida deseada?

* Figura Análisis del Problema.

14

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 8: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

8

Diseño del Algoritmo

En la etapa de análisis se determina qué hace el programa. En la

etapa de diseño se determina cómo hace el programa la tarea

solicitada.

Diseño Descendente (top-down) o Modular

Es un método que consiste en dividir un problema en una serie de

niveles o pasos sucesivos de refinamiento (stepwise). Es decir, se

descompone el problema en etapas de forma que se puede

considerar cada etapa desde dos puntos de vista: ¿qué hace? y

¿cómo lo hace?

15

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Diseño Descendente (top-down) o Modular

El proceso de romper cada problema en cada etapa y expresar cada

paso de forma detallada se denomina refinamiento sucesivo.

Todo 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).

Los programas estructurados de esta forma se dice que tienen

diseño modular y el método de programar en módulos más

pequeños se llama programaciónmodular.

16

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 9: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

9

Diseño Descendente (top-down) o Modular

El proceso que convierte los resultados del análisis del problema en

un diseño modular con refinamientos sucesivos que permitan una

posterior traducción a un lenguaje se denomina diseño de

algoritmo.

El diseño del algoritmo es independiente de lenguaje de

programación en el que se vaya a codificar posteriormente.

17

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Codificación

Es la escritura en un lenguaje de programación de la representación

del algoritmo desarrollado en las etapas precedentes.

Para realizar la conversión de algoritmo en programa es necesario

sustituir palabras reservadas, y las operaciones o instrucciones

indicadas en lenguaje natural expresarlas en el lenguaje de

programación correspondiente.

18

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 10: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

10

Compilación y Ejecución de un Programa

Una vez que un algoritmo se ha convertido en un programa fuente

debe ser traducido a lenguaje de máquina, este proceso se realiza

con el compilador. Después de compilar y no encontrar errores se

obtiene un programa objeto. Luego, se realiza la fase de montaje o

enlace del programa objeto con las librerías del compilador para

producir un programa ejecutable.

19

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Verificación y Depuración de un Programa

La verificación de un programa, es la ejecución del programa con un

amplia variedad de datos de entrada, llamados datos de test o

prueba que determinarán si el programa tiene errores (bugs).

La depuración es el proceso de encontrar los errores del programa y

corregir o eliminar esos errores. Al ejecutar un programa se pueden

producir tres tipos de errores:

1) Errores de compilación. Se producen por un uso incorrecto de las

reglas del lenguaje de programación y suelen ser errores de

sintaxis. Si existen errores de sintaxis no se puede obtener el

programa objeto y el compilador mostrará todos los errores.

20

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 11: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

11

Verificación y Depuración de un Programa

2) Errores de ejecución. Son errores que se producen por

instrucciones que la computadora puede comprender pero no

ejecutar, por ejemplo: división entre cero. En este caso se detiene la

ejecución del programa y se muestra un mensaje de error.

3) Errores lógicos. Se producen en la lógica del programa y la fuente

del error suele ser el diseño del algoritmo. Son los más difíciles de

detectar ya que el programa puede funcionar y no producir errores

de compilación y sólo mostrar resultados incorrectos.

21

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Documentación y Mantenimiento

La documentación de un programa puede ser interna y externa. La

documentación interna es la contenida en líneas de comentarios. La

documentación externa incluye análisis, diagramas de flujo y/o

seudocódigos, manuales de usuario con instrucciones para ejecutar

el programa y para interpretar los resultados.

La documentación es vital cuando se desea corregir posibles errores

futuros o bien cambiar el programa. Tales cambios se denominan

mantenimiento del programa. Después de cada cambio la

documentación debe ser actualizada. Es práctica frecuente numerar

las sucesivas versiones de los programas 1.0, 1.1, 2.0, 2.1.

*Sólo cuando son cambios importantes cambia el primer dígito.

22

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 12: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

12

Ejercicio

Se requiere un algoritmo para obtener el promedio de un estudiante a

partir de sus dos calificaciones parciales.

23

DISEÑO ESTRUCTURADO

DE ALGORITMOS

24

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 13: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

13

Programación Modular

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

flexible y potentes para 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 actividad o tarea

y se codifican independientemente. Si la tarea asignada a cada

submódulo es demasiado compleja, éste debe romperse en módulos

más pequeños.

Un módulo puede transferir (bifurcar) el control a otro módulo; sin

embargo, cada módulo debe devolver el control al módulo del cual

se recibe el control. *Programación modular.

25

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Programación Modular

En la programación modular los módulos son independientes, dado

esto, diferentes programadores pueden trabajar simultáneamente

en diferentes partes del mismo programa. Esto reducirá el tiempo de

diseño del algoritmo y la codificación del programa.

La descomposición de un programa en módulos independientes más

simples se conoce también como el método de «divide y vencerás».

26

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 14: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

14

Programación Estructurada

La 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.

La programación estructurada utiliza un número limitado de

estructuras de control que minimizan la complejidad de los

programas y, por consiguiente, reducen los errores; hace los

programas más fáciles de escribir, verificar, leer y mantener.

27

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Programación Estructurada

Las estructuras de control de un lenguaje de programación son

métodos de especificar el orden en que las instrucciones de un

algoritmo se ejecutarán. El orden de ejecución de las sentencias

(lenguaje) o instrucciones determinan el flujo de control.

28

DISEÑO ESTRUCTURADO

DE ALGORITMOS

Page 15: Diseno Estructurado de Algoritmos parte1

Diseño Estructurado de Algoritmos. Parcial 1 -

Presentación 1

15

Ejercicio

Se requiere un algoritmo que permita ingresar el número de partidos

ganados, perdidos y empatados por un equipo de futbol. Se debe

mostrar su puntaje final, tomando en cuenta que por cada partido

ganado obtiene 3 puntos, empatado 1 punto y perdido 0 puntos.

29

DISEÑO ESTRUCTURADO

DE ALGORITMOS

30