4ta. sesión algoritmica i

41
Facultad de Ingeniería de Sistemas e Informática - UNMSM Algorítmica I 2012-0 Ing. John Ledgard Trujillo Trejo PROGRAMACION MODULAR: FUNCIONES Y PROCEDIMIENTOS Responsable : Ing. John Ledgard Trujillo Trejo

Upload: anonymous-zp6dhd

Post on 28-Sep-2015

254 views

Category:

Documents


6 download

DESCRIPTION

programacion teoria arreglos

TRANSCRIPT

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    PROGRAMACION MODULAR: FUNCIONES Y

    PROCEDIMIENTOS

    Responsable : Ing. John Ledgard Trujillo Trejo

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    PROGRAMACION MODULAR

    En la programacin modular el programa se divide en mdulos (partes independientes), cada una de las cuales ejecuta una nica actividad o tarea y se codifican independientemente de otros mdulos. Cada uno de estos mdulos se analizan, codifican y ponen a punto por separado.

    Modulo 1

    Modulo 3 Modulo 4 Modulo 5 Modulo 2

    Modulo 2.1 Modulo 2.2 Modulo 4.1 Modulo 5.1 Modulo 5.2

    MODULO PRINCIPAL

    SUBMODULOS

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

    PROGRAMACION MODULAR

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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).

    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.

    Cohesin es la interaccin interna de un mdulo: todos los elementos de un mdulo han de tener relacin.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

    DESCOMPOSICION MODULAR: OBJETIVOS

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

    MODULO

    Algoritmo Perimetro Inicio LeerVertices... CalcularPerimetro... ImprimirPerimetro... Fin Perimetro. SubAlgoritmo LeerVertices; inicio LeerUnaCoordenada LeerUnaCoordenada LeerUnaCoordenada fin LeerVertices

    SubAlgoritmo LeerUnaCoordenada inicio ... fin LeerUnaCoordenada SubAlgoritmo CalcularPerimetro inicio ... fin CalcularPerimetro SubAlgoritmo ImprimirPerimetro inicio ... fin ImprimirPerimetro

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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)

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    Algoritmo Primos 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. SubAlgoritmo EscribirSiPrimo (entero: Num) var entero: Divisor lgico: EsPrimo inicio EsPrimo TRUE Divisor 2 mientras ( EsPrimo y (Divisor

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    FUNCIONES: DECLARACION

    funcin (par1, par2,par3,...) [declaraciones locales] inicio accin1 accin2 : nombre_funcin Resultado_Obtenido devolver (nombre_funcin) fin_funcin

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

    FUNCIONES: DECLARACION

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

    FUNCIONES: DECLARACION

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    * La funcin solo puede ser llamada desde una expresin.

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    FUNCIONES EN C/C++

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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 del diseo 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 instruccin a la de llamada.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    DECLARACION DE PROCEDIMIENTOS

    Procedimiento (par1, par2, par3, ...) [declaraciones locales] Inicio accin1 accin2 : accin Fin_procedimiento

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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 , 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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    ANIDACION DE PROCEDIMIENTOS

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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).

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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).

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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: (, ..., )

    Semntica: Se evalan las N expresiones. Se asigna al parmetro i-simo el valor de 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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    A 5

    B 7

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

    5 18 25

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

    PASO DE PARAMETROS POR VALOR

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.

  • Facultad de Ingeniera de Sistemas e Informtica - UNMSM

    Algortmica I 2012-0 Ing. John Ledgard Trujillo Trejo

    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.