Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACION MODULAR:
FUNCIONES Y
PROCEDIMIENTOS
PROGRAMACION MODULAR
En la programacin modular el programa
mdulos (partes independientes), cada una
ejecuta una nica actividad o tarea y
independientemente de otros mdulos. Cada
mdulos se analizan, codifican y ponen
separado.
se divide en
de las cuales
se codifican
uno de estos
a punto por
MODULO PRINCIPAL
Modulo 1
SUBMODULOS
Modulo 2
Modulo 2.1
Algortmica I 2012-0
Modulo 3
Modulo 2.2
Modulo 4
Modulo 4.1
Modulo 5
Modulo 5.1
Modulo 5.2
PROGRAMACION MODULAR
Cada programa contiene un
mdulo
denominado
programa
principal
que
controla todo lo que sucede;
se transfiere el control a
submdulos, de modo que
ellos puedan ejecutar sus
funciones o procedimientos;
sin embargo, cada submdulo
devuelve el control al mdulo
principal cuando se haya
completado su tarea.
Algortmica I 2012-0
DESCOMPOSICION MODULAR
Descomposicin Modular es descomponer un programa en un
nmero pequeo de abstracciones coherentes que
pertenecen al dominio del problema y enmascaran la
complejidad interna.
Acoplamiento es la interaccin entre mdulos, sus propiedades
deberan ser:
1. Facilitar la sustitucin de un mdulo realizando pocos
cambios en los otros.
2. Facilitar el seguimiento y aislamiento de un error (mdulo
defectuoso).
Cohesin es la interaccin interna de un mdulo: todos los
elementos de un mdulo han de tener relacin.
Algortmica I 2012-0
3. Disminuir el coste.
4. Aumentar el control del proyecto.
5. Facilitar la ampliacin del programa mediante nuevos mdulos.
6. Facilitar las modificaciones y correcciones al quedar
Algortmica I 2012-0
MODULO
Mdulo: Fragmento de programa desarrollado de forma
independiente.
Es aqul que est constituido por una o varias instrucciones
fsicamente contiguas y lgicamente encadenadas, las cuales se
pueden referenciar mediante un nombre y pueden ser llamadas
desde diferentes puntos de un programa.
Algoritmo Perimetro
Inicio
LeerVertices...
CalcularPerimetro...
ImprimirPerimetro...
Fin Perimetro.
SubAlgoritmo LeerUnaCoordenada
inicio
...
fin LeerUnaCoordenada
SubAlgoritmo LeerVertices;
inicio
LeerUnaCoordenada
LeerUnaCoordenada
LeerUnaCoordenada
fin LeerVertices
Algortmica I 2012-0
SubAlgoritmo CalcularPerimetro
inicio
...
fin CalcularPerimetro
SubAlgoritmo ImprimirPerimetro
inicio
...
fin ImprimirPerimetro
SUBALGORITMOS
Un subalgoritmo no es ms que un algoritmo que tiene la
funcin de resolver un subproblema.
Los subalgoritmos son independientes entre si, en el sentido de que
se puede escribir y verificar cada uno de ellos en forma separada
sin preocuparse por los dems subalgoritmos dentro de un mdulo.
SUBALGORITMOS
Los subalgoritmos pueden recibir valores del algoritmo principal,
trabajar con ellos y devolver un resultado al algoritmo principal.
No existen limitaciones en cuanto a las acciones que pueda
ejecutar un subalgoritmo. Un subprograma puede, a su vez,
invocar o llamar a otros o a sus propios subprogramas, inclusive
puede llamarse a s mismo (esto se conoce como recursividad).
Es deseable que en el cuerpo del algoritmo principal se evite la
aparicin excesiva de estructuras de control (seleccin y
repeticin) utilizando subprogramas. De esta forma, el cuerpo del
programa principal estar constituido fundamentalmente por
llamadas a subalgoritmos.
Algortmica I 2012-0
SUBALGORITMOS
Se suelen emplear subalgoritmos en los siguientes casos:
En programas complejos: si un programa complejo se escribe
sin subalgoritmos resulta difcil de entender. Dividindolo en
subalgoritmos podemos centrarnos en cada momento en un
problema ms pequeo que el problema original.
Algortmica I 2012-0
fin_para
escribir (suma)
fin EscribeSumatoria
Algortmica I 2012-0
llaman
parmetros
reales a la lista de
parmetros que aparece en
la llamada al subprograma.
Se
Parmetro Real
Parmetro Formal
Se
llaman
parmetros
formales a la lista de
parmetros que aparece en
la
declaracin
de
un
subprograma parametrizado.
FUNCIONES
Las funciones de los algoritmos se asemejan a la idea matemtica
de funcin (x,y,...).
Cada funcin se evoca utilizando su nombre en una expresin con los
argumentos actuales o reales encerrados entre parntesis.
Surgen como los procedimientos durante el diseo descendente al
definir clculos abstractos dentro de las expresiones.
En ocasiones no se utilizan para realizar clculos, sino como
acciones que producen como resultado un valor.
FUNCIONES: DECLARACION
inicio
accin1
accin2
:
nombre_funcin Resultado_Obtenido
devolver (nombre_funcin)
fin_funcin
Algortmica I 2012-0
FUNCIONES: DECLARACION
Donde:
par1,par2 ....
nombre_funcin
Algortmica I 2012-0
FUNCIONES: DECLARACION
La lista de parmetros es la informacin que se le tiene que
pasar a la funcin. Los parmetros luego dentro de la funcin
los podemos utilizar igual que si fueran variables locales
definidas en la funcin y para cada parmetro hay que poner su
nombre y tipo.
El nombre de la funcin lo da al usuario y tiene que ser
significativo.
En las variables locales se declaran las variables que se pueden
usar dentro de la funcin.
No se permiten funciones que no devuelvan nada.
Algortmica I 2012-0
nombre_funcin
Algortmica I 2012-0
FUNCIONES EN C/C++
Declaracin: Toda funcin debe ser declarada antes de ser utilizada en
el programa que realiza la llamada. Esta se hace mediante el
prototipo de la funcin:
En vez de la lista de argumentos formales o parmetros, basta incluir slo los
tipos de dichos argumentos.
El prototipo termina con un carcter (;).
Los valores pueden ser inicializados si se desea.
La declaracin de las funciones mediante los prototipos suele hacerse al
comienzo del fichero, despus de los #include.
Algortmica I 2012-0
FUNCIONES EN C/C++
Llamada: La llamada a una funcin se hace incluyendo su nombre en una
expresin o sentencia del programa principal o de otra funcin. Este
nombre debe ir seguido de una lista de argumentos separados por
comas y encerrados entre parntesis. A los argumentos incluidos en la
llamada se les llama argumentos actuales, y pueden ser no slo
variables y/ o constantes, sino tambin expresiones.
Algortmica I 2012-0
FUNCIONES EN C/C++
Sobrecarga de Funciones: Casi siempre es recomendable dar nombres
distintos a funciones diferentes, pero que pasa cuando las tareas a
realizar son las mismas pero con diferentes tipos de datos? En este
caso es ms conveniente darle a las funciones el mismo nombre, pero
con argumentos de distinto tipo, que sern los que permitan al
compilador llamar a una u otra funcin.
Algortmica I 2012-0
FUNCIONES EN C/C++
Algortmica I 2012-0
PROCEDIMIENTOS
del
diseo
Algortmica I 2012-0
DECLARACION DE PROCEDIMIENTOS
Procedimiento <nombre_procedimiento> (par1, par2, par3, ...)
[declaraciones locales]
Inicio
accin1
accin2
:
accin
Fin_procedimiento
Algortmica I 2012-0
DECLARACION DE PROCEDIMIENTOS
La cabecera va a estar formada por el nombre del
procedimiento que ser un identificador, y luego entre
parntesis los parmetros o la informacin que se le pasa al
procedimiento. Para cada parmetro hay que indicar el tipo de
paso de parmetro. Hay dos tipos fundamentales de paso de
parmetros, por valor y por referencia, si no ponemos tipo de
paso de parmetros, se toma el tipo de paso de parmetros por
valor.
En el cuerpo del procedimiento donde van las sentencias ya no
habr ninguna de tipo <devolver valor>, si el procedimiento
devuelve resultados a travs de sus parmetros, tendrn que
existir sentencias de asignacin de valores a estos parmetros,
a travs de los cuales se van a devolver los resultados.
Algortmica I 2012-0
ANIDACION DE PROCEDIMIENTOS
La anidacin de procedimientos
no se permite en todos los
lenguajes y consiste en que
dentro de un procedimiento
podamos definir o meter el
cdigo de otros.
ANIDACION DE PROCEDIMIENTOS
Algortmica I 2012-0
AMBITOS DE IDENTIFICADORES
El mbito de un identificador (variables, constantes, funciones,...)
es la parte del programa en la que se conoce y por tanto se puede
usar un identificador.
Segn el mbito hay 2 tipos de variables, locales y globales:
1. Variable local: Aquella que est declarada y definida dentro de un
subprograma luego su mbito coincidir con el mbito del
subprograma en la que este definida.
Esto quiere decir que la variable no tiene ningn significado, no se
conoce y no se puede acceder a ella desde fuera del subprograma y
que tiene una posicin de memoria distinta a la de cualquier otra,
incluso si es de una variable que tiene el mismo nombre pero que
est definida fuera del subprograma.
Algortmica I 2012-0
AMBITOS DE IDENTIFICADORES
Las variables locales a un subprograma se definen en la parte de
la definicin de variables del mismo. Los parmetros formales
que se le ponen a un subprograma se comportan dentro de l
como si fueran tambin variables locales a l.
2. Globales: Son las que estn definidas a nivel del programa, es
decir, su mbito es el programa o algoritmo principal y todos los
subprogramas que van junto con l.
A esta variable podemos acceder desde cualquiera de los
subprogramas y el programa principal, salvo que alguno de esos
subprogramas tenga definida una variable local con el mismo nombre
que la variable global, en este caso si se utiliza el nombre de esa
variable nos referiremos a la local, nunca a la global (ya que tienen 2
zonas de memoria distintas).
Algortmica I 2012-0
PARAMETROS: CLASIFICACION
Los parmetros se clasifican de la siguiente manera:
Algortmica I 2012-0
PASO DE PARAMETROS
Los parmetros se tratan como variables locales y los valores
iniciales se proporcionan copiando los valores de los
correspondientes argumentos.
Los mtodos ms empleados para realizar el paso de parmetros son:
Paso por valor (parmetro valor).
Paso por referencia o direccin (parmetro variable).
Algortmica I 2012-0
Algortmica I 2012-0
A 5
B 7
llamar_a
procedimiento
Algortmica I 2012-0
PROC1
PROC1
(A,
18,
B * 3 + 4)
18
25
(E entero: X,
Y,
Z)
Algortmica I 2012-0