Está en la página 1de 15

Diseo Estructurado de Algoritmos.

Parcial 1 Presentacin 1

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:
1. Anlisis del problema

5. Verificacin.

2. Diseo del algoritmo

6. Depuracin.

3. Codificacin.

7. Mantenimiento.

4. Compilacin y ejecucin. 8. Documentacin.

DISEO ESTRUCTURADO
DE ALGORITMOS
2

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

De los Problemas a los Programas


Estas etapas constituyen el ciclo de vida del software:
1) Anlisis. El problema se analiza teniendo presente la
especificacin de los requisitos dados.
2) Diseo. Una vez analizado el problema se disea una solucin que
conducir a un algoritmo que resuelva el problema.
3) Codificacin (Implementacin). La solucin se escribe en la
sintaxis de un lenguaje de alto nivel y se obtiene un programa.
4) Compilacin, ejecucin y verificacin. El programa se ejecuta, se
comprueba y se eliminan todos los errores (denominados bugs).

DISEO ESTRUCTURADO
DE ALGORITMOS
3

De los Problemas a los Programas


5) Depuracin y mantenimiento. El programa se actualiza y modifica
cada vez que sea necesario, cumpliendo todas las necesidades de los
usuarios.
6) Documentacin. Escritura de documentos de las fases del ciclo de
vida del software y manuales de usuario.
Las dos primeras etapas conducen a un diseo detallado escrito en
forma de algoritmo.
Durante la tercera etapa se implementa el algoritmo en un cdigo
escrito en un lenguaje de programacin.

DISEO ESTRUCTURADO
DE ALGORITMOS
4

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

Algoritmo
Es un mtodo para resolver un problema mediante una serie de
pasos precisos, definidos y finitos.
Caractersticas
Preciso. Indica el orden de realizacin de cada paso.
Definido. Si se realiza dos veces, obtiene el mismo resultado.
Finito. Tiene fin, un nmero determinado de pasos.

DISEO ESTRUCTURADO
DE ALGORITMOS
5

Lenguaje
Los lenguajes de programacin sirven para escribir programas que
permitan la comunicacin usuario/mquina . Programas especiales
llamados traductores convierten las instrucciones escritas en
lenguaje de programacin en lenguaje de mquina (0 y 1, bits) .
Los principales tipos de lenguajes utilizados son tres:
Lenguajes mquina.
Lenguajes de bajo nivel (ensamblador o de mquina).
Lenguajes de alto nivel.
*Investigar los tres tipos de lenguajes

DISEO ESTRUCTURADO
DE ALGORITMOS
6

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

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 programacin
se pueden condensar en cuatro grupos:
Instrucciones de entrada/salida. Instrucciones de transferencia de datos
entre dispositivos perifricos.

Instrucciones aritmtico-lgicas. Instrucciones que ejecutan operaciones


aritmticas y lgicas.

Instrucciones selectivas. Instrucciones que permiten la seleccin de tareas


en funcin de los resultados de expresiones condicionales.
Instrucciones repetitivas. Instrucciones que permiten la repeticin de
secuencias de instrucciones un nmero determinado de veces.

DISEO ESTRUCTURADO
DE ALGORITMOS
7

Traductores de Lenguaje
Los traductores de lenguajes son programas que traducen los
programas fuente escritos en lenguaje de alto nivel a cdigo de
mquina. Los traductores se dividen en compiladores e intrpretes.
Intrpretes. Es un traductor que toma un programa fuente, lo
traduce y a continuacin lo ejecuta.
Compiladores. Despus que se ha diseado el algoritmo y escrito el
programa en un papel se debe iniciar el proceso de introducir el
programa en un archivo. La traduccin de lenguaje de alto nivel a
lenguaje de bajo nivel se hace mediante un compilador.

DISEO ESTRUCTURADO
DE ALGORITMOS
8

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

DISEO ESTRUCTURADO
DE ALGORITMOS
9

Herramientas de Programacin
Las dos herramientas ms utilizadas para disear algoritmos son:
diagramas de flujo y pseudocdigos.
Diagramas de Flujo. Un diagrama de flujo es una representacin
grfica de un algoritmo, los smbolos utilizados han sido
normalizados por el Instituto Norteamericano de Normalizacin
(ANSI).
Pseudocdigo. Es una herramienta de programacin en la que las
instrucciones se escriben en palabras similares al ingls o el espaol
y facilitan tanto la escritura como la lectura de programas.

DISEO ESTRUCTURADO
DE ALGORITMOS
10

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

Smbolos Principales de los Diagramas de Flujo

DISEO ESTRUCTURADO
DE ALGORITMOS
11

Smbolos Principales de los Diagramas de Flujo

DISEO ESTRUCTURADO
DE ALGORITMOS
12

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

DISEO ESTRUCTURADO
DE ALGORITMOS
13

Anlisis del Problema


La primera fase de la resolucin de un problema con computadora
es el anlisis del problema. Esta fase requiere una clara definicin,
contemplando exactamente lo que debe hacer el programa y el
resultado o solucin deseada.
Para definir bien un problema se debe responder las siguientes
preguntas:
Qu entradas se requieren? (tipo y cantidad)
Cul es la salida deseada? (tipo y cantidad)
Qu mtodo produce la salida deseada?
* Figura Anlisis del Problema.

DISEO ESTRUCTURADO
DE ALGORITMOS
14

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

Diseo del Algoritmo


En la etapa de anlisis se determina qu hace el programa. En la
etapa de diseo se determina cmo hace el programa la tarea
solicitada.

Diseo Descendente (top-down) o Modular


Es un mtodo 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
cmo lo hace?

DISEO ESTRUCTURADO
DE ALGORITMOS
15

Diseo 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 diseado consta de un programa principal
(mdulo de nivel ms alto) que llama a subprogramas (mdulos de
nivel ms bajo).
Los programas estructurados de esta forma se dice que tienen
diseo modular y el mtodo de programar en mdulos ms
pequeos se llama programacin modular.

DISEO ESTRUCTURADO
DE ALGORITMOS
16

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

Diseo Descendente (top-down) o Modular


El proceso que convierte los resultados del anlisis del problema en
un diseo modular con refinamientos sucesivos que permitan una
posterior traduccin a un lenguaje se denomina diseo de
algoritmo.
El diseo del algoritmo es independiente de lenguaje de
programacin en el que se vaya a codificar posteriormente.

DISEO ESTRUCTURADO
DE ALGORITMOS
17

Codificacin
Es la escritura en un lenguaje de programacin de la representacin
del algoritmo desarrollado en las etapas precedentes.
Para realizar la conversin de algoritmo en programa es necesario
sustituir palabras reservadas, y las operaciones o instrucciones
indicadas en lenguaje natural expresarlas en el lenguaje de
programacin correspondiente.

DISEO ESTRUCTURADO
DE ALGORITMOS
18

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

Compilacin y Ejecucin de un Programa


Una vez que un algoritmo se ha convertido en un programa fuente
debe ser traducido a lenguaje de mquina, este proceso se realiza
con el compilador. Despus 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 libreras del compilador para
producir un programa ejecutable.

DISEO ESTRUCTURADO
DE ALGORITMOS
19

Verificacin y Depuracin de un Programa


La verificacin de un programa, es la ejecucin del programa con un
amplia variedad de datos de entrada, llamados datos de test o
prueba que determinarn si el programa tiene errores (bugs).
La depuracin 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 compilacin. Se producen por un uso incorrecto de las
reglas del lenguaje de programacin 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.

DISEO ESTRUCTURADO
DE ALGORITMOS
20

10

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

Verificacin y Depuracin de un Programa


2) Errores de ejecucin. Son errores que se producen por
instrucciones que la computadora puede comprender pero no
ejecutar, por ejemplo: divisin entre cero. En este caso se detiene la
ejecucin del programa y se muestra un mensaje de error.
3) Errores lgicos. Se producen en la lgica del programa y la fuente
del error suele ser el diseo del algoritmo. Son los ms difciles de
detectar ya que el programa puede funcionar y no producir errores
de compilacin y slo mostrar resultados incorrectos.

DISEO ESTRUCTURADO
DE ALGORITMOS
21

Documentacin y Mantenimiento
La documentacin de un programa puede ser interna y externa. La
documentacin interna es la contenida en lneas de comentarios. La
documentacin externa incluye anlisis, diagramas de flujo y/o
seudocdigos, manuales de usuario con instrucciones para ejecutar
el programa y para interpretar los resultados.
La documentacin es vital cuando se desea corregir posibles errores
futuros o bien cambiar el programa. Tales cambios se denominan
mantenimiento del programa. Despus de cada cambio la
documentacin debe ser actualizada. Es prctica frecuente numerar
las sucesivas versiones de los programas 1.0, 1.1, 2.0, 2.1.
*Slo cuando son cambios importantes cambia el primer dgito.

DISEO ESTRUCTURADO
DE ALGORITMOS
22

11

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

Ejercicio
Se requiere un algoritmo para obtener el promedio de un estudiante a
partir de sus dos calificaciones parciales.

DISEO ESTRUCTURADO
DE ALGORITMOS
23

DISEO ESTRUCTURADO
DE ALGORITMOS
24

12

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

Programacin Modular
La programacin modular es uno de los mtodos de diseo ms
flexible y potentes para la productividad de un programa. En
programacin modular el programa se divide en mdulos (partes
independientes) cada una de las cuales ejecuta una actividad o tarea
y se codifican independientemente. Si la tarea asignada a cada
submdulo es demasiado compleja, ste debe romperse en mdulos
ms pequeos.
Un mdulo puede transferir (bifurcar) el control a otro mdulo; sin
embargo, cada mdulo debe devolver el control al mdulo del cual
se recibe el control.
*Programacin modular.

DISEO ESTRUCTURADO
DE ALGORITMOS
25

Programacin Modular
En la programacin modular los mdulos son independientes, dado
esto, diferentes programadores pueden trabajar simultneamente
en diferentes partes del mismo programa. Esto reducir el tiempo de
diseo del algoritmo y la codificacin del programa.
La descomposicin de un programa en mdulos independientes ms
simples se conoce tambin como el mtodo de divide y vencers.

DISEO ESTRUCTURADO
DE ALGORITMOS
26

13

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

Programacin Estructurada
La programacin estructurada significa escribir un programa de
acuerdo a las siguientes reglas:
El programa tiene un diseo modular.
Los mdulos son diseados de modo descendente.
Cada mdulo se codifica utilizando las tres estructuras de control
bsicas: secuencia, seleccin y repeticin.
La programacin estructurada utiliza un nmero limitado de
estructuras de control que minimizan la complejidad de los
programas y, por consiguiente, reducen los errores; hace los
programas ms fciles de escribir, verificar, leer y mantener.

DISEO ESTRUCTURADO
DE ALGORITMOS
27

Programacin Estructurada
Las estructuras de control de un lenguaje de programacin son
mtodos de especificar el orden en que las instrucciones de un
algoritmo se ejecutarn. El orden de ejecucin de las sentencias
(lenguaje) o instrucciones determinan el flujo de control.

DISEO ESTRUCTURADO
DE ALGORITMOS
28

14

Diseo Estructurado de Algoritmos. Parcial 1 Presentacin 1

Ejercicio
Se requiere un algoritmo que permita ingresar el nmero 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.

DISEO ESTRUCTURADO
DE ALGORITMOS
29

30

15