Vous êtes sur la page 1sur 41

Facultad de Ingeniería de Sistemas e Informática - UNMSM

PROGRAMACION MODULAR:
FUNCIONES Y
PROCEDIMIENTOS

Responsable : Ing. John Ledgard Trujillo Trejo

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

PROGRAMACION MODULAR

En la programación modular el programa se divide en


módulos (partes independientes), cada una de las cuales
ejecuta una única actividad o tarea y se codifican
independientemente de otros módulos. Cada uno de estos
módulos se analizan, codifican y ponen a punto por
separado.
MODULO PRINCIPAL
Modulo 1

SUBMODULOS

Modulo 2 Modulo 3 Modulo 4 Modulo 5

Modulo 2.1 Modulo 2.2 Modulo 4.1 Modulo 5.1 Modulo 5.2

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

PROGRAMACION MODULAR

Cada programa contiene un


módulo denominado
programa principal que
controla todo lo que sucede;
se transfiere el control a
submódulos, de modo que
ellos puedan ejecutar sus
funciones o procedimientos;
sin embargo, cada submódulo
devuelve el control al módulo
principal cuando se haya
completado su tarea.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

DESCOMPOSICION MODULAR

Descomposición Modular es descomponer un programa en un


número pequeño de abstracciones coherentes que
pertenecen al dominio del problema y enmascaran la
complejidad interna.
 Acoplamiento es la interacción entre módulos, sus propiedades
deberían ser:
1. Facilitar la sustitución de un módulo realizando pocos
cambios en los otros.
2. Facilitar el seguimiento y aislamiento de un error (módulo
defectuoso).

 Cohesión es la interacción interna de un módulo: todos los


elementos de un módulo han de tener relación.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - 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 ampliación del programa mediante nuevos módulos.
6. Facilitar las modificaciones y correcciones al quedar
automáticamente localizadas en un módulo.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

MODULO

Módulo: Fragmento de programa desarrollado de forma


independiente.
Es aquél que está constituido por una o varias instrucciones
físicamente contiguas y lógicamente encadenadas, las cuales se
pueden referenciar mediante un nombre y pueden ser llamadas
desde diferentes puntos de un programa.
Algoritmo Perimetro SubAlgoritmo LeerUnaCoordenada
Inicio inicio
LeerVertices... ...
CalcularPerimetro... fin LeerUnaCoordenada
ImprimirPerimetro...
Fin Perimetro. SubAlgoritmo CalcularPerimetro
inicio
...
SubAlgoritmo LeerVertices;
fin CalcularPerimetro
inicio
LeerUnaCoordenada SubAlgoritmo ImprimirPerimetro
LeerUnaCoordenada inicio
LeerUnaCoordenada ...
fin LeerVertices fin ImprimirPerimetro

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

SUBALGORITMOS

Un subalgoritmo no es más que un algoritmo que tiene la


función 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 demás subalgoritmos dentro de un módulo.

 En un subalgoritmo es menos complicado localizar un error y también


se puede modificar el código sin tener que tocar o rehacer varias
partes del mismo.

 Los subalgoritmos se escriben sólo una vez, luego es posible hacer


referencia a ellos ("llamarlos") desde diferentes puntos de un
pseudocódigo. La ventaja obvia es que nos permite reutilización y
evita la duplicación de códigos.
Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo
Facultad de Ingeniería de Sistemas e Informática - 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


aparición excesiva de estructuras de control (selección y
repetición) utilizando subprogramas. De esta forma, el cuerpo del
programa principal estará constituido fundamentalmente por
llamadas a subalgoritmos.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

SUBALGORITMOS

Se suelen emplear subalgoritmos en los siguientes casos:

 En programas complejos: si un programa complejo se escribe


sin subalgoritmos resulta difícil de entender. Dividiéndolo en
subalgoritmos podemos centrarnos en cada momento en un
problema más pequeño que el problema original.

 Cuando se repite dentro de un algoritmo algún tipo de


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

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

DEFINICIÓN Y LLAMADAS A SUBPROGRAMAS

La sintaxis que sigue nuestro lenguaje Algorítmico 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 válido.
A continuación, y entre paréntesis, se escribe la lista de argumentos
separados por puntos y comas. El nombre de cada argumento debe ser
también un identificador.
• Detrás 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.
Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo
Facultad de Ingeniería de Sistemas e Informática - UNMSM

DEFINICIÓN Y LLAMADAS A SUBPROGRAMAS

Después de la cabecera del subprograma viene su cuerpo.


La declaración 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 código
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

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

DEFINICIÓN 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 paréntesis y separados por comas)
con los que queremos que trabaje el subprograma.
Una llamada a un subprograma con N parámetros se escribe:

NombreSubAlgoritmo (parámetro1, parámetro2, ... , parámetroN)

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Algoritmo Primos Facultad de Ingeniería de Sistemas e Informática - UNMSM
var
entero: Max, i Se llaman parámetros
Inicio
escribir (“Ingrese el número máximo: “) reales a la lista de
leer (Max) parámetros que aparece en
escribir (“Los primos menores son:”) la llamada al subprograma.
para (i de 1 a Max) hacer
EscribirSiPrimo(i) Parámetro Real
fin_para
fin_Primos.

SubAlgoritmo EscribirSiPrimo (entero: Num) Parámetro Formal


var
entero: Divisor Se llaman parámetros
lógico: EsPrimo formales a la lista de
inicio parámetros que aparece en
EsPrimo  TRUE la declaración de un
Divisor  2
mientras ( EsPrimo y (Divisor <= Num DIV 2)) hacer
subprograma parametrizado.
si (Num MOD Divisor = 0) entonces
EsPrimo  falso
fin_si
Divisor  Divisor + 1
fin_mientras
si (EsPrimo) entonces
escribir (Num)
fin_si
Algorítmica
fin I 2013-I
EscribirSiPrimo Ing. John Ledgard Trujillo Trejo
Facultad de Ingeniería de Sistemas e Informática - UNMSM

CLASIFICACION DE LOS MODULOS: FUNCIONES

Las funciones son bloques de instrucciones que tienen por


objeto el alcanzar un resultado que sustituirá a la función
en el punto de invocación (las funciones devuelven un
resultado).
Desde el punto de vista
matemático, una función es una
operación que toma uno o varios
operandos, y devuelve un
resultado. Y desde el punto de
vista algorítmico, es un
subprograma que toma uno o
varios parámetros como entrada y
devuelve a la salida un único
resultado.
Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo
Facultad de Ingeniería de Sistemas e Informática - UNMSM

FUNCIONES

 Las funciones de los algoritmos se asemejan a la idea matemática


de función ƒ(x,y,...).

 Cada función se evoca utilizando su nombre en una expresión con los


argumentos actuales o reales encerrados entre paréntesis.

 Surgen como los procedimientos durante el diseño descendente al


definir cálculos abstractos dentro de las expresiones.

 En ocasiones no se utilizan para realizar cálculos, sino como


acciones que producen como resultado un valor.

 Las funciones reciben valores llamados argumentos utilizados en el


proceso de cálculo.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

FUNCIONES: DECLARACION

<tipo_del_resultado> función <nombre_función> (par1, par2,par3,...)


[declaraciones locales]

inicio
acción1
acción2
:
nombre_función  Resultado_Obtenido
devolver (nombre_función)
fin_función

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

FUNCIONES: DECLARACION

Donde:

par1,par2 .... Lista de parámetros formales o argumentos.

nombre_función Nombre asociado de la función, que será un


nombre de identificador válido.

acción1, acción2,.. Instrucciones que constituyen la definición


de la función, y que debe contener una
acción sola de asignación que asigne un valor
al nombre de la función.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

FUNCIONES: DECLARACION

 La lista de parámetros es la información que se le tiene que


pasar a la función. Los parámetros luego dentro de la función
los podemos utilizar igual que si fueran variables locales
definidas en la función y para cada parámetro hay que poner su
nombre y tipo.

 El nombre de la función lo da al usuario y tiene que ser


significativo.

 En las variables locales se declaran las variables que se pueden


usar dentro de la función.

 No se permiten funciones que no devuelvan nada.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

INVOCACION A LAS FUNCIONES

 Para hacer una referencia (llamada) a una función se invoca


mediante un nombre y en caso de existir, una lista de
parámetros reales necesarios (argumentos). Los argumentos
deben coincidir en cantidad, tipo y orden con los de la función
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 idéntica a las funciones estándares.

 La llamada a una función, siempre va a formar parte de una


expresión.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

INVOCACION A LAS FUNCIONES

Una función puede ser llamada sólo mediante referencia, de la


forma siguiente:

nombre_función (lista de parámetros reales)

Donde:

nombre_función Función que llama.

Lista de param. actuales Constantes, variables, expresiones,


valores de funciones, nombres de
funciones o procedimientos.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

INVOCACION A LAS FUNCIONES

Una llamada a la función implica los siguientes pasos:

 A cada parámetro formal se le asigna el valor real de su


correspondiente parámetro real (esta correspondencia se verá
más tarde y se denomina llamada por valor).

 Se ejecuta el cuerpo de acciones de la función.

 Se devuelve el valor de la función y se retorna al punto de


llamada.

* La función solo puede ser llamada desde una expresión.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

FUNCIONES EN C/C++

Declaración: Toda función debe ser declarada antes de ser utilizada en


el programa que realiza la llamada. Esta se hace mediante el
prototipo de la función:
 En vez de la lista de argumentos formales o parámetros, basta incluir sólo los
tipos de dichos argumentos.
 El prototipo termina con un carácter (;).
 Los valores pueden ser inicializados si se desea.
 La declaración de las funciones mediante los prototipos suele hacerse al
comienzo del fichero, después de los #include.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

FUNCIONES EN C/C++

Llamada: La llamada a una función se hace incluyendo su nombre en una


expresión o sentencia del programa principal o de otra función. Este
nombre debe ir seguido de una lista de argumentos separados por
comas y encerrados entre paréntesis. A los argumentos incluidos en la
llamada se les llama argumentos actuales, y pueden ser no sólo
variables y/ o constantes, sino también expresiones.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - 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 más conveniente darle a las funciones el mismo nombre, pero
con argumentos de distinto tipo, que serán los que permitan al
compilador llamar a una u otra función.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

FUNCIONES EN C/C++

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

PROCEDIMIENTOS

Un procedimiento es un subprograma o un subalgoritmo que


ejecuta una determinada tarea, pero que tras ejecutar esa
tarea no tienen ningún valor asociado a su nombre como en
las funciones, sino que si devuelve información, lo hace a
través de parámetros.

 Los procedimientos surgen como consecuencia del diseño


descendente, en el proceso de refinamiento.

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


ejecutarse y cuando termina devuelve el control a la siguiente
instrucción a la de llamada.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

DIFERENCIAS ENTRE PROCEDIMIENTOS Y FUNCIONES

1. Una función devuelve un único valor y un procedimiento puede


no devuelve ningún valor.

2. Ninguno de los resultados producidos por el procedimiento se


asocian a su nombre como ocurría con la función.

3. Mientras que la llamada a una función forma siempre parte de


una expresión, la llamada a un procedimiento es una
instrucción que realiza un proceso determinado.

4. Esta llamada consiste en el nombre del procedimiento y entre


paréntesis van los parámetros que se le pasan.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

DECLARACION DE PROCEDIMIENTOS

Procedimiento <nombre_procedimiento> (par1, par2, par3, ...)


[declaraciones locales]

Inicio

acción1
acción2
:
acción

Fin_procedimiento

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

DECLARACION DE PROCEDIMIENTOS

 La cabecera va a estar formada por el nombre del


procedimiento que será un identificador, y luego entre
paréntesis los parámetros o la información que se le pasa al
procedimiento. Para cada parámetro hay que indicar el tipo de
paso de parámetro. Hay dos tipos fundamentales de paso de
parámetros, por valor y por referencia, si no ponemos tipo de
paso de parámetros, se toma el tipo de paso de parámetros 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 través de sus parámetros, tendrán que
existir sentencias de asignación de valores a estos parámetros,
a través de los cuales se van a devolver los resultados.
Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo
Facultad de Ingeniería de Sistemas e Informática - UNMSM

ANIDACION DE PROCEDIMIENTOS

La anidación de procedimientos
no se permite en todos los
lenguajes y consiste en que
dentro de un procedimiento
podamos definir o meter el
código de otros.

 ANIDACION DE PROCEDIMIENTOS
Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo
Facultad de Ingeniería de Sistemas e Informática - 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.

Según 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 ningún significado, no se
conoce y no se puede acceder a ella desde fuera del subprograma y
que tiene una posición 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.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

AMBITOS DE IDENTIFICADORES

Las variables locales a un subprograma se definen en la parte de


la definición de variables del mismo. Los parámetros formales
que se le ponen a un subprograma se comportan dentro de él
como si fueran también variables locales a él.

2. Globales: Son las que están 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).

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

COMUNICACIÓN ENTRE MODULOS

Los parámetros son canales de comunicación para pasar datos


entre programas y subprogramas en ambos sentidos.

 Los parámetros van asociados a variables, constantes, expresiones,


etc., y, por tanto, se indican mediante los correspondientes
identificadores o expresiones.

 Los parámetros que se utilizan en la llamada o invocación al


subprograma se denominan parámetros actuales, reales o
argumentos y son los que entregan la información al subprograma.

 Algunos procedimientos carecen de parámetros cuando realizan


tareas que no requieren recibir información del programa principal.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

PARAMETROS: CLASIFICACION

Los parámetros 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 función 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 función, mientras que con
procedimientos pueden calcularse cero, una o varias salidas.

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


argumentos a un programa y para devolver resultados.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

PASO DE PARAMETROS

Los parámetros se tratan como variables locales y los valores


iniciales se proporcionan copiando los valores de los
correspondientes argumentos.

Los métodos más empleados para realizar el paso de parámetros son:

 Paso por valor (parámetro valor).

 Paso por referencia o dirección (parámetro variable).

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

PASO DE PARAMETROS POR VALOR

 Los parámetros formales (locales a la función o


procedimientos), reciben como valores iniciales los valores de
los parámetros actuales y con ello se ejecutan las acciones
descritas en el subprograma.

 La llamada por valor no devuelve información al programa que


llama. Sirven para transmitir información a los procedimientos.
Esto permite diseñar procedimientos que resuelven problemas
más generales, lo que constituye un objetivo deseable en el
diseño de algoritmos.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

PASO DE PARAMETROS POR VALOR

Los procedimientos se utilizan mediante llamadas (o invocaciones)


dentro de los algoritmos donde están definidos. En caso de
parámetros por valor tenemos:

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


Semántica:
–Se evalúan las N expresiones.
–Se asigna al parámetro i-ésimo el valor de <exp i>
–Se ejecuta el procedimiento

Los identificadores de los parámetros en la declaración del


procedimiento reciben el nombre de parámetros formales, los
valores obtenidos al evaluar las expresiones en la llamada reciben el
nombre de parámetros reales.
Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo
Facultad de Ingeniería de Sistemas e Informática - UNMSM

PASO DE PARAMETROS POR VALOR

A 5
B 7
llamar_a PROC1 (A, 18, B * 3 + 4)

5 18 25

procedimiento PROC1 (E entero: X, Y, Z)

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

PASO DE PARAMETROS POR REFERENCIA

 Se utiliza cuando se requiere que ciertos parámetros sirvan como


parámetros de salida, es decir, devuelvan los resultados a la unidad
o programas que llama.

 La unidad que llama pasa a la unidad llamada la dirección del


parámetro actual (que está en el ámbito de la unidad llamante).

 Una variable pasada como parámetro real es compartida, es decir,


se puede modificar directamente por el subprograma.

Una referencia al correspondiente parámetro formal se tratará como


una referencia a la posición de memoria, cuya dirección se ha
pasado. Si el parámetro actual es una expresión, el subprograma
recibe la dirección de la posición temporal que contiene el valor de
la expresión.
Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo
Facultad de Ingeniería de Sistemas e Informática - 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: Aísla el efecto del subprograma a su propio ámbito.


Esto hace más fácil 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 sólo cambian si cambian
en el principal.

Desventajas: Utiliza más memoria. El parámetro real y el formal


ocupan cada uno su propio trozo de memoria en el ordenador.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo


Facultad de Ingeniería de Sistemas e Informática - UNMSM

PASO DE PARAMETROS VENTAJAS Y DESVENTAJAS

Paso por referencia:


Ventajas: Utiliza menos memoria. El parámetro formal y real son los
mismos y ocupan el mismo espacio de memoria.

Desventajas: Sólo permite variables como parámetros reales y el


seguimiento del programa resulta más complejo.

Algorítmica I 2013-I Ing. John Ledgard Trujillo Trejo

Vous aimerez peut-être aussi