Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Hasta este punto la gran mayoría de los programas que se han desarrollado, son mucho más
largos de lo realmente necesario, ya que la mejor forma de escribirlos y mantenerlos es a
partir de segmentos menores o módulos, denominados funciones de usuario; siendo cada una
de ellas más fáciles de manipular, al contrario de los programas que contienen la totalidad de
su código en una sola función.
Para aplicar el concepto de funciones en un programa, se sugiere seguir los siguientes pasos:
Declaración: es la instrucción que se realiza antes de su usar la función, y la cual se
le denomina prototipo.
Llamado: es la instrucción que permite invocar el uso de la función, la cual puede
retornar o no valores.
Definición: es la estructura que define el conjunto de instrucciones necesarias para
que la función cumpla con su cometido.
A continuación se muestra un programa que usa una función definida por el programador para
calcular el cuadrado de un número. Observe las tres partes que conforman la función:
Ejemplo:
C++ requiere que una función se declare antes de su uso. La declaración de la función se
denomina prototipo. Los prototipos se sitúan en las instrucciones de preprocesador.
Sintaxis de la instrucción:
Tipo de retorno: Tipo de dato que retorna la función, una función solo retorna un
dato a la vez, en caso de que la función no tenga que retornar
nada, se escribe la palabra reservada void.
Nombre de la función: identificador apropiado de la función.
Lista de parámetros: son los datos que recibe la función para llevar a cabo su tarea. En
el prototipo solo se describe el tipo de dato de cada uno de los
parámetros, en caso de que sean varios se deben separar con
comas.
Ejemplos:
int cuadrado(int); float
radianes(float); double
area(float,float); void
imprimir(int,long int,float);
void titulos(void);
2
Una de las características principales de una función es que puede ser invocada desde
cualquier parte del programa y reutilizarse si así se requiere. En el caso de las funciones de
usuario, existe la opción de incluir dentro de sus paréntesis uno o más argumentos, los cuales
son sencillamente variables con datos para ser enviados al desarrollo de la función.
Sintaxis de la instrucción:
Nombre_de_la_función(argumentos); Ejemplos:
z=ecuacion(x,y);
cout<<Area_del_circulo(x);
cout<<x<<" "<<cuadrado(x)<<endl;
imprimir(a,b,c); titulos();
Las funciones de programador no se pueden anidar, esto significa que una función no se puede
declarar dentro de otra función.
En C++ todas las funciones son externas o globales, es decir, pueden ser llamadas desde
cualquier punto del programa, ya sea desde la función principal o desde otra función.
La estructura de la función es la que contiene las sentencias o el código para realizar la tarea
para la cual fue creada. Se puede escribir antes o después de la función main().
Sintaxis de la instrucción:
Tipo de retorno: Tipo de dato que retorna la función, debe coincidir con lo escrito
en el prototipo.
3
Lista de parámetros: A diferencia del prototipo, además del tipo de dato a utilizar, se
debe declarar las variables locales a la función que se está
definiendo.
{ }: Las llaves encierran el cuerpo de la función.
Ejemplos:
int cuadrado(int y)
{ return y * y;
}
void imprimir(int a,long int b,float
c)
{
cout<<"EDAD: "<<a<<endl;
cout<<"IDENTIFICACION: "<<b<<endl; cout<<"SUELDO BASICO:
"<<c<<endl; cout<<"SUELDO A PAGAR: "<<c*0.11<<endl; }
return y * y;
Al tomar como referencia el ejemplo del apartado anterior, se observa una instrucción que
retorna un entero, producto de obtener el cuadrado del número a la llamada de la función.
Las funciones que no devuelven valores, se denominan de tipo void o procedimientos.
C++ reconoce el ámbito de una variable, según haya sido declarada como local o global.
Las variables globales pueden ser referenciadas por cualquier función en el programa,
mientras que las variables locales tienen ámbito solo en la función.
Las variables globales tienen ámbito de programa, por lo que suelen definirse en las
declaraciones globales del programa. Las variables locales, tienen ámbito de función, es
decir, se pueden referenciar desde cualquier parte de la función, pero por fuera de esta no
se pueden utilizar, y se definen casi siempre como primeras instrucciones en los cuerpos de
las funciones.
#include<iostream>
double z; int
cuadrado(int); void
imprimir(void);
using namespace std;
4
int main()
{ int x;
cout<<"Ingrese un valor para x:"<<endl;
cin>>x; z=cuadrado(x); imprimir();
system("pause"); return 0;
}
int cuadrado(int y)
{ return y*y; }
void
imprimir(void)
{
cout<<"El cuadrado es: "<<z<<endl;
return;
}
En caso de que una variable global y una local tengan el mismo nombre, el programa
reconocerá el ámbito de la variable local. Si el programador requiere el dato de la variable
global, deberá utilizar un juego de doble dos puntos (::), antes de la variable para utilizarla.
Ejemplo:
5
1.6 PASO DE PARAMETROS POR VALOR
Cada vez que se llama una función se establece automáticamente una correspondencia entre
los parámetros formales de la función y los argumentos en el programa principal; es decir, a
cada parámetro de la función, se le asigna el valor real en su correspondiente argumento. A
esto se le denomina parámetros por valor o llamada por valor.
Cuando C++ compila la función y el código llama a la función, esta recibe una copia de los
valores de los argumentos que deben corresponder exactamente en cantidad y tipo a los
parámetros declarados.
En este caso se establece una correspondencia entre los tres parámetros de la función calculo
y los argumentos en la llamada de la función desde el programa principal.
EJERCICIO 1
En el siguiente ejemplo se muestra un programa que contiene una función de usuario que
recibe tres parámetros y retorna el mayor de los tres números proporcionados:
/*Programa que calcula el mayor de tres enteros*/
#include<iostream> int
maximo(int,int,int);
using namespace std;
int
main()
{ int a,b,c;
cout<<"Digite tres enteros: ";
cin>>a>>b>>c;
cout<<"El Maximo es: "<< maximo(a,b,c)<<endl;
system("pause"); return 0;
}
int maximo(int x,int y,int
z)
{ int max=z; if
(x>y&&x>z)
max=x;
if (y>x&&y>z)
max=y;
return max;
}
6
El prototipo de la función, es declarado en las instrucciones de preprocesador.
Declara la función entera de nombre máximo y la lista de los parámetros, en este
caso son tres enteros.
En la función se declara la variable entera local max para el cálculo del máximo de
tres números enteros. La instrucción de retorno a su punto de referencia, devuelve el
valor que contiene la variable max.
EJERCICIO 2
En el siguiente ejemplo se muestra un programa, donde se utilizan procedimientos para
imprimir resultados:
7
y=x-z;
y=y/10;
cout<<x<<" invertido es: "<<z*10+y;
}
Como el prototipo de la función intercambio inicia con void, indica que no hay retorno de
valor en esta función o procedimiento; así mismo, se le declara un parámetro de tipo entero.
EJERCICIO 3
/*Programa de juegos de azar*/
#include<iostream> #include<time.h>
#include<stdlib.h>
int ALEATORIO(int); using namespace
std; int main() { int
n,a,A=0,b,c,opcion=1; while (opcion!=9)
{
cout<<endl<<"===================== "<<endl<<endl;
cout<<" CASINO
"<<endl<<endl; cout<<"1.
Cara o Sello"<<endl; cout<<"2.
Juego del Dado"<<endl; cout<<"3. Numero
magico"<<endl;
cout<<"oprima la tecla 9 para salir del
programa"<<endl<<endl; cout<<"seleccione la opcion:";
cin>>opcion; switch(opcion) {
case 1:
n=2;
cout<<"Elija 1 para cara -0 para sello"<<endl;
cin>>c; a=ALEATORIO(n); if(c==a)
8
cout<<"====GANO==== salio "<<a; else
cout<<"====PERDIO==== salio"<<a; break;
case 2:
n=6;
cout<<"Adivine el numero que saca el dado
"<<endl; cin>>c; a=ALEATORIO(n); if(c==a+1)
cout<<"====GANO==== salio "<<a+1; else
cout<<"====PERDIO==== salio"<<a+1;
break;
case 3:
n=99;
cout<<"adivine el numero magico"<<endl;
a=ALEATORIO(n); while(a!=c) {
A=A+1; cin>>c; if(a<c) cout<<"mas
pequeño"<<endl;
else if (a>c) cout<<"mas
grande"<<endl;
else cout<<"ha ganado en "<<A<<" intentos"<<endl;
break;
}
break; case 9: cout<<"Gracias por usar nuestros
juegos "<<endl; break;
default: cout<<"opcion fuera del
menu"<<endl;
}
} system("pause");
return 0;
} int ALEATORIO (int
x) {
srand(time(NULL));
return rand()%x;
}
9
La función generará los números aleatorios, necesarios para cada uno de los juegos. El
programa se desarrolla mediante un menú de opciones que hace en cada juego la
llamada a la función.
RESUMEN
- Las funciones de usuario es un conjunto de instrucciones que cumple con una labor
específica, que puede ser utilizada una o varias veces en el programa.
- Los programas en C++ poseen varios tipos de funciones, unas predefinidas por el
lenguaje como la función main, y funciones de biblioteca y otras funciones definidas por
el programador.
- Las funciones no se pueden anidar, esto significa que una función no se puede declarar
dentro de otra función.
- Para utilizar funciones en un programa, se sugiere seguir estos pasos: Que la función se
defina antes de su uso (prototipo), que se haga la llamada de la función y finalmente que
se defina o escriba la función (estructura).
- Los procedimientos siguen las mismas reglas que las funciones: Se debe definir antes de
su uso (prototipo), se hace la llamada del procedimiento y finalmente se define o escribe
el procedimiento (estructura).
- Cuando una función tiene un parámetro por valor recibe una copia de los valores de los
argumentos.
10