Post on 21-Apr-2015
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
1. Exponer los principios de la programación estructurada.
2. Resolver problemas algorítmicamente (Pseudocódigo), utilizando los diferentes tipos de módulos parametrizados estudiados.
Objetivos Específicos de la Unidad
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Diseño Descendente (Top-Down).Ámbito de las variables (Locales y Globales).Procedimientos. Definición. Funcionamiento.Funciones (Estándar y Definidas por el Usuario)
Definición de Funciones estándar. Definición de Funciones Definidas por el Usuario.
Procedimientos y Funciones Parametrizadas. Parámetro. Definición. Parámetro por Referencia. Parámetros por Valor.
Contenido
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
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).
Con la Técnica de Programación Estructurada, los
programas están dotados de una estructura, son más
fáciles de escribir, leer y mantener.
(Joyanes, 2000:23)
Fundamentos
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
DivisiónProblema SubProblema
SubProblema
SubProblema
“Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños llamados subproblemas. Estos subproblemas pueden a su vez ser divididos repetidamente en problemas más pequeños hasta que los problemas más pequeños son solucionados. Esta técnica se denomina Divide y Vencerás”.
Diseño Descendente
(Joyanes, 1998:195)
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Nivel N de refinamiento
¿Qué hace?Nivel N + 1 de refinamiento
¿Cómo lo hace?
(Joyanes, 2000:23)
Diseño Descendente
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Módulo
Principal
Módulo #1 Módulo #2 Módulo #3
Módulo
# 2.2
Módulo
# 2.1
Módulo
# 1.2
Módulo
# 1.1
Módulo
# 3.1
Diseño Modular
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada Diseño Modular
(Joyanes, 2000:198)
Legible. Comprensible. Fácilmente Depurable. Fácilmente Modificable.
Permite que un programa sea:
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada Tipos de Módulos
(Joyanes, 2000:198)
PROCEDIMIENTOS
FUNCIONES
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Es un módulo que realiza una tarea específica. Puede
recibir de otras partes del programa, cero o más valores
para procesarlos, y también puede devolver de cero a más
valores a dichas partes del programa que interactúan con
él.
(Joyanes, 1998:199)
Módulo Tipo Procedimiento
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Procedimiento Nombre_Proc[(Lista de Parámetros Formales)]
Declaración
Inicio
Acciones...
Fin Procedimiento
Estructura de un Procedimiento
Cabecera
Declaraciones Locales
Cuerpo
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Los procedimientos se llaman desde el módulo principal o
desde otro módulo.
LLAMAR Nomb_Proc [(Lista de Parámetros Actuales)]
La llamada a un procedimiento va acompañada de una lista
de parámetros, a través de los cuales se puede enviar y/o
recibir datos desde o hacia el procedimiento (según sea la
necesidad).
Llamada a un Procedimiento
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada Llamada a un Procedimiento
Procedimiento Nomb_Proc [(Lista de Parámetros Formales)]
DeclaraciónInicio Acciones...Fin Procedimiento
Algoritmo Principal DeclaraciónInicio Acciones... Llamar Nomb_Proc[(Lista de Parámetros Actuales)]Fin
Son Constantes y Variables Globales
Son Constantes y Variables Locales
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Se denomina ámbito de una variable a la parte del programa donde una variable es reconocida o válida.
Las reglas que definen el ámbito de una variable se llaman Reglas de Ámbito.
GLOBALES Según el ámbito, las variables son:
LOCALES
Ámbito de Variables
(Joyanes, 1998:224)
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Módulo Principal
a,b,c: Entero
Módulo 1
a,d,e: Entero
Módulo 2
x, c, j: Entero
Módulo 3
a, j, x: Entero
Estudio del Ámbito de Variables
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
“Un parámetro es un método para pasar información (valores
a variables) del programa principal a un procedimiento y
viceversa”. Un parámetro se considera como una variable
cuyo valor debe ser proporcionado a un módulo, o bien, como
una variable que un módulo debe devolver al programa
principal o procedimiento que lo llamó.
Parámetros
(Joyanes, 1998:206)
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada Tipos de Parámetros
Lista de Parámetros Actuales
A
B
Lista de Parámetros Formales
C
D
Cabecera del MóduloLlamada al Módulo
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada Tipos de Parámetros Formales
Lista de Parámetros Actuales
A
B
Lista de Parámetros Formales
C
D
Cabecera del MóduloLlamada al Módulo
Entrada
Entrada Salida
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
...Escribir “Introduzca el 1er Valor a Sumar:”Leer Num1Escribir “Introduzca el 2do Valor a Sumar:”Leer Num2Llamar Sumador (Num1, Num2) Num1 y Num2 son
Parámetros Actuales y pasan sus valores a los Parámetros Formales
N1 y N2.Procedimiento Sumador ( N1, N2: Entero)
DeclaraciónInicio Acciones...Fin Procedimiento
Ejemplo Parámetros de Entrada
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
...Escribir “Introduzca el 1er Valor a Sumar:”Leer Num1Escribir “Introduzca el 2do Valor a Sumar:”Leer Num2Llamar Sumador (Num1, Num2, Suma)Escribir Suma
Sum obtiene la misma dirección de
memoria que Suma...
Ejemplo Parámetros de Entrada-Salida
Procedimiento Sumador ( N1, N2: Entero, Sum: Entero)
DeclaraciónInicio Acciones... entre las cuales Sum obtiene su valor...Fin Procedimiento
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Diseñe un algoritmo que permita procesar una cadena de caracteres para realizar sobre ella, según la opción del usuario, cualquiera de las siguientes operaciones:
Indicar si es palíndromo.
Indicar si contiene un carácter en particular.
Problema
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Menú Opciones
Operaciones Cadena
Busca carácter
Descomposición Modular del Problema
Palíndromo
Diagrama de Estructura de Módulos
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Algoritmo Operaciones_CadenaDeclaraciónVariables
LaCadena: CadenaOpc: Entero
InicioRepetir
Escribir “Ingrese la cadena a procesar:”Leer LaCadenaLlamar Menu(Opc)Caso Opc
1: Llamar Palindomo(LaCadena) 2: Llamar Buscador(LaCadena) Fin Caso Hasta (Opc = 3)Fin
Solución Modular del Problema
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Procedimiento Menu( Opc: Entero)Inicio Escribir “Menú de Opciones:” Escribir “1. Verificar si es Palíndromo” Escribir “2. Buscar un carácter particular” Escribir “3. Ninguna” Repetir Escribir “Ingrese la opción de su preferencia: ” Leer Opc Hasta (Opc > = 1) Y (Opc < =3)Fin Procedimiento
Solución Modular del Problema
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Procedimiento Palindromo( Cade: Cadena)DeclaraciónVariables: i, Longi: Entero; CadeAux: Cadena Inicio longi Largo(Cade) CadeAux”” Para i= longi Hasta 1 Inc[-1] CadeAux CadeAux + Cade[i] Fin Para
Si Cade = CadeAux Entonces Escribir “La Cadena Sí es un Palíndromo” Sino Escribir “La Cadena No es un Palíndromo” Fin Si Fin Procedimiento
Solución Modular del Problema
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Procedimiento Buscador( Cade: Cadena)DeclaraciónVariables: i, Longi: Entero; Buscado: CaracterInicio longi Largo(Cade) Escribir “Introduzca un carácter a buscar ” Leer Buscado i 1, Hallado Falso Mientras (i < = Longi) Y (Hallado = Falso) Hacer Si Cade[i] = Buscado Entonces Hallado Verdadero Fin Si i i + 1 Fin Mientras Si Hallado = Verdadero Entonces Escribir “Sí se encontró el carácter” Sino Escribir “El carácter no está en la cadena” Fin Si
Fin Procedimiento
Solución Modular del Problema
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada Función
Es un módulo que realiza una tarea específica. Puede
recibir de otras partes del programa, cero o más valores
para procesarlos y devolver un valor como resultado.
Estándar
Definidas por el Programador
Tipos de Funciones
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Función Nombre_Func[(Lista de Parámetros Formales)]:DeclaraciónConstantesVariables Variable_Resultado: Tipo de DatoInicio Acciones... Nombre_Func Variable_ResultadoFin Función
Estructura de una Función
Tipo de dato del resultado que
devuelve
Cabecera
DeclaracionesLocales
Cuerpo
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
La llamada a una función no puede aparecer sola en ningún punto del algoritmo, dado que el nombre de la función invoca su ejecución y luego se sustituye por el valor que ella trae como resultado. Ejemplos de invocación:
Variable Función(Parámetros Actuales)
Si Función (Lista de Parámetros Actuales) = 20000 Entonces
Acciones a ejecutar
Fin Si
Mientras (Función (Parámetros Actuales) = 0) Hacer
Acciones...
Fin Mientras
Llamada a una Función
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada
Función Nombre_Func[(Lista de Parámetros Formales)]: TipoDeclaraciónVariables: Variable Auxiliar: Tipo de Dato Inicio Acciones... Nombre_Func Variable AuxiliarFin Función
Algoritmo Principal DeclaraciónInicio Acciones... Escribir “El resultado de la operación x”, Nombre_Func(Lista de Parámetros Actuales)
Fin
Llamada a una Función
Algoritmos y Estructuras de Datos I (230-1214)
Unidad II. Programación Estructurada Problema
Diseñe una Función que calcule el número AN de la Serie de Fibonacci, para cualquier N>=3.
Ejemplo: con N=10, Serie=1,1,2,3,5,8,13,21,34,55
Función SerieFibo( N: Entero): EnteroDeclaraciónVariables
i, AN_1, AN_2, Ai: Entero Inicio
AN_1 1AN_2 1Para i = 3 Hasta N
Ai AN_2 +AN_1AN_1 AN_2 AN_2 Ai
Fin ParaSerieFibo Ai
Fin Función