unidad ii. programación estructurada algoritmos y estructuras de datos i (230-1214) 1.exponer los...
TRANSCRIPT
![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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/1.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/2.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/3.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/4.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/5.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/6.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/7.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/8.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/9.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/10.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/11.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/12.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/13.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/14.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/15.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/16.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/17.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/18.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/19.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/20.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/21.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/22.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/23.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/24.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/25.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/26.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/27.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/28.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/29.jpg)
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](https://reader036.vdocumento.com/reader036/viewer/2022081507/5536b83655034693658b48a1/html5/thumbnails/30.jpg)
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