Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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)
#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:
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.
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ó.
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");
}
Gráficamente:
4
FUNCIONES elt-230 M.Sc. Irma Prado
#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
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 8: ordenar_asc(a,na);
break;
case 9: copiar(a,dv,na);
nd=na;
listado(dv,nd);
break;
}
system("pause");
}while(opcion!=10);
}