Funciones
11. Ejemplos
Ejemplo 1
#include <iostream>
using namespace std;
int Mayor(int a, int b); //Declaración de un prototipo
int main(){<br> int num1, num2, mayor;<br> cout << "ingrese primer numero: ";<br> cin >> num1;<br> cout << "ingrese segundo numero: ";<br> cin >> num2;<br> mayor = Mayor(num1,num2); <strong>//Llamada a la función</strong><br> cout << "El mayor es" << mayor;<br> return (0);<br>}
int Mayor(int a, int b){ <strong>//Definición de la función</strong><br> if(a > b)<br> return a;<br> else<br> return b;<br>}
Ejemplo 2
#include <iostream>
using namespace std;
float suma(float a, float b); //Prototipo
int main(){<br> float s;<br> s=suma( 1.8, 3.4 ); <strong>//LLamada</strong><br> cout << “La suma es" << s;<br> return (0);<br>}
float suma(float a,float b){ <strong>//Definición</strong><br> float c;<br> c=a+b;<br> return (c);<br>}
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(){<br> int numero;<br> char tipo;<br> cout << "ingrese un numero entero: ";<br> cin >> numero;<br> tipo = primera(numero); <strong>/* en esta instrucción se realizan dos acciones:<br> -Se “llama” a la función primera y se le pasa el argumento numero.<br> -Se recibe el valor de retorno y se lo asigna a la variable tipo. */</strong><br> if (tipo=='P')<br> cout << “el numero ingresado es positivo”;<br> else if (tipo=='N')<br> cout << “el numero ingresado es negativo”;<br> else<br> cout << “error”;<br> return(0);<br>}
char primera(int N){ <strong>/*definición de la función primera*/</strong><br> if(N >= 0)<br> return('P'); <strong>// la instrucción return es la que permite definir el valor de retorno de la función</strong><br> else<br> return('N');<br>}
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() {<br><span id="selectionBoundary_1616070599034_7171117964553121" style="line-height: 0;" class="rangySelectionBoundary"></span> <span id="selectionBoundary_1616070599031_01858269476455332" style="line-height: 0;" class="rangySelectionBoundary"></span>int numero;<br> do{<br> cout << "ingrese un numero para obtener su factorial: "<<endl;<br> cin >> numero;<br> } while(numero<0);
factorial(numero); /*llamado a la función factorial pasando el argumento numero*/
return(0);
}
void factorial(int N) { <strong>/*definición de la función factorial*/</strong><br> long int resul=1;<br> int i;<br> if(N==0)<br> cout <<"el factorial de 0 es: 1";<br> else if(N==1)<br> cout <<"el factorial de 1 es: 1";<br> else{<br> for(i=1;i<=N;i++)<br> resul=resul*i;<br> cout <<"el factorial de " << N << " es: "<< resul;<br> }
}
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() {<br> float resultado, base1;<br> int inferior, b;<br> char opcion;<br> opcion = menu();<br> while (opcion != 's') {<br> cout << "ingrese el limite inferior de la sumatoria: ";<br> cin >> inferior;<br> cout << "ingrese el limite superior de la sumatoria: ";<br> cin >> b;<br> cin >> base1;<br> resultado = serie(inferior, base1, b);<br> cout << "el calculo de la serie es: " << resultado << endl << endl;<br> opcion = menu();<br> }
cout << “el programa ha finalizado”;
return(0);
}
char menu (void) { <strong> //definición de la función menu.</strong><br> char seleccion;<br> do{<br> cout << "Elija una opcion del menu:" << endl << "c - Calcula la serie" << endl << "s – Salir";<br> cin >> seleccion;<br> } while(seleccion != 's' && seleccion != 'c');
return (seleccion);
}
float serie(int a, float base, int b) { <strong> //definición de la función serie.</strong><br> float sumatoria = 0;<br> int i;<br> for(i=a; i<=b; i++)<br> sumatoria = sumatoria + pow (base, -i)<br> return (sumatoria);<br>}