Funciones
11. Ejemplos
Ejemplo 1
#include <iostream>
using namespace std;
int Mayor(int a, int b); //Declaración de un prototipo
int main(){
int num1, num2, mayor;
cout << "ingrese primer numero: ";
cin >> num1;
cout << "ingrese segundo numero: ";
cin >> num2;
mayor = Mayor(num1,num2); //Llamada a la función
cout << "El mayor es" << mayor;
return (0);
}
int Mayor(int a, int b){ //Definición de la función
if(a > b)
return a;
else
return b;
}
Ejemplo 2
#include <iostream>
using namespace std;
float suma(float a, float b); //Prototipo
int main(){
float s;
s=suma( 1.8, 3.4 ); //LLamada
cout << “La suma es" << s;
return (0);
}
float suma(float a,float b){ //Definición
float c;
c=a+b;
return (c);
}
Ejemplo 3
Escribir el código fuente de un programa que tenga una función llamada “primera” que reciba un numero entero y devuelva a “main()” el carácter “P” si el numero es positivo y “N” si es negativo.
#include<iostream>
using namespace std;
char primera(int num); /* en esta instrucción se realizan dos acciones:
-Se “llama” a la función primera y se le pasa el argumento numero.
-Se recibe el valor de retorno y se lo asigna a la variable tipo. */
int main(){
int numero;
char tipo;
cout << "ingrese un numero entero: ";
cin >> numero;
tipo = primera(numero); /* en esta instrucción se realizan dos acciones:
-Se “llama” a la función primera y se le pasa el argumento numero.
-Se recibe el valor de retorno y se lo asigna a la variable tipo. */
if (tipo=='P')
cout << “el numero ingresado es positivo”;
else if (tipo=='N')
cout << “el numero ingresado es negativo”;
else
cout << “error”;
return(0);
}
char primera(int N){ /*definición de la función primera*/
if(N >= 0)
return('P'); // la instrucción return es la que permite definir el valor de retorno de la función
else
return('N');
}
Podemos tener varios “return” definiendo mas de una salida de la función, pero solo se procesa la primera a la que llega el algoritmo, ya que return interrumpe la ejecución de la función y retorna a main(). En este caso la función primera posee solo una variable local: N.
Ejemplo 4
Escribir un programa que tenga una función denominada “factorial”, que recibe un numero N ingresado por teclado y calcula el factorial de N, mostrando el resultado en pantalla. La función “main()” debe verificar que el numero N ingresado sea mayor o igual
a cero.
Observación: la función “factorial” no devuelve ningún valor.
El factorial de un número se define como: N!=1 x 2 x...x (N-1) x N
Ejemplo: 5! = 1 x 2 x 3 x 4 x 5 = 120
#include<iostream>
using namespace std;
void factorial (int N); /*prototipo de la función factorial, la palabra void delante
de la función indica que esta no devuelve ningún valor*/
int main() {
int numero;
do{
cout << "ingrese un numero para obtener su factorial: "<<endl;
cin >> numero;
} while(numero<0);
factorial(numero); /*llamado a la función factorial pasando el argumento numero*/
return(0);
}
void factorial(int N) { /*definición de la función factorial*/
long int resul=1;
int i;
if(N==0)
cout <<"el factorial de 0 es: 1";
else if(N==1)
cout <<"el factorial de 1 es: 1";
else{
for(i=1;i<=N;i++)
resul=resul*i;
cout <<"el factorial de " << N << " es: "<< resul;
}
}
La función factorial no devuelve ningún valor, (no se utiliza el “return”). Nótese que se usan enteros largos, debido a los resultados que arroja un
cálculo del factorial.
Ejemplo 5
Escribir un programa que mediante una función “menu()” permita seleccionar si desea calcular una serie o salir del programa, cualquier otra tecla debe ser ignorada, y una vez mostrado el calculo de la serie se vuelve a presentar el menú al usuario. La función “serie” toma como argumento dos enteros a y b, y un flotante base, de modo que permita calcular el resultado de:
#include<iostream>
#include<cmath>
using namespace std;
float serie(int a, float base, int b); //prototipos de las funciones
char menu (void);
int main() {
float resultado, base1;
int inferior, b;
char opcion;
opcion = menu();
while (opcion != 's') {
cout << "ingrese el limite inferior de la sumatoria: ";
cin >> inferior;
cout << "ingrese el limite superior de la sumatoria: ";
cin >> b;
cin >> base1;
resultado = serie(inferior, base1, b);
cout << "el calculo de la serie es: " << resultado << endl << endl;
opcion = menu();
}
cout << “el programa ha finalizado”;
return(0);
}
char menu (void) { //definición de la función menu.
char seleccion;
do{
cout << "Elija una opcion del menu:" << endl << "c - Calcula la serie" << endl << "s – Salir";
cin >> seleccion;
} while(seleccion != 's' && seleccion != 'c');
return (seleccion);
}
float serie(int a, float base, int b) { //definición de la función serie.
float sumatoria = 0;
int i;
for(i=a; i<=b; i++)
sumatoria = sumatoria + pow (base, -i)
return (sumatoria);
}