FuncionesPred

7
Programación Instituto Tecnológico de Celaya Ingeniería Química 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).

description

Funciones

Transcript of FuncionesPred

Page 1: FuncionesPred

Programación Instituto Tecnológico de Celaya

Ingeniería Química

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).

Page 2: FuncionesPred

Programación Instituto Tecnológico de Celaya

Ingeniería Química

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)

Page 3: FuncionesPred

Programación Instituto Tecnológico de Celaya

Ingeniería Química

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

Tipo de Valor de Regreso

Ejemplo Valor Biblioteca

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)

abs(7) 7 stdlib.h

fabs Valor absoluto de un double

double double fabs(-7.5) fabs(7.5)

7.5 math.h

ceil Redondeo hacia el número inmediato superior

double double ceil(3.2) ceil(3.9)

4.0 math.h

Page 4: FuncionesPred

Programación Instituto Tecnológico de Celaya

Ingeniería Química

floor Redondeo hacia el número inmediato inferior

double double floor(3.2) floor(3.9)

3.0 math.h

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:

yx + sqrt(x+y)

7+yx pow(x,y+7)

yx − abs(x-y)

sen(angulo) sin(angulo)

Page 5: FuncionesPred

Programación Instituto Tecnológico de Celaya

Ingeniería Química

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; }

Page 6: FuncionesPred

Programación Instituto Tecnológico de Celaya

Ingeniería Química

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; }

Page 7: FuncionesPred

Programación Instituto Tecnológico de Celaya

Ingeniería Química

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;