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

30
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

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

Page 1: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 2: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 3: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 4: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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)

Page 5: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 6: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 7: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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:

Page 8: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

Algoritmos y Estructuras de Datos I (230-1214)

Unidad II. Programación Estructurada Tipos de Módulos

(Joyanes, 2000:198)

PROCEDIMIENTOS

FUNCIONES

Page 9: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 10: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 11: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 12: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 13: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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)

Page 14: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 15: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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)

Page 16: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 17: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 18: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 19: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 20: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 21: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 22: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 23: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 24: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 25: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 26: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 27: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 28: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 29: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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

Page 30: Unidad II. Programación Estructurada Algoritmos y Estructuras de Datos I (230-1214) 1.Exponer los principios de la programación estructurada. 2.Resolver.

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