Sie sind auf Seite 1von 21

Funciones en C++

(1)
Prof. Oscar Tinoco G.

Programa

Funcin1
Funcin2

Qu es una Funcin:
Una funcin es un conjunto de lneas de cdigo (parte de
un programa), con nombre, orientadas a la ejecucin de
una tarea especfica y que opcionalmente puede retornar
un valor al programa que la invoc.

float Impuesto( float sueldo, float tasa)


Argumentos o parmetros
nombre
tipo

Importante
Cada programa C++ tiene al menos una funcin: la
funcin main
Una funcin recibe valores de entrada (parmetros) y
proporciona un valor de salida ( valor de retorno). La
funcin se llama o invoca cuando deseamos aplicarla.
C++ permite definir
al programador sus propias
funciones.
Todo problema se puede resolver con funciones o sin
ellas, pero su uso adecuado hace que el programa sea ms
eficiente, fcil de leer y probar.

Ejemplo 1

#include <iostream.h>
using namespace std;
int SUMAR (int x, int y)
{
return(x+y);
}
main()
{
cout<< "Suma:"<<
SUMAR(4, 7);
getche();
}

#include <iostream.h>
using namespace std;
/* Prototipo de funcion */
int SUMAR (int x, int y);
main()
{
int a, b;
cout<< "Ingrese a: ";
cin>>a;
cout<<endl;
cout<< "Ingrese b: ";
cin>>b;
cout<< "\nSuma:"<< SUMAR(a, b);
getche();
}
int SUMAR (int x, int y)
{
int SUMART;
SUMART = x + y;
return(SUMART);
}

Ejemplo 2
#include <iostream.h>
using namespace std;
int duplo(int x)
{
return(2*x);
}

Definicin de la
funcin

main()
{
int num;
cout<<"Ingrese num: ";
cin>>num;
cout<<"el doble de num es:"<< duplo(num);
getche();
}

El mismo ejemplo 2......


#include <iostream.h>
using namespace std;
Prototipo de
int duplo(int x);
funcin
main()
{
int num;
cout<<"Ingrese num: ";
cin>>num;
cout<<"el doble de num es:"<< duplo(num);
getche();
}
Definicin de la
int duplo(int x)
funcin
{
return(2*x);
}

Ejercicio 1: Utilizar la funcin duplo para determinar el doble


de c/u de los componentes de un array ingresado por teclado.
#include <iostream.h>
using namespace std;
int duplo(int x);
main()
{
int i, A[100],n;
cout<<"Ingrese n: ";
cin>>n;
cout<<"Ingrese datos para A[i]: "<<endl;
for (i=1; i <= n; i++)
cin>>A[i];
cout<<"Calcular y mostrar el doble de cada valor de A[i]"<<endl;
for (i=1; i <= n; i++)
{
A[i]= duplo(A[i]);
cout<<A[i]<<endl;
}
getche();
}
int duplo(int x)
{
return(2*x);

Ejercicio 2: Generar la funcin max3 para determinar el


mayor de tres nmeros ingresados por teclado.
#include <iostream.h>
using namespace std;
int max3(int x, int y, int z);
main()
{
int num1, num2, num3;
cout<<"Ingrese nros: ";
cin>>num1>> num2>>num3;
cout<<"el mayor de los tres nros es: "<< max3(num1, num2, num3);
getche();
}
int max3( int x, int y, int z )
{
int max;
max = x;
if( y > max )
max = y;
if( z > max )
max = z;
return(max);

Ejercicio 3: Generar la funcin cuadrado para determinar el


cuadrado de un nmero. Mostrar luego los cuadrados de los
nmeros de 0 al 9.
#include <iostream.h>
using namespace std;
int cuadrado(int x){
int r;
r=x*x;
return r;
}
main(){
int i,resultado;
for (i=0;i<10;i++){
resultado = cuadrado (i);
cout<<"Cuadrado de "<<i<<" : "<<resultado<<endl;
}
}

Ejercicio 4: Generar la funcin facto para determinar el


factorial de un nmero. Luego, mostrar el factorial de los
nmeros del 1 al 9.
#include <iostream.h>
using namespace std;
int facto(int x){
int i,f=1;
for(i=1;i<=x;i++){
f=f*i;}
return f;
}
main(){
int i,resultado;
for (i=1;i<10;i++){
resultado = facto (i);
cout<<"Factorial de "<<i<<" : "<<resultado<<endl;
}
}

Ejercicio 5: Generar la funcin combi que calcula los coeficientes del


desarrollo de un binomio algebraico a la potencia N.
#include <iostream.h>
using namespace std;
int facto(int N){
int f =1;
for(int i=2; i<=N; i++)
f *= i;
return f;
}
double combi(int N, int M){
return facto(N)/facto(N-M)/facto(M);
}
main(){
int p;
cout << "Teclee la potencia del binomio: ";
cin >> p;
cout << "Los coeficientes son: ";
for(int i= 0; i<=p ; i++)
cout << combi(p,i) << " ";
cout << "\n";
}

Ejercicio 6: Generar la funcin cubo que muestra los diez primeros


nmeros enteros a partir del cero, y sus respectivos cubos.
#include <iostream.h>
using namespace std;
int cubo(int x){
int r;
r=x*x*x;
return r;
}
main(){
int i,resultado;
for (i=0;i<10;i++){
resultado = cubo (i);
cout<<i<<"\t"<<resultado<<endl;
}
}

FUNCIONES TIPO VOID


Se usan cuando no se requiere
regresar un valor
Las funciones tipo void no regresan
ningn valor solamente llevan a cabo
algn cmputo.

Ejercicio 6: Generar la funcin cuadrados (tipo void) que muestra los


nmeros de 1 hasta un valor tope asi como sus correspondientes
cuadrados.
#include <iostream.h>
using namespace std;
void cuadrados(int n);
main()
{
int num;
cout<<"Ingrese tope: "<<endl;
cin>>num;
cout<<"Mostrar cuadrados de 1 hasta el tope
ingresado: "<<endl;
cuadrados(num);
getche();
}
void cuadrados(int n)
{
int i;
for( i=1; i<=n; i++)
cout<<i<<"\t"<<i*i<<endl;
}

Observaciones adicionales
Lasfuncionesterminansuejecucinya
seaatravsdelaejecucindelaltima
instruccinoutilizandolasentenciareturn.
Unfuncinpuederetornarvalorslo
cuandoeltipoderetornonoesvoid.
Lasfuncionesquesondetiposdistintosde
voidpuedenserutilizadascomo
operandosenotrasexpresionesdel
lenguaje.

int funcion3 ( int& X, int Y, int Z )

Parmetro por valor


Parmetro por referencia

Importante
Un parmetro valor significa que el argumento (parmetro)
puede ser una variable, una constante o una expresin.
Un parmetro por referencia implica que el argumento
necesariamente es una variable. La forma de indicar un
parmetro por referencia es anexar el smbolo & al final del
tipo de la variable

Parmetros de una funcin


Por valor

Por referencia

#include <iostream>
using namespace std;
void fporValor(int y){
y++;
cout<<y<<endl;
}
main(){
int x = 6;
fporValor(x);
cout<<x<<endl;
return 0;
}

#include <iostream>
using namespace std;
void freferencia(int &y){
y +=2;
cout<<y<<endl;
}
main(){
int x = 20;
freferencia(x);
cout<<x<<endl;
return 0;

Parmetros de una funcin


Por valor

Por referencia

#include <iostream.h>
using namespace std;
using namespace std;
// Prototipo de funciones
int darTemp ( int& );
int actividad( int );
main()
{
int temperatura;
darTemp( temperatura );
actividad( temperatura );
getche();
}
// Definicion de funciones
int darTemp( int& temp )
{
cout<<"introduzca la temperatura
exterior:"<<endl;
cin>>temp;
cout<<"la temperatura actual es "
<<temp<<endl;
}

int actividad( int temp )


{
cout<<"la actividad recomendada es ";
if( temp > 85 )
cout<<"nadar."<<endl;
else if ( temp > 70 )
cout<<"tenis."<<endl;
else if (temp<32)
cout<<"golf."<<endl;
else if ( temp > 0 )
cout<<"esquiar."<<endl;
else
cout<<"bailar."<<endl;
}

Ejercicios
1. Escribir una funcin que reciba como parmetro un
nmero y devuelva como resultado un valor de tipo
lgico que indique si es par o impar
2. Escribir una funcin que reciba como parmetros las
dos coordenadas cartesianas de un punto del plano y
devuelva como resultado un nmero, del 1 al cuatro, que
indique el cuadrante al cual pertenece el punto (no
considerar los ejes coordenados)

Das könnte Ihnen auch gefallen