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:

 {\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() {
   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);
}