Programación estructurada-funciones

Solo disponible en BuenasTareas
  • Páginas : 13 (3130 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de diciembre de 2011
Leer documento completo
Vista previa del texto
Programación Estructurada. Subprogramas, Procedimientos y Funciones
Tema II
Introducción a los subalgoritmos o subprogramas. Funciones. Declaración e invocación de funciones. Procedimientos (subrutina). Procedimientos versus Funciones. Sustitución de parámetros. Ámbito: Variables locales y globales. Funciones y Procedimientos con parámetros. Efectos laterales.
* Soluciona problemascomplejos al dividirlos en subprogramas y luego dividirlos estos en otros mas simples, hasta que estos sean más fáciles de resolver. Esta técnica se llama “divide y vencerás”.

* Se dice que el programa principal invoca al subprograma, el subprograma ejecuta la tarea y luego devuelve el control al programa.

* Un programa puede llamar a su vez a sus propios subprogramas

Procedimientos yfunciones:
Supongamos que queremos escribir un programa que pida al usuario el valor de un cierto ángulo en grados sexagesimales, calcule su tangente y escriba su valor con dos decimales. En una primera aproximación podríamos escribir:

Concretando algunas de las ideas introducidas
Pascal proporciona mecanismos para ampliar los procedimientos y funciones predefinidos, definiendo otros nuevos ala medida de las necesidades del programador.
Cada procedimiento o función es, en sí mismo, un pequeño programa, tanto por su estructura sintáctica (con encabezamiento, declaraciones y cuerpo) como por su cometido (resolver un problema concreto con los datos recibidos y ofrecer los resultados obtenidos).
Existen dos puntos de consideración de estos subprogramas: su definición, donde seintroducen, y su llamada, donde se utilizan.
En su definición, ambas clases de subprogramas operan sobre datos genéricos, sus parámetros, que tomarán valores en cada llamada, esto es, cuando se hace uso de los subprogramas para unos datos particulares.
Un procedimiento es un subprograma que desempeña el papel de una instrucción, mientras que una función es un subprograma que desempeña el de unaexpresión, puesto que calcula un valor, que se reemplaza por la llamada a la función.
Este distinto cometido se refleja en su llamada: los procedimientos se usan como las demás instrucciones.

Mientras que las funciones representan un valor, por lo que tienen sentido como expresiones:

Por el contrario, no está permitido ni tiene sentido llamar a una función como un procedimiento:

Tampocollamar a un procedimiento como una función:

Subprogramas:

Los parámetros:
Los parámetros permiten que el programa y los procedimientos y funciones puedan comunicarse entre sí intercambiando información. De esta forma las instrucciones y expresiones componentes de los subprogramas se aplican sobre los datos enviados en cada llamada ofreciendo una flexibilidad superior a los subprogramas sinparámetros. Al mismo tiempo, si la ejecución de los subprogramas produce resultados necesarios en el punto de la llamada, los parámetros pueden actuar como el medio de transmisión de esos resultados.
* Son canales de comunicación para pasar datos ente programas y subprogramas en ambos sentidos.

* Están asociados a variables. constantes, expresiones, etc., y por tanto, se indican mediantelos correspondientes identificadores o expresiones.
* 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.
* Los parámetros que la reciben en el subprograma se denominan parámetros formales o ficticios y se declaran en la cabecera del subprograma.

* Los parámetros sonopcionales y si no se necesitan no se deben usar. Para utilizarlos es necesario declararlos: PROCEDURE nombre (lista de parámetros);
* En una llamada a un 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.
COMUNICACIÓN CON...
tracking img