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

Programación

Instituto Tecnológico de Celaya

FFUUNNCCIIOONNEESS

Cuando es necesario escribir programas complicados para resolver problemas complejos, una práctica común 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 número de subprogramas que se encargan de realizar sólo parte de las tareas requeridas para resolver el problema; estos subprogramas estarán relacionados de forma que su ejecución conjunta permitirá la solución del programa global.

Funciones como Subprogramas en C++

C++ permite la definición de este tipo de subprogramas. En algunos lenguajes de programación, 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 elaboración de programas complicados en un tiempo razonable.

FFUUNNCCIIOONNEESS PPRREEDDEEFFIINNIIDDAASS

El lenguaje C++, como la mayoría de los lenguajes de programación, 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 función sqrt (square root = raíz cuadrada) para ejemplificar el uso de funciones predefinidas. La función sqrt toma el valor de un número, por ejemplo 9.0, y calcula el valor de su raíz cuadrada, en este caso 3.0. El valor que la función 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).

Programación

Instituto Tecnológico de Celaya

Algunas funciones pueden tener más de un argumento, pero todas las funciones tienen un solo valor de retorno. Si se trata de comparar a una función con los programas que se han analizado hasta ahora, los argumentos son análogos a los datos, mientras que los valores de retorno son análogos a los resultados.

Un ejemplo del uso de una función es el siguiente:

raiz = sqrt(9.0);

A la expresión sqrt(9.0) se le conoce como llamado a la función (o invocación a

la función). El argumento de una función puede, como en este caso, ser un

valor constante, pero también puede ser una variable o una expresión más

complicada. La única restricción en este sentido es que la constante, la variable

o la expresión deben de proporcionar un valor que sea del tipo requerido por la

función.

Las funciones pueden utilizarse como parte de cualquier expresión legal en C++. Por ejemplo, las siguientes son expresiones válidas en C++:

double venta, beneficio, area; venta = 100.50; area = 27.5; beneficio = sqrt(venta); cout<< “El lado del cuadrado es “ << sqrt(area) <<”\n”;

LLLLAAMMAADDOO AA FFUUNNCCIIOONNEESS

Un llamado a una función consiste en el nombre de una función seguida por la lista de sus argumentos encerrados entre paréntesis. Si hay más un de argumento, los argumentos se separan mediante comas. Un llamado a una función puede ser usado como cualquier otra expresión 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)

Programación

Instituto Tecnológico de Celaya

si hay más de un argumento:

nombre_de_funcion(argumento_1, argumento_2,

, ultimo_argumento)

Bibliotecas de Funciones

Se recordará que, cuando se analizó la instrucción cout, se vió que era

necesario incluir en el programa a la biblioteca iostream.h, dado que la

definición de cout se encontraba en dicha biblioteca. De la misma forma, para

utilizar algunas funciones matemáticas 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 definición de dichas funciones. En el caso de la biblioteca math.h,

el programa deberá contener la instrucción:

#include <math.h>

A los archivos que tienen extensión .h se les conoce como archivos de

encabezados. A través de la directiva include, los archivos de encabezados

proporcionan al compilador la información básica contenida en la biblioteca

correspondiente.

Algunas Funciones Predefinidas

Algunas funciones predefinidas se describen en la Tabla siguiente:

Nombre

Descripción

Tipo de

Tipo de

Ejemplo

Valor

Biblioteca

Argumentos

Valor de

Regreso

sqrt

Raíz Cuadrada

double

double

sqrt(4.0)

2.0

math.h

pow

Potencia

double

double

pow(2.0,3.0)

8.0

math.h

abs

Valor absoluto de un int

int

int

abs(-7)

7

stdlib.h

abs(7)

fabs

Valor absoluto de un double

double

double

fabs(-7.5)

7.5

math.h

fabs(7.5)

ceil

Redondeo hacia

double

double

ceil(3.2)

4.0

math.h

el número

ceil(3.9)

inmediato

superior

Programación

Instituto Tecnológico de Celaya

floor

Redondeo hacia

double

double

floor(3.2)

3.0

math.h

el número

floor(3.9)

inmediato

inferior

sin

Seno

double

double

sin(0.0)

0.0

math.h

cos

Coseno

double

double

cos(0.0)

1.0

math.h

tan

Tangente

double

double

tan(0.0)

0.0

math.h

La más complicada de las funciones de la tabla es la función pow que sirve para

obtener la potencia de un número. Por ejemplo, las siguientes sentencias son

un ejemplo de aplicación de la función pow:

double resultado, x=3.0, y=2.0;

resultado = pow(x,y);

cout<< resultado;

Las sentencias anteriores mostrarían en pantalla al número 9.0.

Ejemplos

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

sqrt(x+y)expresiones algebr aicas y en C++ son equivalentes: x y + 7 pow(x,y+7) abs(x-y) sen(angulo) sin(angulo)

x

y

+7

pow(x,y+7)

abs(x-y)algebr aicas y en C++ son equivalentes: sqrt(x+y) x y + 7 pow(x,y+7) sen(angulo) sin(angulo) Ingeniería

sen(angulo)

sin(angulo)

Programación

Instituto Tecnológico de Celaya

El siguiente programa calcula las raíces la ecuación cuadrática ax 2 + 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 */

/* Declaración 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;

}

Programación

Instituto Tecnológico de Celaya

El siguiente programa también calcula las raíces de la ecuación cuadrática, pero

considera el caso general en el que pueden haber raíces imaginarias:

#include <iostream.h> #include <stdlib.h> #include <math.h>

int main()

{

/* Este programa permite el calculo de las raices de una ecuacion cuadratica */

/* Declaración 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;

}

Programación

Instituto Tecnológico de Celaya

DDEEFFIINNIICCIIÓÓNN DDEE CCOONNSSTTAANNTTEESS

Con la finalidad de proporcionar un significado a los valores constantes que se utilizan en un programa, una práctica común en programación es asignar nombres a dichos valores y usar los nombres en el programa en lugar de utilizar los valores constantes. C++ permite que cualquier cantidad, de cualquier tipo, pueda ser declarada (definida) como una constante. Una vez que se ha inicializado una cantidad que se considera constante, C++ no permitirá que su valor sea modificado durante la ejecución del programa. Aunque no es estrictamente necesario, se acostumbra que los nombres de valores constantes sean escritos con mayúsculas. Para establecer que una cantidad va a poseer un valor constante, se utiliza el modificador const.

Por ejemplo, para declarar la variable INDICE como entera se utilizaría:

int INDICE;

Si además se desea que indice sea constante e igual a 3, se haría:

const int INDICE = 3;

Declarando Constantes con el Modificador const Cuando se inicializa una variable en una declaración, puedes definir también el hecho de que la variable no pueda cambiar su valor. Para ello se utiliza el modificador const en la declaración. Sintaxis:

const nombre_del_tipo nombre_de_la_variable= valor_constante;

Ejemplos:

const double PI = 3.1415926; const double R = 0.0821;