Вы находитесь на странице: 1из 6

FUNCIONES

Cuando es necesario escribir programas complicados para resolver problemas complejos, una prctica comn entre los programadores es descomponer el algoritmo (el diagrama de flujo) en varias partes. Cada de una de stas partes puede codificarse en forma independiente en la forma de subprogramas. As, habr un cierto nmero de subprogramas que se encargan de realizar slo parte de las tareas requeridas para resolver el problema; estos subprogramas estarn relacionados de forma que su ejecucin conjunta permitir la solucin del programa global.

Funciones como Subprogramas en C++


C++ permite la definicin de este tipo de subprogramas. En algunos lenguajes de programacin, las subpartes son llamadas procedimientos o subrutinas. En C++ las subpartes de un programa se denominan funciones. Una de las ventajas de dividir los programas en subprogramas es que diferentes programadores pueden realizar diferentes tareas. Este tipo de trabajo de equipo es indispensable para la elaboracin de programas complicados en un tiempo razonable.

FUNCIONES PREDEFINIDAS
El lenguaje C++, como la mayora de los lenguajes de programacin, permite el uso de bibliotecas con funciones predefinidas que se pueden utilizar en cualquier programa. Se discutir primero como se utilizan estas funciones predefinidas y, posteriormente, se mostrar como un programador puede construir sus propias funciones. Uso de Funciones Predefinidas Se utilizar la funcin sqrt (square root = raz cuadrada) para ejemplificar el uso de funciones predefinidas. La funcin sqrt toma el valor de un nmero, por ejemplo 9.0, y calcula el valor de su raz cuadrada, en este caso 3.0. El valor que la funcin toma como punto de partida (9.0 en el ejemplo) se le conoce como su argumento. Al valor que calcula se le conoce como valor de regreso (o retorno). Algunas funciones pueden tener ms de un argumento, pero todas las funciones tienen un solo valor de retorno. Si se trata de comparar a una funcin con los programas que se han analizado hasta ahora, los argumentos son anlogos a los datos, mientras que los valores de retorno son anlogos a los resultados. Un ejemplo del uso de una funcin es el siguiente:

raiz = sqrt(9.0); A la expresin sqrt(9.0) se le conoce como llamado a la funcin (o invocacin a la funcin). El argumento de una funcin puede, como en este caso, ser un valor constante, pero tambin puede ser una variable o una expresin ms complicada. La nica restriccin en este sentido es que la constante, la variable o la expresin deben de proporcionar un valor que sea del tipo requerido por la funcin. Las funciones pueden utilizarse como parte de cualquier expresin legal en C++. Por ejemplo, las siguientes son expresiones vlidas en C++: double venta, beneficio, area; venta = 100.50; area = 27.5; beneficio = sqrt(venta); cout<< El lado del cuadrado es << sqrt(area) <<\n;

LLAMADO A FUNCIONES
Un llamado a una funcin consiste en el nombre de una funcin seguida por la lista de sus argumentos encerrados entre parntesis. Si hay ms un de argumento, los argumentos se separan mediante comas. Un llamado a una funcin puede ser usado como cualquier otra expresin en C++ siempre y cuando se conserve la consistencia entre los tipos de las variables del programa. La sintaxis es la siguiente. Si hay un solo argumento: nombre_de_funcion(argumento) si hay ms de un argumento: nombre_de_funcion(argumento_1, argumento_2, ... , ultimo_argumento) Bibliotecas de Funciones Se recordar que, cuando se analiz la instruccin cout, se vi que era necesario incluir en el programa a la biblioteca iostream.h, dado que la definicin de cout se encontraba en dicha biblioteca. De la misma forma, para utilizar algunas funciones matemticas ser necesario incluir en nuestros programas otras bibliotecas de C++. Esta bibliotecas son, por ejemplo, math.h y stdlib.h. Esto significa que, en programas en los que se utilicen funciones predefinidas, ser necesario utilizar la directiva

include para incluir en el programa la definicin de dichas funciones. En el caso de la biblioteca math.h, el programa deber contener la instruccin: #include <math.h> A los archivos que tienen extensin .h se les conoce como archivos de encabezados. A travs de la directiva include, los archivos de encabezados proporcionan al compilador la informacin bsica contenida en la biblioteca correspondiente. Algunas Funciones Predefinidas Algunas funciones predefinidas se describen en la Tabla siguiente:

Nombre

Descripcin

Tipo de Argumentos double double int double double

sqrt pow abs fabs ceil

Raz Cuadrada Potencia Valor absoluto de un int Valor absoluto de un double Redondeo hacia el nmero inmediato superior Redondeo hacia el nmero inmediato inferior Seno Coseno Tangente

Tipo de Valor de Regreso double double int double double

Ejemplo

Valor

Biblioteca

sqrt(4.0) pow(2.0,3.0) abs(-7) abs(7) fabs(-7.5) fabs(7.5) ceil(3.2) ceil(3.9)

2.0 8.0 7 7.5 4.0

math.h math.h stdlib.h math.h math.h

floor

double

double

floor(3.2) floor(3.9)

3.0

math.h

sin cos tan

double double double

double double double

sin(0.0) cos(0.0) tan(0.0)

0.0 1.0 0.0

math.h math.h math.h

La ms complicada de las funciones de la tabla es la funcin pow que sirve para obtener la potencia de un nmero. Por ejemplo, las siguientes sentencias son un ejemplo de aplicacin de la funcin pow: double resultado, x=3.0, y=2.0; resultado = pow(x,y); cout<< resultado; Las sentencias anteriores mostraran en pantalla al nmero 9.0.

Ejemplos Las siguientes expresiones algebraicas y en C++ son equivalentes:

x y
x y 7

sqrt(x+y)

pow(x,y+7)

x y
sen(angulo)

abs(x-y)

sin(angulo)

El siguiente programa calcula las races la ecuacin cuadrtica ax2 + bx + c = 0 #include <iostream.h> #include <stdlib.h> #include <math.h> int main() { /* Este programa permite el calculo de las raices de una ecuacion cuadratica */ /* Declaracin de variables*/ double a, b, c, x_1, x_2; /* Entrada de datos */ cout<< "Dame los coeficientes a,b y c de la ecuacion cuadratica \n"; cin>>a >> b >> c; /* Procesamiento de datos */ x_1 = ( -b + sqrt( pow(b,2.0) 4.0 * a * c) ) / (2.0 * a); x_2 = ( -b - sqrt( pow(b,2.0) 4.0 * a * c) ) / (2.0 * a); /* Salida de Resultados */ cout<<\n; cout<<La primera raiz es << x_1 << "\n"; cout<<La segunda raiz es << x_2 << "\n"; cout<<\n; system("PAUSE"); return 0; }

El siguiente programa tambin calcula las races de la ecuacin cuadrtica, pero considera el caso general en el que pueden haber races imaginarias: #include <iostream.h> #include <stdlib.h> #include <math.h> int main() { /* Este programa permite el calculo de las raices de una ecuacion cuadratica */ /* Declaracin de variables*/ double a, b, c, x_1, x_2; double x_1r, x_1i, x_2r, x_2i; /* Entrada de datos */ cout<< "Dame los coeficientes a, b y c de la ecuacion cuadratica \n"; cin>>a >> b >> c; /* Procesamiento de datos y Salida de Resultados */ if ( (pow(b,2.0) - 4.0 * a * c) > 0) { x_1 = ( -b + sqrt( pow(b,2.0) - 4.0 * a * c) ) / (2.0 * a); x_2 = ( -b - sqrt( pow(b,2.0) - 4.0 * a * c) ) / (2.0 * a); cout<<"\n"; cout<<"La primera raiz es "<< x_1 << "\n"; cout<<"La segunda raiz es "<< x_2 << "\n"; cout<<"\n"; } else { x_1r = -b / (2.0 * a); x_1i = sqrt( fabs(pow(b,2.0) - 4.0 * a * c) ) / (2.0 * a); x_2r = -b / (2.0 * a); x_2i = -sqrt( fabs(pow(b,2.0) - 4.0 * a * c) ) / (2.0 * a);

cout<<"\n"; cout<<"La primera raiz es "<< x_1r <<" + " <<x_1i << " i \n"; cout<<"La segunda raiz es "<< x_2r <<" " <<x_2i << " i \n"; cout<<"\n"; } system("PAUSE"); return 0; }

Вам также может понравиться