Funciones y Sub programas Clasificación general de las funciones de usuario Void (sin retorno de valor) Sin parámetros Paso por valor Paso por referencia Funciones Return (retorno de valor) Paso por valor Paso por referencia Tres etapas fundamentales de la aplicación de funciones. 1. Prototipo de la función 2. Llamado de la función 3. Diseño y captura de la función FORMATO DE FUNCIONES DEFINIDAS POR EL USUARIO void <nombreFunción> (<listaParámetros>) { // Variables y constantes locales <los objetos variables y las constantes locales deberán ir aquí> // Enunciados de la función o cuerpo enunciado #1; enunciado #2; ....................................... enunciado #n; } // Final del bloque de enunciados de la función FUNCIONES void paso por valor PARÁMETROS DE VALOR Los parámetros de valor permiten una comunicación de datos en un sentido desde el programa llamador a la función. Una primera aproximación de este concepto se muestra en la siguiente figura. Observe que los valores de los argumentos reales en el programa llamador se pasan (por medio de un valor) a parámetros formales en la función. Otra forma de pensar con respecto a esto es que el parámetro formal recibe una copia del valor del argumento real. Cuando la función opera sobre un parámetro de valor, está operando en una copia, más que en el valor original en el programa llamador. De esta manera, el valor del argumento real en el programa llamador se protege de un cambio accidental por la función. Algo que se debe recordar cuando se usan parámetros de valor es que cualquier manejo de los parámetros formales dentro de la función no afecta el valor del argumento real usado por la llamada de la función. Ejemplo Para crear las lista de parámetros, estos debe de estar en forma de lista entre paréntesis en la cabecera de la función, indicando el tipo, y el nombre de parámetro (variable), si es más de un parámetro, estos se separan por punto y coma, ejemplo. Los parámetros tienen un doble propósito, y es el de ser una interface entre el programa llamador y la función, los parámetros declarados en la función son asu ves variables que solo tiene sentido, y existencia en lachar función. Int float A B M Int D char C J ARGUMENTOS REALES PARÁMETROS DE VALOR float Observe que no es necesario que el nombre de las variables sea el mismo. Sin embargo No afecta si estos fueran iguales. Lo que se debe de tener cuidado es la posición del tipo de dato Ejemplo ///El siguiente programa: USOPAR.CPP, elabora una función que muestra los ///diferentes parámetros que le son enviados. #include <iostream.h> //Para cout void mostrarNumero(int valor); ////prototipo de funcion main() { int c; c=300; mostrarNumero(1); //llamado de la función mostrarNumero(1001); mostrarNumero(-532); mostrarNumero(c); } //Fin de main() void mostrarNumero(int valor) ////Funcion { cout << "El valor del parámetros es: " << valor << endl; } //Fin de mostrarNumero Ejemplo void mostrarNumero(int valor) ////Funcion { cout << "El valor del parámetros es: " << valor << endl; } //Fin de mostrarNumero Ejemplo / El siguiente programa: MSTEMP.CPP, muestra una función que visualiza la edad, //y el salario de un empleado. #include <iostream.h> //Para cout void mostrarEmpleado(int edad, float salario); main() {int EDAD; float SALARIO; EDAD=45; SALARIO=5600; mostrarEmpleado(32, 25000.00); mostrarEmpleado(EDAD, SALARIO); system("pause"); } //Fin de main() void mostrarEmpleado(int edad, float salario) { cout << "El empleado tiene " << edad << " de edad" << endl; cout << "El empleado gana $" << salario << endl; } //Fin de mostrarEmpleado() #include<iostream.h> void imprimir(int x, int y,int z, int m); main() { int a ,b ,c ; int may;/////////////Entradas/// cout << "EL MAYOR DE 3 NUMEROS"; cout << "Ingrese el primero: " << endl; cin >> a; cout << "Ingrese el segundo: " << endl; cin >> b; cout << "Ingrese el tercero: " << endl; cin >> c;////////////////Proceso/////// may = a; if (b > may) may = b; if (c > may) may = c; /////////////Salida//////// cout << "El mayor de " << a<<" "<<b<<" "<<c cout<< endl; cout << " es " << may<< endl; system("pause"); } /////fin main #include<iostream.h> void imprimir(int x, int y,int z, int m); main() { int a ,b ,c ; int may;/////////////Entradas/// cout << "EL MAYOR DE 3 NUMEROS"; cout << "Ingrese el primero: " << endl; cin >> a; cout << "Ingrese el segundo: " << endl; cin >> b; cout << "Ingrese el tercero: " << endl; cin >> c;////////////////Proceso/////// may = a; if (b > may) may = b; if (c > may) may = c; /////////////Salida//////// cout << "El mayor de " << a<<" "<<b<<" "<<c cout<< endl; cout << " es " << may<< endl; system("pause"); } /////fin main #include<iostream.h> void imprimir(int x, int y,int z, int m); main() { int a ,b ,c ; int may;//////////////////////////Entradas/// cout << "EL MAYOR DE 3 NUMEROS"; cout << "Ingrese el primero: " << endl; cin >> a; cout << "Ingrese el segundo: " << endl; cin >> b; cout << "Ingrese el tercero: " << endl; cin >> c;//////////////////////////Proceso/////// may = a; if (b > may) may = b; if (c > may) may = c; //////////////////////////Salida//////// imprimir(a,b,c,may); system("pause"); } /////fin main void imprimir(int x, int y,int z, int m) { cout << "El mayor de " << x<<" "<<y<<" "<<z<< en cout << " es " << m<< endl; }