Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los...

Post on 21-Apr-2015

19 views 1 download

Transcript of Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los...

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