You are on page 1of 4

Cuando se llama a una funcin, la ejecucin del programa pasa a la funcin y cuando

sta acaba, la ejecucin contina a partir del punto donde se produjo la llamada.
Ejemplos de funciones en C++
Ejemplo 1:
El siguiente programa lee por teclado un ao y calcula y muestra si es bisiesto. Para
realizar el clculo utiliza una funcin llamada bisiesto.
La funcin bisiesto recibe el ao ledo por teclado, comprueba si es o no bisiesto y
devuelve 1 si lo es 0 si no lo es.
// Programa que lee un ao y muestra si es o no bisiesto
#include <iostream>
using namespace std;
int bisiesto(int); //declaracin o prototipo de la funcin
int main()
{
int anio;
cout<<"Introduce a"<<(char)164<<"o: "; //164 ascii de
cin >> anio;
if(bisiesto(anio)) //llamada a la funcin
cout << "Bisiesto" << endl;
else
cout << "No es bisiesto" << endl;
system("pause");
}
int bisiesto(int a) //definicin de la funcin
{
if(a%4==0 and a%100!=0 or a%400==0)
return 1;
else
return 0;
}
En la llamada a la funcin bisiesto, el valor de la variable anio (parmetro actual) se
copia en la variable a (parmetro formal) y la funcin trabaja con esta variable. El valor
1 0 devuelto por return en la funcin pasa a ser el valor de la condicin:
Ejemplo 2
Programa que lee por teclado la fecha actual y la fecha de nacimiento de una persona y
calcula su edad.
El programa utiliza tres funciones:
fecha_valida: comprueba si la fecha leda es correcta.
bisiesto: comprueba si un ao es bisiesto. La llama la funcin fecha_valida
calcular_edad: recibe las dos fechas y devuelve la edad.

// Programa C++ que lee la fecha actual y la fecha de nacimiento


// de una persona y calcula su edad
#include <iostream>
using namespace std;
int bisiesto(int);
int fecha_valida(int , int, int);
int calcular_edad(int, int, int, int, int, int);
int main()
{
int diaa, mesa, anioa, dian, mesn, anion, edad;
do
{
cout << "Introduce fecha actual: " << endl;
cout << "dia : "; cin >> diaa;
cout << "mes : "; cin >> mesa;
cout << "a" << (char)164 << "o: "; cin >> anioa;
}while(!(fecha_valida(diaa, mesa, anioa)));
do
{
cout << endl << "Introduce fecha de nacimiento: " << endl;
cout << "dia : "; cin >> dian;
cout << "mes : "; cin >> mesn;
cout << "a" << (char)164 << "o: "; ; cin >> anion;
}while(!(fecha_valida(dian, mesn, anion)));
edad = calcular_edad(diaa, mesa, anioa, dian, mesn, anion);
cout << endl << "Edad : " << edad << endl << endl;
system("pause");
}

int calcular_edad(int da, int ma, int aa, int dn, int mn, int an)
{
int edad = aa - an;
if(ma < mn)
edad--;
else if(ma == mn and da < dn)
edad--;
return edad;

int bisiesto(int a) // definicin de la funcin bisiesto


{
if(a%4==0 and a%100 !=0 or a%400==0)
return 1;
else
return 0;
}
int fecha_valida(int d, int m, int a) //definicin de fecha_valida
{
if(d < 1 or d > 31 or m < 1 or m > 12 or a < 1)
{
return 0;
}
switch(m)
{
case 4:
case 6:
case 9:
case 11: if(d > 30)
{
return 0;
}
break;
case 2: if(bisiesto(a))
{
if(d > 29)
{
return 0;
}
}
else if(d > 28)
{
return 0;
}
break;
}
return 1;
}
La funcin fecha_valida se llama dos veces en el programa, una para comprobar si la
fecha actual es correcta y otra para comprobar si la fecha de nacimiento es correcta.
Esta Funcin devuelve 1 si es correcta y 0 en caso contrario. La funcin fecha_valida
llama a la funcin bisiesto para comprobar si el ao es bisiesto.
La funcin calcular_edad recibe las dos fechas y calcula y devuelve la edad de la persona.
El valor de la variable edad que aparece en la sentencia return se copia en la variable
edad de la llamada.

You might also like