Programación Estructurada Diseño, módulos, cohesión, variables globales y locales, parámetros
Características de la programación estructurada La modularidad Las 4 estructuras lógicas Estructura secuencial Estructura de decisión Estructura de loops Estructura case Elimina la re-codificación Mejora el código
Estructura de secuencia int main() { int a,b,c; cin>>a; cin>>b; c=a+b; cout<<c; return 0; } Instrucciones Instrucciones Instrucciones
Estructura de decisión condición Instrucción Instrucción if (a<10) x=10; else if (a>=10) x=20;
Estructura de loop for (x=1;x<=100;x++) { cin>>a; condición for (x=1;x<=100;x++) { cin>>a; cin>>b; c=a+b; cout<<c; } instrucción instrucción
Los módulos Cada módulo es una entidad con sus características propias El módulo tiene su función particular Debe ser corto, fácil de leer y de modificar El largo de un módulo depende de su función y las instrucciones usadas Los módulos se diseñan para controlar el orden del proceso
Analogía de módulos y programas A,B,C A=1 B=3 C=A+B A,B,C A=1 B=3 C=A+B A,B,C A=1 B=3 C=A+B Son tres programas diferentes, grabados con nombres diferentes Tienen las mismas variables con los mismos valores Calculan la misma fórmula Ejcutar uno de los programas no afecta los otros dos
Tipos de módulo Control: Muestra el flujo de datos en el programa y gobierna los otros módulos. Inicialización: Procesa instrucciones que se ejecutan una vez al principio del programa. Ej: abrir archivos, iniciar variables. Proceso: Se procesan una sola vez, o están dentro de un loop.
Ejemplo prog1 Módulo de control Call inicialización Call proceso X=10 Open file.dat Proceso do/cómputo/loop
Módulos de proceso Cálculo: cálculos aritméticos (c=a+b), contadores (x=x+1), acumuladores (t=t+valor) o sorteo. Impresión: Imprime encabezados, líneas de detalle y totales Encabezados Líneas de detalles Líneas de detalle Totales
Módulos de proceso Validación de lectura y datos: Lee y entra datos a la memoria Valida datos Entra datos de forma interactiva Entre su Seguro Social: XXX-XX-XXX Entre su teléfono (incluya código de área): (###)###-####
Continuación de tipos de módulo “Wrapup”: Procesa instrucciones que se ejecutan una sola vez al final. Ej: Cerrar archivos e imprimir totales. infile.close() cout<<totales Eventos: En orientado a objetos, mover el mouse, entrada por teclado.
Variables locales y globales Variables locales: Se utilizan dentro de un módulo en particular. Se declaran en el módulo Se pueden usa solamente en ese módulo Otros módulos no pueden afectar directamente sus valores Variables globales: Se pueden usar en cualquier módulo. Se declaran antes de los módulos Pueden duplicarse en cualquier módulo Su valor se puede afectar directamente desde cualquier módulo Pueden afectar la cohesión
Variables globales y locales prog1 Variables a,b,c módulo1 Globales Variables d,e,f módulo2 Locales Variables g,h,i módulo3 Variables j,k,l
Los parámetros Parámetros: Variables locales cuyo valor es pasado de un módulo a otro. Se pueden enviar de dos formas: Envío directo del valor: Paso el valor directamente Envío por referencia: Paso el valor a través de su dirección en memoria c a b 15 75 90 FFFFF ABx10 DDx10
Parámetros prog1 módulo1 C=2,D=3 módulo2 módulo3 E=2,F=3 A=2 B=3 No puedo enviar los valores de forma directa No puedo repetir las variables porque son locales módulo2 Y=6 Z=7 Y=2 Z=3 módulo3 E=2,F=3 R=8 S=9 R=2 S=3