Documente Academic
Documente Profesional
Documente Cultură
FUNCIONES
Los Funciones en c++ permiten modularizar sus programas. Todas las variables declaradas en las
definiciones de Funciones son variables locales es decir solo se conocen en la función que se definen.
Casi todos las Funciones tienen una lista de parámetros que permiten comunicar información entre
Funciones. Los parámetros de una función también son variables locales.
La sintaxis para declarar un función es la siguiente:
#include<iostream>
int suma(int,int);
int main()
{
int a,b;
cout<<"Ingrese 2 numeros : ";
cin>>a>>b;
cout<<"La suma es : "<<suma(a,b)<<endl;
system("pause");
return 0;
}
En la funcion int suma(int x, int y), se ve que el tipo_de_valor_devuelto es int, y tiene dos
parámetros enteros x e y.
void mensaje();
int main()
{
mensaje();
system("pause");
return 0;
}
void mensaje()
{
cout<<"C++ es facil de Aprender"<<endl;
}
En este caso la función no devuelve un valor, por eso el tipo_de_valor_devuelto es void. Lo que hace
solamente la función es mostrar un mensaje.
Ejercicios
1) Hacer un programa para calcular el factorial de un numero entero n.
#include<iostream>
float factorial(int);
int main()
{
int n;
do{
cout<<"Ingrese numero : ";
cin>>n;
}while(n<=0);
cout<<"El factorial es : "<<factorial(n)<<endl;
system("pause");
return 0;
}
float factorial(int n)
{
float f=1;
int i;
for(i=1;i<=n;i++)
f=f*i;
return f;
}
#include<iostream>
int main()
{
int x,y;
do{
cout<<"Ingrese 2 numeros : ";
cin>>x>>y;
}while(x<=0 || y<=0);
cout<<"El M.C.D. es "<<mcd(x,y)<<endl;
system("pause");
return 0;
}
void reporteDivisores(int );
int main()
{
int num;
do{
cout<<"Ingrese numero : ";
cin>>num;
}while(num<=0);
reporteDivisores(num);
system("cls");
return 0;
}
void reporteDivisores(int n)
{
int i;
cout<<"Los divisores son : "<<endl;
for(i=1;i<=n;i++)
{
if(n % i ==0)
cout<<i<<" ";
}
cout<<endl;
}
#include<iostream>
using namespace std;
bool esPrimo(int );
int main()
{
int num;
do{
cout<<"Ingrese numero : ";
cin>>num;
}while(num<=0);
if(esPrimo(num))
cout<<"El numero es primo"<<endl;
else
cout<<"El numero no es primo"<<endl;
system("pause");
return 0;
}
bool esPrimo(int n)
{
int i,cd=0;
for(i=1;i<=n;i++)
{
if(n%i==0)
cd++;
}
if(cd==2) return true;
else return false;
}
#include<iostream>
using namespace std;
int main()
{
float x;
int n;
cout<<"Valor de x : ";
cin>>x;
do{
cout<<"Valor de n : ";
cin>>n;
}while(n<=0);
cout<<"La suma es : "<<suma(x,n)<<endl;
system("pause");
}
1) Parámetros por Valor : Son aquellos a través de los cuales se pasan valores a la función, es decir
se hace una copia de la variable pasada como argumento. A estos parámetros se les conoce como
parámetros de entrada.
Ejemplo:
#include<iostream>
using namespace std;
void calculo(float );
int main()
{
float x=3;
calculo(x);
cout<<" x = "<<x<<endl;
system("pause");
return 0;
}
void calculo(float x)
{
x=x+2;
}
El resultado es : x=3
La variable x del programa principal al llamar a la función calculo hace una copia de su valor al
parámetro de la función, luego la que se incrementa es la variable x de la función y no la variable x del
programa principal.
2) Parámetros por referencia: Son aquellos a través de los cuales se pasan referencias de las
variables esto permite que las variables pasadas como argumento se puedan modificar.
Para declarar un parámetro por referencia se utiliza el operador referencia &.
Ejemplo:
#include<iostream>
using namespace std;
void calculo(float &x);
int main()
{
float x=3;
calculo(x);
cout<<" x = "<<x<<endl;
system("pause");
return 0;
}
La variable x del programa principal al llamar a la función calculo pasa la referencia de la variable
esto hace que la variable x se pueda modificar.
Ejercicios
#include<iostream>
int main()
{
float a,b;
cout<<"Valor de a : ";
cin>>a;
cout<<"Valor de b : ";
cin>>b;
cambio(a,b);
cout<<"Nuevo valor de a : "<<a<<endl;
cout<<"Nuevo valor de b : "<<b<<endl;
system("pause");
return 0;
}
#include<iostream>
#include<math.h>
int main()
{
float r,t,x,y;
ingreso(r,t);
calculo(r,t,x,y);
reporte(x,y);
system("pause");
return 0;
}
#include<iostream>
#include<math.h>
using namespace std;
void ingreso(float &,float &,float &, float &);
void calculo(float,float,float,float,float &,float &);
void reporte(float,float);
int main()
{
float x1,y1,x2,y2,m,b;
ingreso(x1,y1,x2,y2);
calculo(x1,y1,x2,y2,m,b);
reporte(m,b);
system("pause");
return 0;
}
void calculo(float x1, float y1, float x2, float y2,float &m,float &b)
{
m=(y2-y1)/(x2-x1);
b=y1-m*x1;
}
}
void reportePrimos(int n)
{
int c=0,num=0;
while(c<n)
{
num++;
if(esPrimo(num))
{
cout<<num<<" ";
c++;
}
}
cout<<endl;
}
Ejercicios Propuestos
1) Calcular la altura que cae un objeto. Se debe ingresar el tiempo recorrido en segundos.
(H = 0.5 * G * T 2 . G = 9.8 m/seg2)
2) Calcular Monto generado por un capital depositado durante cierta cantidad de períodos a una
tasa de interés determinada y expresada en porcentaje.
Monto = Capital*(1 + tasa/100)NumeroPeríodos
PROMEDIO CATEGORIA
>=17 A
>=14 pero <17 B
>=12 pero <14 C
< 12 D
1! 2! 3! 4! (n+1)!
- + - + .....
A A+B A + 2B A + 3B A + nB
13) Ingresar un numero entero y reportar si es perfecto o no. Un numero es perfecto cuando es
igual a la suma de divisores menores que el.
14) Ingresar 2 números y reportar su mínimo común múltiplo
15) Ingresar un quebrado (numerador y denominador) y reducirlo a su mínima expresión.
16) Ingresar un número y reportar el número de dígitos que tiene.
17) Ingresar un número y reportarlo al revés
18) Ingresar un número y reportar si es capicúa. Un número es capicúa cuando se lee igual de
izquierda a derecha y viceversa. Por ejemplo 2002 es capicúa
19) Ingresar un numero entero en base 10 y convertirlo en un numero de base b (entre 2 y 9)
20) Ingresar un numero entero en base b y convertirlo a base 10.
21) Convertir un numero de base n a otro de base m
22) Ingresar el numero de mes y el año y reporte el número de días que tiene ese mes.
Si N=5 saldrá
1
21
321
4321
54321
********
********
********
********
25) Dado un numero entero positivo N, dibujar en la pantalla el siguiente triangulo:
Si N=4
****
***
**
*