Está en la página 1de 20

FUNCIONES

Cuando se plantea resolver problemas mas complejos,


recurrimos a la programacin modular, es decir los
programas estn elaborados a partir de partes,
componentes o mdulos mas pequeos.
Esta tcnica se denomina divide y vencers, osea dividir
la complejidad de problemas en subproblemas mas
simples
Por lo tanto mas sencillos de implementar.
A estas partes pequeas el c/c++ la denomina funciones.
Realizan una determinada tarea y cada cual cumple su
objetivo dentro del programa.

ING. FELIX HUARI

FUNCIONES
Evidentemente la divisin del problema en mdulos no
tiene que ser nica y obligatoria, pero es aconsejable a
la hora de abordar el problema para hacer mas fcil la
solucin.
Las funciones agrupan sentencias en un bloque que
tpicamente realiza una tarea elemental.
La funcin main(), es la funcin principal en un programa
c/c++, a partir de all se invocan al resto de funciones.

ING. FELIX HUARI

FUNCIONES

Es el corazn
del programa

Main()

Lectura()

Proceso()

Ordenar()

Escribir()

Buscar()
ING. FELIX HUARI

FUNCIONES
Toda funcin posee un cuerpo de programa la cual esta
encerrado entre llaves { }.
TIPO DE FUNCIONES
Tenemos 2 tipos de funciones:
Funciones Predefinidas o prempacadas.
Estas funciones ya estn hechas y estn disponibles en la biblioteca
estndar del C++ (iostream.h, math.h, string.h, etc.).

Funciones definidas por el programador.


Este tipo de funciones son creadas por el programador de acuerdo a su
necesidad.

ING. FELIX HUARI

FUNCIONES PREDEFINIDAS
Existen una diversidad de funciones, cada uno de las
cuales cumplen una determinada tarea.
Requiere el uso de la respectiva librera.
Funciones matemticas (librera math.h).
Funciones de cadena (librera string.h).
Funciones de caracteres (librera ctype.h).
Funciones de entrada y salida (librera iostream.h,
stdio.h)
Funciones de archivos (librera fstream.h).

Otra funciones mas.

ING. FELIX HUARI

FUNCIONES MATEMATICAS
Se caracterizan por devolver un valor.
Funcin ceil()

celix(x);
Devuelve un numero entero en formato decimal mayor o
igual que el argumento.
Funcin floor()
floor(x);
Devuelve un numero entero en formato decimal menor o
igual que el argumento.

Funcin log()
log(x);
ING. FELIX HUARI

FUNCIONES MATEMATICAS
Devuelve el logaritmo natural(en base e) de un numero
Funcin log10()

log10(x);
Devuelve el logaritmo decimal de un numero.
Funcin exp()
exp(x);
Devuelve el exponencial de un numero (ex).
Funcin pow()
pow(x,n);
Devuelve la potenciacin de un numero, n es el
exponente y x es la base.
ING. FELIX HUARI

FUNCIONES MATEMATICAS
Funcin abs()
abs(x);

Devuelve el valor absoluto de un numero entero.


Funcin fabs()
fabs(x);
Devuelve el valor absoluto de un numero real.
Funcin sin()
sin(x);
Devuelve el seno del angulo x, este debe estar en
radianes.

ING. FELIX HUARI

FUNCIONES MATEMATICAS
Funcin cos()
cos(x);

Devuelve el coseno del ngulo x, este debe estar en


radianes.
Funcin tan()
tan(x);
Devuelve la tangente del ngulo x, este debe estar en
radianes.
Funcin acos()

acos(x);

ING. FELIX HUARI

FUNCIONES MATEMATICAS
Devuelve el arcoseno del angulo x, y esta expresado en
radianes.
Funcin fmod()
fmod(x,y);
Devuelve el resto que resulta de dividir 2 nmeros reales.
Funcin rand()
rand();
Devuelve un numero pseudo-aleatorio entre 0 el valor de
RAND_MAX (32767). La funcion rand, requiere de la
librera #include<stdlib.h>

ING. FELIX HUARI

10

FUNCIONES MATEMATICAS
Funcin srand()
srand(time(0));

Permite inicializar el generador de la semilla en funcin del


tiempo, donde el argumento de srand puede ser time(0) o
time(NULL). Se debe incluir la librera #include<time.h>
Funcin rand()

rand();
Para genera un numero aleatorio en un intervalo a y b se
usa la siguiente formula:

n = a + rand()%(b+1 - a)

ING. FELIX HUARI

11

EJEMPLOS
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
#define N 2.718282
#define PI 3.1415926535897932384626433832795
#define GRADO 180/PI
int main()
{ float x=-19.65; int y=-32;
cout<<"RESULTADOS DEVUELTOS POR LAS FUNCIONES"<<endl<<endl;

cout<<"Ceil("<<x<<")="<<ceil(x)<<endl;
cout<<"floor("<<x<<")="<<floor(x)<<endl;

ING. FELIX HUARI

12

EJEMPLOS
cout<<"fabs("<<x<<")="<<fabs(x)<<endl;
cout<<"abs("<<y<<")="<<abs(y)<<endl;
cout<<"exp("<<2<<")="<<exp(2)<<endl;
cout<<"log("<<N<<")="<<log(N)<<endl;
cout<<"log10("<<10<<")="<<log10(10)<<endl;
cout<<"cos("<<60<<")="<<cos(60*PI/180)<<endl;
cout<<"tan("<<45<<")="<<tan(45*PI/180)<<endl;
cout<<"acos("<<0.5<<")="<<acos((double)0.5)*GRADO<<endl;
cout<<"fmod("<<8.5<<","<<3.4<<")="<<fmod(8.5,3.4)<<endl;
cout<<"rand()="<<rand()<<endl;
cout<<"Numero pseudoaleatorio entre 10 y 50 = "<<10+rand()%(51-10)<<endl;

ING. FELIX HUARI

13

RESULTADO

ING. FELIX HUARI

14

EJEMPLO DE TRIANGULO RECTANGULO


#include<iostream>
#include<math.h>
#define PI 3.1415926535
using namespace std;
//Funcion principal
int main()
{ float h,a,b;
int ang;
cout<<endl;
cout<<"Calculo de los lados de un triangulo rectangulo"<<endl<<endl;

cout<<"Cual es la hipotenusa:";cin>>h;
cout<<"Cual es el angulo:";cin>>ang;
ING. FELIX HUARI

15

EJEMPLO DE TRIANGULO RECTANGULO

if((h>0) && (ang>0))


{ a=h*cos(PI*ang/180);
b=h*sin(PI*ang/180);
cout<<"\na = "<<a<<endl;
cout<<"b = "<<b<<endl;
}
else
cout<<"Error..., invalido dato"<<endl;
}

ING. FELIX HUARI

16

EJEMPLO DE TRIANGULO RECTANGULO


#include<iostream>
#include<math.h>
#define PI 3.1415926535
using namespace std;
//Funcion principal
int main()
{ float h,a,b,ang;
// int ang;
cout<<endl<<"Calculo del angulo y el cateto adyacente"<<endl;
cout<<"dado como datos la hipotenusa y el cateto opuesto"<<endl;

cout<<"de un tringulo rectangulo"<<endl;

ING. FELIX HUARI

17

EJEMPLO DE TRIANGULO RECTANGULO


cout<<"\nLa hipotenusa ?:"; cin>>h;
cout<<"El cateto opuesto ?:"; cin>>b;
if((h>0) && (b>0))
{ ang=asin(b/h)*180/PI;
a=h*cos(PI*ang/180);
cout<<"\na = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"Angulo = "<<ang<<endl;
}
else
cout<<"Error..., invalido dato"<<endl;
}
ING. FELIX HUARI

18

EJEMPLO DE NUMEROS PSEUDOALEATORIOS


#include<iostream>
#include <stdlib.h>
using namespace std;
//Funcion principal
int main()
{ int n,m,i,a,b;
cout<<"\nCuantos numeros desea generar:";
cin>>n;
cout<<"\nCuales son los limites:";
cin>>a>>b;

ING. FELIX HUARI

19

EJEMPLO DE NUMEROS PSEUDOALEATORIOS


if((n>0) && (a>0) && (b>0))
{ for(i=1;i<=n;i++)
{ m=a+rand()%(b+1-a);
cout<<m<<", ";
}
cout<<endl;
}
else
cout<<"Datos invalido"<<endl;
}

ING. FELIX HUARI

20

También podría gustarte