22
Tema 7 Programación modular Programación básica Profesora: Magdalena Aguilar-Álvarez

Tema 7

  • Upload
    uh

  • View
    829

  • Download
    1

Embed Size (px)

DESCRIPTION

Funciones y procedimientos

Citation preview

Page 1: Tema 7

Tema 7Programación modular

Programación básica

Profesora:Magdalena Aguilar-Álvarez

Page 2: Tema 7

Procedimientos y funciones

Universidad HispanoamericanaProgramación básica

Pascal ofrece dos herramientas básicas para programación descendente: Procedure y Function.

Las funciones, por lo general, devuelven un solo valor a la unidad de programa o subprograma que los referencia.

Los procedimientos pueden devolver cero, uno o varios valores. En caso de no devolver algún valor, realiza alguna tarea tal como alguna operación de entrada o salida.

A un nombre de procedimiento no se puede asignar un valor.

Una función se referencia usando su nombre en una expresión, mientras que un procedimiento se referencia por una llamada o invocación al mismo.

Page 3: Tema 7

Parámetros

Universidad HispanoamericanaProgramación básica

Los parámetros que se usan en la correspondiente invocación al subprograma se llaman actuales, reales o argumentos, son los que entregan la información al subprograma.

Los parámetros que reciben la información en el subprograma, se llaman formales o ficticios y se declaran en la cabecera del programa.

Algunos procedimientos carecen de parámetros.

En una llamada al subprograma tiene que verificarse que:

El número de parámetros formales debe ser igual al de actuales.

Los parámetros que ocupen el mismo orden en cada una de las listas deben ser compatibles en tipo.

Page 4: Tema 7

Parámetros por valor y por variable

Universidad HispanoamericanaProgramación básica

Paso por valor: el subprograma hace una copia del valor en memoria, igual en valor pero distinta en ubicación que el original. Es un canal de comunicación solamente de ingreso al subprograma, es decir, si durante la ejecución el parámetro original se modifica, el parámetro del subprograma no se verá alterado.

Paso por variable: es una referencia al parámetro formal, queda asociado a la misma posición de memoria que su correspondiente parámetro actual, cualquier modificación le afectará.

ConclusiónSi no se quiere que un subprograma altere el valor del parámetro actual, es decir, de una variable del programa principal debemos realizar paso por valor.

Si se quiere que el subprograma altere el valor de un parámetro actual tenemos que pasarlo por variable o referencia. No se permite en este caso una constante o expresión, puesto que estas no pueden variarse.

Page 5: Tema 7

Declaraciones locales y globales

Universidad HispanoamericanaProgramación básica

Todos los objetos (constantes, tipos, variables) declarados en el programa principal son de dominio global del programa, por tanto, son reconocidos en el ámbito del subprograma.

Los objetos creados en el subprograma para su uso exclusivo son inaccesibles para el programa principal o llamador, es decir, tienen ambito local y solo tendrán vigencia dentro del cuerpo de sentencias del subprograma y para cualquier otro interno a este.

Los parámetros formales de un subprograma se comportan como variables locales y solo pueden ser utilizados en el ámbito del cuerpo de sentencias del subprograma.

Page 6: Tema 7

Universidad HispanoamericanaProgramación básica

Efectos laterales

La transferencia de información entre programas y subprogramas solo tendrá lugar a través de la lista de parámetros.

Si se necesita información almacenada en una variable global para la ejecución de un subprograma debe habilitarse al declaración del correspondiente parámetro formal y nunca referenciarse directamente.

Cuando el subprograma encuentre un identificador de variable procederá de la siguiente forma:

Primero buscará en su lista de variables locales.

Si no la encuentra procederá a buscarla en su lista de parámetros formales.

Si no la encuentra buscará en la lista de variables globales de ámbito superior en la jerarquía de módulos, hasta llegar a la lista de variables globales del programa principal.

Si no está ahí, entonces se producirá un error de compilación y tendrá que revisarse la declaración de variables, en el orden escrito.

Page 7: Tema 7

Universidad HispanoamericanaProgramación básica

Estructura, declaración y empleo de un procedimiento

Los subprogramas se declaran inmediatamente después de las variables del programa principal, teniendo la precaución de que si un subprograma llama a otro, el llamado o referenciado debe declararse primero.

Parámetros formalesSe encierran entre paréntesis, indicando el identificador, luego :, y el tipo de cada uno, separados por punto y coma unos de otros.La palabra VAR reservada precede a un identificador de parámetro indicando que el paso es por variable, su ausencia indica que es por valor.

Page 8: Tema 7

Llamada o invocación a un procedimiento

Universidad HispanoamericanaProgramación básica

Se realiza desde el programa principal, indicando el identificador del procedimiento seguido de la lista de parámetros actuales encerrados entre paréntesis y separados por comas.

Nota: los nombres de los parámetros formales y actuales, es recomendable que sean distintos para evitar confusiones. Lo importante es recordar que la correspondencia de parámetros viene dada por el lugar que ocupan y no por el nombre.

Page 9: Tema 7

Estructura, declaración y empleo de una función

Universidad HispanoamericanaProgramación básica

Es identica a un procedimiento, pero la función devuelve un valor de tipo simple, pascal también permite tipo cadena. Tienen la misma estructura.Luego de la definición de los parámetros se debe indicar el tipo de datos que devuelve, que corresponderá al ultimo valor que se le asignó.El identificador de la función debe estar situado a la izquierda de por lo menos una sentencia de asignación.

Page 10: Tema 7

Llamada a una función

Universidad HispanoamericanaProgramación básica

Pascal trata a la llamada de la función como un valor, por lo que puede aparecer en los mismos sitios en que pueda aparecer un valor, por ejemplo asignación a una variable, componente de una expresión, sentencia de salida, etc.

Page 11: Tema 7

Parámetros variables en funciones

Universidad HispanoamericanaProgramación básica

El paso de parámetros a funciones se hará siempre por valor, puesto que al devolver un único valor, no es necesario cambiar los argumentos.

¿Funciones o procedimientos?

Deben utilizarse funciones cuando solo tenga que devolverse un solo valor simple, es decir, no estructurado al programa principal. En todos los demás casos se deben usan procedimientos.

Funciones de biblioteca

Page 12: Tema 7

RECURSIVIDAD

Universidad HispanoamericanaProgramación básica

Un objeto es recursivo, cuando tiene la capacidad de definirse en función de sí mismo.

El mejor ejemplo lo constituye el factorial (n!= n * (n-1)!), la potencia de una base con exponente entero (Be = B*B e-1), la suma de un conjunto de n numeros, etc.

Pascal permite que los procedimientos o funciones se llamen a sí mismos, es decir que sean recursivos, aunque esto consume más recursos de la máquina.

Un llamado a un procedimiento recursivo no es más que una llamada a una copia de sí mismo. Cada copia se comporta como un procedimiento independiente ya que las variables locales y los parámetros correspondientes, existen de modo distinto en cada una de las llamadas.

Page 13: Tema 7

Tipos de procedimiento

Universidad HispanoamericanaProgramación básica

Los procedimientos se pueden definir como objetos y asignarse a variables de forma que puedan pasarse como parámetros. Esto permite que la sintaxis de escritura de los tipos de procedimientos y funciones sea similar a la de otros tipos de datos, excepto que se omite el identificador que es el nombre del procedimiento, ya que este se pasa como parámetro, y solo se especifican los parámetros formales.

Page 14: Tema 7

Ejercicios

Universidad HispanoamericanaProgramación básica

Page 15: Tema 7

Ejercicios

Universidad HispanoamericanaProgramación básica

Page 16: Tema 7

Universidad HispanoamericanaProgramación básica

Page 17: Tema 7

Universidad HispanoamericanaProgramación básica

Page 18: Tema 7

Universidad HispanoamericanaProgramación básica

Page 19: Tema 7

Universidad HispanoamericanaProgramación básica

Page 20: Tema 7

Universidad HispanoamericanaProgramación básica

Page 21: Tema 7

Ejercicios propuestos

Universidad HispanoamericanaProgramación básica

Problemas 22 a 35 del documento procedimientos funciones.pdf

Páginas 146

Page 22: Tema 7

Muchas gracias