Sie sind auf Seite 1von 6

1.

FUNCIONES Y PROCEDIMIENTOS
Un mtodo ya citado para solucionar un problema complejo es dividirlo en subproblemas problemas ms sencillos- y a continuacin dividir estos subproblemas en otros ms simples, hasta que los problemas ms pequeos sean fciles de resolver. Esta tcnica de dividir el problema principal en subproblemas se suele denominar divide y vencers El problema principal se soluciona por el correspondiente programa o algoritmo principal tambin denominado controlador, y la solucin de los subproblemas mediante subprogramas, conocidos como procedimientos o funciones. El subprograma recibe datos desde el programa y devuelve resultados.

1. FUNCIONES
Matemticamente una funcin es una operacin que toma uno o ms valores llamados argumentos y produce un valor denominado resultado. Asi por ejemplo: ( ) Donde f es el nombre de la funcin y x es el argumento. Para evaluar f debemos darle un valor real a x, con este valor se puedes calcular el resultado. Con x=3 se obtiene el valor 0.3 que se expresa escribiendo ( ) ( ) Una funcin puede tener varios argumentos. Por consiguiente, ( es una funcin con dos argumentos. Cada lenguaje de programacin tiene sus propias funciones incorporadas, que se utilizan escribiendo sus nombres con los argumentos adecuados en expresiones tales como: sqrt(x) Cada funcin se evoca utilizando su nombre en una expresin con los argumentos actuales o reales encerrados entre parntesis. El programa llama o invoca a la funcin con el nombre de esta ltima en una expresin seguida de una lista de argumentos que deben coincidir en cantidad, tipo y orden con los de la funcin que fue definida. La funcin devuelve un nico valor. )

1.1 DECLARACIN DE FUNCIONES


Una funcin constar de una cabecera que comenzar con el tipo de valor devuelto por la funcin, seguido del nombre y argumentos de dicha funcin. A continuacin ir el 1

cuerpo de la funcin, que ser una serie de acciones o instrucciones cuya ejecucin har que se asigne un valor al nombre de la funcin. Esto determina el valor particular del resultado que ha de devolverse al programa llamador. La declaracin de la funcin ser en C++:
<tipo_de_dato> <nombre> (<tipo_de_dato> <parmetro1> [,<tipo_de_dato> <parmetro2>]) { Instruccin 1; Instruccin 2; return (resultado); }

La sentencias return termina inmediatamente la funcin en la cual se ejecuta y el control regresa de nuevo al llamador de la funcin. Ejemplo: La funcin: ( ) se definir como:
float F (float x) { return (x/(1+x*x)); }

1.2 INVOCACIN A LAS FUNCIONES


Una funcin puede ser llamada de la forma siguiente:
<nombre> (<parmetro1> [, <parmetro2>])

1. A cada parmetro formal se le asigna el valor real de su correspondiente parmetro actual. 2. Se ejecuta el cuerpo de acciones de la funcin 3. Se devuelve el valor de la funcin y se retorna al punto de llamada. Ejercicio Definicin de la funcin: y =
#include <iostream> using namespace std; //declaracin de la funcin float potencia(float x, int n) { int i=1; float y=1; while (i <= abs(n)) { y = y * x; i++; } if (n < 0) y = 1/y; return (y); }

(potencia n de x)

int main() { float base, resultado; int exponente; cout<<"Introduzca la base y el exponente: "; cin>>base>>exponente; resultado = potencia (base,exponente); //invocacin de la funcin cout<<"Resultado: "<<resultado; return 0; }

2. PROCEDIMIENTOS
Un procedimiento es un subprograma que ejecuta un proceso especfico. Ningn valor est asociado con su nombre. Cuando se invoca el procedimiento, los pasos que lo definen se ejecutan y a continuacin se devuelve el control al programa que lo llam.

2.1 DECLARACIN DE UN PROCEDIMIENTO


La declaracin de un procedimiento es similar a la de funciones. En C++ su declaracin ser como sigue:
void <nombre> [(<tipo_de_dato> <parmetro1> , <tipo_de_dato> <parmetro2>) { Instruccin 1; Instruccin 2; }

Los parmetros formales tienen el mismo significado que en las funciones.

2.2 LLAMADA AL PROCEDIMIENTO


El procedimiento se llama mediante la siguiente instruccin:
<nombre> [(<parmetro1>, <parmetro2>)]

Las acciones sucesivas a realizar son las siguientes: 1. Los parmetros reales sustituyen a los parmetros formales. 2. El cuerpo de la declaracin del procedimiento se sustituye por la llamada del procedimiento 3. Por ltimo, se ejecutan las acciones escritas por el cdigo resultante. Ejercicio Definicin del procedimiento de potenciacin: y =
#include <iostream> using namespace std; //declaracin del procedimiento void potencia(float x, int n) { int i=1; float y=1; while (i <= abs(n)) { y = y * x; i++; } if (n < 0) y = 1/y; cout<<"Resultado: "<<y;

(potencia n de x)

} int main() { float base; int exponente; cout<<"Introduzca la base y el exponente: "; cin>>base>>exponente; potencia (base,exponente); //llamada al procedimiento return 0; }

3. VARIABLES LOCALES Y GLOBALES


Las variables utilizadas en los programas principales y subprogramas se clasifican en dos tipos: Variables locales Variables globales

Una variable local es aquella que est declarada y definida dentro de un subprograma, en el sentido de que est dentro de ese subprograma y es distinta de las variables con el mismo nombre declaradas en cualquier parte del programa principal. Una variable global es aquella que est declarada para el programa o algoritmo principal, del que dependen todos los subprogramas. La parte del programa en que una variable se define se conoce como mbito o alcance. Ejemplo:
#include <iostream> using namespace std; int A, X, Y; int F(int N) { int X; A = 5; X = 12; return (N + A); } int main() { X = 5; A = 10; Y = F(X); cout<<X<<" "<<A<<" "<<Y; return 0; }

A la variable A se puede acceder desde el programa principal y desde la funcin. Sin embargo, X identifica a dos variables distintas: una local al programa y otra local a la funcin. Al ejecutar el programa se obtendr 5 5 10 como resultado.

4. PASO DE PARMETROS
Cuando un programa llama a un procedimiento o subprograma, la informacin se comunica a travs de la lista de parmetros y se establece una correspondencia automtica entre los parmetros formales y actuales. Los parmetros actuales son utilizados en lugar de los parmetros formales.

La declaracin del subprograma se hace con:


void nombre_procedimiento (tipo_de_dato: F1, tipo_de_dato: F2, ) { Instruccin(es); }

y la llamada al subprograma se realiza as:


nombre_procedimiento (A1, A2, )

donde F1, F2, son los parmetros formales y A1, A2, son los parmetros actuales o reales. La correspondencia de parmetros se establece aparejando los parmetros reales y formales segn su posicin en las listas.

4.1 PASO DE PARMETROS


Existen diferentes mtodos para la transmisin o el paso de parmetros a subprogramas. Dicho de otro modo, un mismo programa puede producir diferentes resultados bajo diferentes sistemas de paso de parmetros. Los parmetros pueden ser clasificados como: Entradas: las entradas proporcionan valores desde el programa que llama y se utilizan dentro de un procedimiento. Salidas: las salidas producen los resultados del subprograma; de nuevo si se utiliza el caso de una funcin, ste devuelve un valor calculado por dicha funcin. Entradas / salidas: un solo parmetro se utiliza para mandar argumentos a un programa y para devolver resultados.

4.2 PASO POR VALOR


Los parmetros formales, reciben como valores iniciales los valores de los parmetros actuales y con ello se ejecutan las acciones descritas en el subprograma. void PROC1 (int X, intY, int Z) A = 5; B = 7; 5 18 25

PROC1 (A, 18, B*3+4); Los valores 5, 18 y 25 se transforman en los parmetros X,Y, Z respectivamente cuando se ejecuta el procedimiento. La limitacin es que estos valores no se pueden pasar al punto de llamada, es decir que todos los parmetros son solo de entrada.

4.3 PASO POR REFERENCIA


En numerosas ocasiones se requiere que ciertos parmetros sirvan como parmetros de salida, es decir, se devuelvan los resultados a la unidad o programas que llama. Este mtodo se denomina paso por referencia. En este mtodo los parmetros son de entrada/salida.

Ejemplo
#include <iostream> using namespace std; //declaracin del procedimiento void division(int dividendo, int divisor, int *cociente, int *resto) { *resto = dividendo; while (*resto > divisor) { *resto -= divisor; *cociente+= 1; } } int main() { int m, n, p=0, q=0; cout<<"Introduzca el dividendo: "; cin>>m; cout<<"Introduzca el divisor: "; cin>>n; division (m,n,&p,&q); cout << "El cociente es: "<<p; cout << "\nEl resto es: "<<q; return 0; }

Nota: Ambos mtodos de paso de parmetros se aplican tanto a la llamada de funciones como a las de procedimientos. Una funcin tiene la posibilidad de devolver los valores al programa principal de dos formas: o Como valor de la funcin o Paso por referencia

Un procedimiento slo puede devolver valores por el mtodo de paso por referencia.

Das könnte Ihnen auch gefallen