Está en la página 1de 8

FUNCIONES elt-230 M.Sc.

Irma Prado

FUNCIONES EN C++-

Una función es un segmento de programa que realiza una tarea en particular, puede recibir
parámetros y retornarlos. Un parámetro es una variable que tiene un valor específico que es
transportado a la función.

Las funciones no se ejecutan solas, es el programa principal o main() es el que controla el orden de
ejecución de las funciones. Una función puede ser llamada varias veces por el mismo programa
para realizar un cálculo. Por ejemplo se puede llamar a la función factorial, primero para que
calcule el factorial de 5, luego se puede llamar nuevamente a la función factorial para que ahora
calcule el factorial de 7 y así se llama a una función las veces que se requiera. Una función puede
llamar a otra función, siempre y cuando esté escrita ántes.

Las funciones pueden ser escritas antes del programa principal, vea ejemplo a), o ser declaradas
antes y desarrolladas después del programa principal, vea ejemplo b)

Funciones que no reciben parámetros y no retorna resultados: Ejemplo a)

#include<iostream>
using namespace std;
void saludo()
{
cout<<"hola"<<endl;
}

1
FUNCIONES elt-230 M.Sc. Irma Prado

void despedida()
{
cout<<"Adios"<<endl;
}
main()
{
saludo();
despedida();
system("pause");

Gráficamente:

La salida de este programa es:

b) el mismo ejercicio:

2
FUNCIONES elt-230 M.Sc. Irma Prado

#include<iostream>
using namespace std;
//declaración de funciones :
void saludo();
void despedida();
main()
{
saludo();
despedida();
system("pause");
}
//definicion de funciones:
void saludo()
{
cout<<"hola"<<endl;
}
void despedida()
{
cout<<"Adios"<<endl;
}
Cualquiera de las dos formas funcionan.

Funciones que reciben y retornan un resultado:

Estas funciones tienen parámetros que llegan con valores desde el programa principal, realizan un
proceso y retornan un resultado al programa que los llamó.

Ejemplo: Programa para calcular:

Solución: En este caso la función debe calcular el factorial, se llama esta función tres veces, una
para que calcule n!, la segunda vez para que calcular (n-k)! y la tercera vez para que calcule k!.

#include<iostream>
using namespace std;
int factorial(int z)
{
int f=1;
for(int i=1;i<=z; i++)
{
f=f*i;
}
return(f);

3
FUNCIONES elt-230 M.Sc. Irma Prado

}
main()
{
int n,k,r;
do{
cout<<"Valor de n?";
cin>>n;
}while(n<0);
do{
cout<<"Valor de k?";
cin>>k;
}while(k<0 || k>n);
r=factorial(n)/(factorial(n-k)*factorial(k));
cout<<"El resultado es "<<r<<endl;
system("pause");
}

Salida del programa es:

Gráficamente:

4
FUNCIONES elt-230 M.Sc. Irma Prado

Ejemplo con vectores y funciones:

#include<iostream>
using namespace std;
//--------------------
int leer(char x[])
{
int z;
cout<<x;
cin>>z;
return z;
}
//--------------------
void leer_vector(int aux[],int d)
{
char t;
for(int i=0;i<d;i++)
{
aux[i]=leer("Dato ?");
}

}
//----------------------
void menu()
{
system("cls");
cout<<"1. Lectura del vector A"<<endl;
cout<<"2. Listado del vector A"<<endl;

5
FUNCIONES elt-230 M.Sc. Irma Prado

cout<<"3. Lectura del vector B"<<endl;


cout<<"4. Listado del vector B"<<endl;
cout<<"5. Suma de vectores A+B"<<endl;
cout<<"6. Elemento más grande de A"<<endl;
cout<<"7. Elemento más pequeño de B"<<endl;
cout<<"8. Ordenar los elementos de A en forma ascendente"<<endl;
cout<<"9. Copiar el vector A en D"<<endl;
cout<<"10. Salir"<<endl;
}
//-----------------------
void listado(int aux[], int d)
{
cout<<"El arreglo es:"<<endl;
for(int i=0;i<d;i++)
{
cout<<aux[i]<<"\t";
}
cout<<endl;
}
//-----------------------------
void sumar(int a1[],int a2[],int a3[], int d)
{
for(int i=0;i<d;i++)
{
a3[i]=a1[i]+a2[i];
}
}

int maximo(int aux[],int d)


{
int z=aux[0];
for(int i=0; i<d;i++)
{
if (z<aux[i]){
z=aux[i];
}
}
return z;
}
//-----------------------------
int minimo(int aux[],int d)
{
int z=aux[0];
for(int i=0; i<d;i++)
{
if (z>aux[i]){
z=aux[i];
}

6
FUNCIONES elt-230 M.Sc. Irma Prado

}
return z;
}
void ordenar_asc(int aux[],int d)
{ int z;
for(int i=0;i<d;i++)
{
for(int j=i+1;j<d;j++)
{
if(aux[i]>aux[j]){
z=aux[i];
aux[i]=aux[j];
aux[j]=z;
}
}
}
}
void copiar(int aux1[],int aux2[], int d)
{
for(int i=0;i<d;i++)
aux2[i]=aux1[i];
}
main()
{
int a[10],b[10],c[10],dv[10],opcion,na=0,nb=0,nc=0,nd=0;
do{
menu();
opcion=leer("?");
switch (opcion){

case 1: do{
na=leer("Total de elementos del vector A?");
}while(na<0 || na>10);
leer_vector(a,na);
break;

case 2: listado(a,na);
break;

case 3: do{
na=leer("Total de elementos del vector b?");
}while(nb<0 || nb>10);
leer_vector(b,nb);
break;

case 4: listado(b,nb);
break;

7
FUNCIONES elt-230 M.Sc. Irma Prado

case 5: if(na==nb){
nc=nb;
sumar(a,b,c,na);
listado(c,nc);
}
else
cout<<"No se puede sumar son de diferente tamaño";
break;
case 6: cout<<"El elemento maximo de A es "<<maximo(a,na)<<endl;
break;

case 7: cout<<"El elemento minimo de B es "<<minimo(b,nb)<<endl;


break;

case 8: ordenar_asc(a,na);
break;
case 9: copiar(a,dv,na);
nd=na;
listado(dv,nd);
break;
}
system("pause");
}while(opcion!=10);
}

También podría gustarte