Está en la página 1de 41

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

PROGRAMACION MODULAR:
FUNCIONES Y
PROCEDIMIENTOS

Responsable : Ing. John Ledgard Trujillo Trejo


Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

DESCOMPOSICION MODULAR: OBJETIVOS


1. Disminuir la complejidad.
2. Aumentar la claridad y fiabilidad.

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

automticamente localizadas en un mdulo.

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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.

En un subalgoritmo es menos complicado localizar un error y tambin


se puede modificar el cdigo sin tener que tocar o rehacer varias
partes del mismo.
Los subalgoritmos se escriben slo una vez, luego es posible hacer
referencia a ellos ("llamarlos") desde diferentes puntos de un
pseudocdigo. La ventaja obvia es que nos permite reutilizacin y
evita la duplicacin de cdigos.
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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.

Cuando se repite dentro de un algoritmo algn tipo de


tratamiento: en este caso podemos escribir un subalgoritmo
que describe cmo se hace el tratamiento una sola vez y
realizar una llamada a este subalgoritmo cada vez que queramos
usar el tratamiento.

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

DEFINICIN Y LLAMADAS A SUBPROGRAMAS


La sintaxis que sigue nuestro lenguaje Algortmico para esto es:

SubAlgoritmo Nombre (tipo1: argumento1; tipo2: argumento2; ... )


En la cabecera del subprograma aparece la palabra reservada
SubAlgoritmo seguida del nombre del subprograma. Este nombre debe
ser un identificador vlido.
A continuacin, y entre parntesis, se escribe la lista de argumentos
separados por puntos y comas. El nombre de cada argumento debe ser
tambin un identificador.
Detrs de cada argumento se especificar su tipo precedido de un
signo dos puntos.
Si hay varios argumentos seguidos con el mismo tipo, podemos
abreviar y escribirlos separados por comas, indicando una sola vez
el tipo de todos ellos.
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

DEFINICIN Y LLAMADAS A SUBPROGRAMAS


Despus de la cabecera del subprograma viene su cuerpo.
La declaracin finaliza con la palabra fin seguida del nombre del
subprograma.
En el cuerpo, aparecen las declaraciones de los elementos necesarios
para el subprograma y tras la palabra reservada inicio el cdigo
necesario para resolver el subproblema.
SubAlgoritmo EscribeSumatoria ( entero: N )
var
entero: suma, i
inicio
suma 0;
para ( i de 1 a N) hacer
suma suma + i

fin_para
escribir (suma)

fin EscribeSumatoria
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

DEFINICIN Y LLAMADAS A SUBPROGRAMAS

Una vez que tenemos un subprograma declarado, podemos


utilizarlo dentro del cuerpo de otro subprograma o del programa
principal.
Para utilizar el subprograma hay que llamarlo.
La llamada a un subprograma se realiza utilizando su nombre
seguido de los valores (entre parntesis y separados por comas)
con los que queremos que trabaje el subprograma.
Una llamada a un subprograma con N parmetros se escribe:
NombreSubAlgoritmo (parmetro1, parmetro2, ... , parmetroN)
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Algoritmo Primos Facultad de Ingeniera


var
entero: Max, i
Inicio
escribir (Ingrese el nmero mximo: )
leer (Max)
escribir (Los primos menores son:)
para (i de 1 a Max) hacer
EscribirSiPrimo(i)
fin_para
fin_Primos.

de Sistemas e Informtica - UNMSM

SubAlgoritmo EscribirSiPrimo (entero: Num)


var
entero: Divisor
lgico: EsPrimo
inicio
EsPrimo TRUE
Divisor 2
mientras ( EsPrimo y (Divisor <= Num DIV 2)) hacer
si (Num MOD Divisor = 0) entonces
EsPrimo falso
fin_si
Divisor Divisor + 1
fin_mientras
si (EsPrimo) entonces
escribir (Num)
fin_si
Algortmica
I 2012-0
fin
EscribirSiPrimo

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.

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

CLASIFICACION DE LOS MODULOS: FUNCIONES

Las funciones son bloques de instrucciones que tienen por


objeto el alcanzar un resultado que sustituir a la funcin
en el punto de invocacin (las funciones devuelven un
resultado).
Desde el punto de vista
matemtico, una funcin es una
operacin que toma uno o varios
operandos,
y
devuelve
un
resultado. Y desde el punto de
vista
algortmico,
es
un
subprograma que toma uno o
varios parmetros como entrada y
devuelve a la salida un nico
resultado.
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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.

Las funciones reciben valores llamados argumentos utilizados en el


proceso de clculo.
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

FUNCIONES: DECLARACION

<tipo_del_resultado> funcin <nombre_funcin> (par1, par2,par3,...)


[declaraciones locales]

inicio

accin1
accin2
:
nombre_funcin Resultado_Obtenido
devolver (nombre_funcin)

fin_funcin

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

FUNCIONES: DECLARACION
Donde:
par1,par2 ....

Lista de parmetros formales o argumentos.

nombre_funcin

Nombre asociado de la funcin, que ser un


nombre de identificador vlido.

accin1, accin2,.. Instrucciones que constituyen la definicin


de la funcin, y que debe contener una
accin sola de asignacin que asigne un valor
al nombre de la funcin.

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

INVOCACION A LAS FUNCIONES


Para hacer una referencia (llamada) a una funcin se invoca
mediante un nombre y en caso de existir, una lista de
parmetros reales necesarios (argumentos). Los argumentos
deben coincidir en cantidad, tipo y orden con los de la funcin
que fue definida.
Las funciones a que se hace referencia, se conocen como
funciones de usuario puesto que son definidas por l mismo y
permiten su uso en forma idntica a las funciones estndares.
La llamada a una funcin, siempre va a formar parte de una
expresin.
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

INVOCACION A LAS FUNCIONES


Una funcin puede ser llamada slo mediante referencia, de la
forma siguiente:

nombre_funcin (lista de parmetros reales)


Donde:

nombre_funcin

Funcin que llama.

Lista de param. actuales

Constantes, variables, expresiones,


valores de funciones, nombres de
funciones o procedimientos.

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

INVOCACION A LAS FUNCIONES


Una llamada a la funcin implica los siguientes pasos:
A cada parmetro formal se le asigna el valor real de su
correspondiente parmetro real (esta correspondencia se ver
ms tarde y se denomina llamada por valor).
Se ejecuta el cuerpo de acciones de la funcin.
Se devuelve el valor de la funcin y se retorna al punto de
llamada.

* La funcin solo puede ser llamada desde una expresin.


Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

FUNCIONES EN C/C++

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

PROCEDIMIENTOS

Un procedimiento es un subprograma o un subalgoritmo que


ejecuta una determinada tarea, pero que tras ejecutar esa
tarea no tienen ningn valor asociado a su nombre como en
las funciones, sino que si devuelve informacin, lo hace a
travs de parmetros.
Los procedimientos surgen como consecuencia
descendente, en el proceso de refinamiento.

del

diseo

Al llamar a un procedimiento, se le cede el control, comienza a


ejecutarse y cuando termina devuelve el control a la siguiente
instruccin a la de llamada.

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM


DIFERENCIAS ENTRE PROCEDIMIENTOS Y FUNCIONES

1. Una funcin devuelve un nico valor y un procedimiento puede


no devuelve ningn valor.

2. Ninguno de los resultados producidos por el procedimiento se


asocian a su nombre como ocurra con la funcin.
3. Mientras que la llamada a una funcin forma siempre parte de
una expresin, la llamada a un procedimiento es una
instruccin que realiza un proceso determinado.
4. Esta llamada consiste en el nombre del procedimiento y entre
parntesis van los parmetros que se le pasan.
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

DECLARACION DE PROCEDIMIENTOS
Procedimiento <nombre_procedimiento> (par1, par2, par3, ...)
[declaraciones locales]

Inicio
accin1
accin2
:
accin

Fin_procedimiento

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

COMUNICACIN ENTRE MODULOS


Los parmetros son canales de comunicacin para pasar datos
entre programas y subprogramas en ambos sentidos.
Los parmetros van asociados a variables, constantes, expresiones,
etc., y, por tanto, se indican mediante los correspondientes
identificadores o expresiones.
Los parmetros que se utilizan en la llamada o invocacin al
subprograma se denominan parmetros actuales, reales o
argumentos y son los que entregan la informacin al subprograma.
Algunos procedimientos carecen de parmetros cuando realizan
tareas que no requieren recibir informacin del programa principal.
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

PARAMETROS: CLASIFICACION
Los parmetros se clasifican de la siguiente manera:

1. Entradas {E}: Las entradas proporcionan valores desde el programa


que llama y que se utilizan dentro de un procedimiento. En los
subprogramas funcin las entradas son los argumentos en el sentido
tradicional.

2. Salidas {S}: Las salidas producen los resultados del subprograma;

de nuevo si se utiliza el caso una funcin, mientras que con


procedimientos pueden calcularse cero, una o varias salidas.

3. Entradas/Salidas {E/S}: Un solo parmetro se utiliza para mandar


argumentos a un programa y para devolver resultados.

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

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

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

PASO DE PARAMETROS POR VALOR

Los parmetros formales (locales a la funcin o


procedimientos), reciben como valores iniciales los valores de
los parmetros actuales y con ello se ejecutan las acciones
descritas en el subprograma.
La llamada por valor no devuelve informacin al programa que
llama. Sirven para transmitir informacin a los procedimientos.
Esto permite disear procedimientos que resuelven problemas
ms generales, lo que constituye un objetivo deseable en el
diseo de algoritmos.

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

PASO DE PARAMETROS POR VALOR


Los procedimientos se utilizan mediante llamadas (o invocaciones)
dentro de los algoritmos donde estn definidos. En caso de
parmetros por valor tenemos:

Sintaxis: <nombre>(<exp1>, ..., <expN>)


Semntica:

Se evalan las N expresiones.


Se asigna al parmetro i-simo el valor de <exp i>
Se ejecuta el procedimiento

Los identificadores de los parmetros en la declaracin del


procedimiento reciben el nombre de parmetros formales, los
valores obtenidos al evaluar las expresiones en la llamada reciben el
nombre de parmetros reales.
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

PASO DE PARAMETROS POR VALOR

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)

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

PASO DE PARAMETROS POR REFERENCIA


Se utiliza cuando se requiere que ciertos parmetros sirvan como
parmetros de salida, es decir, devuelvan los resultados a la unidad
o programas que llama.
La unidad que llama pasa a la unidad llamada la direccin del
parmetro actual (que est en el mbito de la unidad llamante).

Una variable pasada como parmetro real es compartida, es decir,


se puede modificar directamente por el subprograma.

Una referencia al correspondiente parmetro formal se tratar como


una referencia a la posicin de memoria, cuya direccin se ha
pasado. Si el parmetro actual es una expresin, el subprograma
recibe la direccin de la posicin temporal que contiene el valor de
la expresin.
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

PASO DE PARAMETROS VENTAJAS Y DESVENTAJAS


Tanto el paso por valor como el paso por referencia tienen sus
ventajas e inconvenientes:

Paso por valor:


Ventajas: Asla el efecto del subprograma a su propio mbito.
Esto hace ms fcil de seguir los programas. Si se usa paso por
valor y se sigue el programa principal sin entrar en los
subprogramas, se sabe que las variables slo cambian si cambian
en el principal.
Desventajas: Utiliza ms memoria. El parmetro real y el formal
ocupan cada uno su propio trozo de memoria en el ordenador.
Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

Facultad de Ingeniera de Sistemas e Informtica - UNMSM

PASO DE PARAMETROS VENTAJAS Y DESVENTAJAS


Paso por referencia:

Ventajas: Utiliza menos memoria. El parmetro formal y real son los


mismos y ocupan el mismo espacio de memoria.
Desventajas: Slo permite variables como parmetros reales y el
seguimiento del programa resulta ms complejo.

Algortmica I 2012-0

Ing. John Ledgard Trujillo Trejo

También podría gustarte