Está en la página 1de 34

Conceptos de

Algoritmos
Datos y Programas

Clase 3
1
CADP – Temas de la clase de hoy

Modularización

Alcance de variables

Clase 3
CADP – MODULARIZACION

Clase 3
CADP – MODULARIZACION
MODULARIZAR
Significa dividir un problema en partes funcionalmente
independientes, que encapsulen operaciones y datos.

No se trata simplemente de Separar en funciones lógicas


subdividir el código de un con datos propios y datos de
sistema de software en bloques comunicación perfectamente
con un número de instrucciones especificados.
Clase 3
dado.
CADP – MODULARIZACION MODULARIZAR

RECORDAR
Cada subproblema está en un mismo nivel de detalle.

Cada subproblema puede resolverse independientemente.

Las soluciones de los subproblemas puede combinarse


para resolver el problema original.

Clase 3
CADP – MODULARIZACION

MODULO
Tarea específica bien definida se comunican entre sí
adecuadamente y cooperan para conseguir un objetivo
común.
Encapsula acciones tareas o funciones.
En ellos se pueden representar los objetivos relevantes del
problema a resolver.

Existen diferentes metodologías para usarlos en los programas en particular


nosotros usaremos la METODOLOGIA TOP-DOWN
Clase 3
CADP – MODULARIZACION VENTAJAS

Clase 3
CADP – MODULARIZACION VENTAJAS

Supongamos que tenemos


que resolver el siguiente
proyecto

Clase 3
CADP – MODULARIZACION VENTAJAS

Al dividir un sistema de software en módulos


funcionalmente independientes, un equipo de
desarrollo puede trabajar simultáneamente en varios
Mayor
módulos, incrementando la productividad (es decir Productividad
reduciendo el tiempo de desarrollo global del
sistema).
Gestión de Bases de
Datos

Gestión de Gestión de
Usuarios Cuentas

Agrega
Baja Modificación Alta Baja Actualización
Clase 3
r
9
CADP – MODULARIZACION VENTAJAS

Un objetivo fundamental de la Ingeniería de


Software es la reusabilidad, es decir la posibilidad de
utilizar repetidamente el producto de software Reusabilidad
desarrollado. Naturalmente la descomposición
funcional que ofrece la modularización favorece el
reuso.

Gestión de Usuarios

Agregar Baja Modificación


Clase 3
CADP – MODULARIZACION VENTAJAS

Los sistemas de software reales crecen (es decir


aparecen con el tiempo nuevos requerimientos del Facilidad de
usuario). La modularización permite disminuir los crecimiento
riesgos y costos de incorporar nuevas prestaciones a
un sistema en funcionamiento.

Gestión de Entidades
Bancarias

Agregar Baja
Clase 3
CADP – MODULARIZACION VENTAJAS

Un efecto de la modularización es una mayor


claridad para leer y comprender el código fuente. El
ser humano maneja y comprende con mayor Legibilidad
facilidad un número limitado de instrucciones
directamente relacionadas.

Clase 3
CADP – MODULARIZACION ALTERNATIVAS

Clase 3
CADP – MODULARIZACION PROCEDIMIENTOS
Programa nombre
areas
Procesos
proceso nombre Cómo son?
variables Cómo se declaran?
comenzar Cómo se usan?
fin
variables
comenzar
Clase 3
fin
CADP – MODULARIZACION PROCEDIMIENTOS

PROCEDIMIENTO
Conjunto de instrucciones que realizan una tarea especifica y
retorna 0, 1 ó más valores.

procedure nombre;
var
Variables locales
.... Cómo se invocan?
begin
.... Código del
procedimiento
Clase 3
end;
CADP – MODULARIZACION PROCEDIMIENTOS
Program uno;
INVOCACION Const
....
Type
....
procedure auxiliar;
Var
x:integer; Existe otra forma
begin
x:=8; de modularizar
end; FUNCIONES
Var
.... Por su nombre
Begin
Clase 3
auxiliar;
End.
CADP – MODULARIZACION FUNCIONES

FUNCION
Conjunto de instrucciones que realizan una tarea especifica y
retorna un único valor de tipo simple.

Function nombre :tipo;


var
....
begin Qué diferencias se ven
.... con los procedimientos?
Clase 3
end;
CADP – MODULARIZACION FUNCIONES

CARACTERISTICAS Nombre de la
función
Function nombre() :tipo;
var Debe ser de
.... tipo simple
Variables
begin locales
....
nombre:= valor a retornar;
end; Valor que
devuelve la
Clase 3 CADP
función
CADP – MODULARIZACION FUNCIONES

CARACTERISTICAS El valor que se calcula


program uno; (cociente) debe ser el mismo
tipo al que devuelve la función
Function auxiliar: real;
Var
x, y, cociente :real; Cómo se
invoca?
begin
x:= 10;
y:= 4;
cociente:= x/y; La asignación del nombre de la
auxiliar:= cociente; función a la variable que retorna
Clase 3 end; debe ser la última instrucción.
CADP – MODULARIZACION FUNCIONES

INVOCACION program uno;


POR SU NOMBRE Function auxiliar: real;
Var
x, y, cociente:real;

Invocación usando variable begin


x:= 10;
El resultado y:= 4;
cociente:= x/y;
se asigna a auxiliar:= cociente;
end;
una variable Var
del mismo aux:real;
tipo que begin El retorno de la
función es a la
devuelve la aux:= auxiliar;
misma línea de
función. write (aux); invocación
Clase 3
end.
CADP – MODULARIZACION FUNCIONES

INVOCACION program uno;


POR SU NOMBRE Function auxiliar: real;
Var
x, y, cociente:real;

Invocación en un while/if begin


x:= 10;
El resultado y:= 4;
cociente:= x/y;
El retorno de la
se asigna a auxiliar:= cociente;
función es a la
end;
una variable Var misma línea de
del mismo aux:real; invocación
tipo que begin
devuelve la while (auxiliar = 5.5) do
función. if (auxiliar = 5.5) then
Clase 3
end.
CADP – MODULARIZACION FUNCIONES

INVOCACION program uno;


POR SU NOMBRE
Function auxiliar: real;
Var
x, y, cociente:real;
Invocación en un write
begin
El resultado x:= 10;
y:= 4;
se puede cociente:= x/y;
mostrar en auxiliar:= cociente;
end;
una
sentencia begin
write. write (‘El resultados es,auxiliar);
end.
Clase 3
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES

Clase 3
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES
Program alcance;

Var
a,b: integer;

procedure prueba;
Var
c: integer;
Begin
End.

Var
d:integer;
Begin
Clase 3
End. CADP 24
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES
Program alcance; Program alcance; Program alcance;
Const Const Const
… … …
Type Type Type
… … …
Var Var Var
a,b: integer; a,b: integer; a,b: integer;

Procedure prueba; Procedure prueba; Procedure prueba;


Var Var Var
c: integer; c: integer; c: integer;
Begin Begin Begin
End. End. End.

Var Var Var


d:integer; d:integer; d:integer;
Begin Begin Begin
End. End. End.
Clase 3 CADP 25
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES
Program alcance;
Var Variables de programa (globales)
x,y: integer;
x:=
Procedure prueba; y:= 9
Var
Qué x:integer;
imprime? Begin
x:= 34 DIV 3; Variables del proceso prueba
write (x);
End; x:= 11 Imprime 11
Var
x:integer;
Begin
x:= 8; y:=9;
prueba; Variables del programa (locales)
write (x);
write (y); x:= 8 Imprime 8
Clase 3
End. Imprime 9
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES
Program alcance;
Var Variables de programa (globales)
x,y: integer;
x:=
Procedure prueba; y:=
Var
Qué x:integer;
imprime? Begin
x:= 34 DIV 3; Variables del proceso prueba
write (x);
End; x:= 11 Imprime 11
Var
x:integer;
Begin
x:= 8;
prueba; Variables del programa (locales)
write (x);
write (y); x:= 8 Imprime 8
Clase 3
End. Imprime basura
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES
Program alcance;
Var Variables de programa (globales)
x: integer;
x:=
Procedure prueba;
Var
Qué x:integer;
imprime? Begin
x:= 34 DIV 3; Variables del proceso prueba
write (x);
End; x:= 11 Imprime 11
Var
x:integer;
Begin
x:= 8;
prueba; Variables del programa (locales)
write (x);
write (y); x:= 8 Imprime 8
Clase 3
End. Da error
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES

Clase 3
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES
Program uno; Program dos; Program tres;
Var Var Var
x,a,b: integer; x,a,b: integer; x : char;
Qué procedure prueba;
imprimen? var procedure prueba; procedure prueba;
x: integer; Begin Var
write (x); x:integer;
begin End; Begin
x:= 5; x:= 4;
write (x); Begin write (x);
end; x:=5; End;
Begin prueba; Begin
x:=10; write (x); x:=‘a’;
prueba; End. prueba;
write (x); write (x);
Clase 3 End. End.
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES
Program uno;
Var
x,a,b: integer;
procedure prueba; Se puede declarar un
type tipo nuevo dentro de
días = 1..7; un módulo?
var
x: integer; Si se puede donde puedo
declarar variables de ese
begin tipo nuevo?
x:= 5;
end;
Begin
x:=10;
prueba;
Clase 3 write (x);
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES
Program uno;
procedure prueba;
procedure auxiliar Se puede declarar un
var procedimiento dentro de
… otro?
begin
end;
var
x: integer; Si se puede, desde donde
begin se puede invocar a ese
x:= 5; nuevo procedimiento?
end;
Begin
prueba;
Clase 3
End.
CADP – MODULARIZACION ALCANCE DE LAS VARIABLES
Program uno;
Var
x:integer; Se puede? A que x se
procedure prueba;
procedure auxiliar; hace referencia ?
var

begin
x:= 4;
Se puede? A que x se
end; hace referencia?
var
x: integer;
begin
x:= 5;
end;

Begin
prueba;
Clase 3
End.
CADP – MODULARIZACION COMUNICACION

COMUNICACIÓN ENTRE MODULOS

Módulo Módulo
A B

Variables Globales Cuál


utilizamo
Parámetros s?
Clase 3

También podría gustarte