diseno estructurado de algoritmos parte1
DESCRIPTION
Muestra información para realizar algoritmos sin problema, se muestran las instrucciones necesarias para aprender y mejorar los pseucodigos de información...TRANSCRIPT
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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