Funciones Predefinidas - Departamento de Ingeniería Química

Anuncio
Programación
Instituto Tecnológico de Celaya
FUNCIONES
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.
FUNCIONES PREDEFINIDAS
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).
Ingeniería Química
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”;
LLAMADO A FUNCIONES
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)
Ingeniería Química
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
Argumentos
sqrt
pow
abs
Raíz Cuadrada
Potencia
Valor absoluto
de un int
Valor absoluto
de un double
Redondeo hacia
el número
inmediato
superior
double
double
int
Tipo de
Valor de
Regreso
double
double
int
double
double
double
double
fabs
ceil
Ingeniería Química
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
math.h
math.h
stdlib.h
7.5
math.h
4.0
math.h
Programación
floor
sin
cos
tan
Instituto Tecnológico de Celaya
Redondeo hacia
el número
inmediato
inferior
Seno
Coseno
Tangente
double
double
floor(3.2)
floor(3.9)
3.0
math.h
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 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:
x y
sqrt(x+y)
x y 7
pow(x,y+7)
x y
abs(x-y)
sen(angulo)
Ingeniería Química
sin(angulo)
Programación
Instituto Tecnológico de Celaya
El siguiente programa calcula las raíces la ecuación cuadrática 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 */
/* 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;
}
Ingeniería Química
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;
}
Ingeniería Química
Programación
Instituto Tecnológico de Celaya
DEFINICIÓN DE CONSTANTES
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;
Ingeniería Química
Descargar