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:

 {\displaystyle \sum_{k=a}^{k=b}base^{-k}}

El calculo es devuelto a main para su impresión en pantalla.

#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>}