Version:0.9 StartHTML:0000000105 EndHTML:0000003380 StartFragment:0000000152 EndFragment:0000003346
/******************************************************/
/*************** Isidro Pastor Jorda ******************/
/******************************************************/
/****************** Telematica ************************/
/******************************************************/

#include <iostream.h>
#include <stdlib.h>

int ToBinario (int  dato, int & resto);

int main()
{
    int resultado, x, resto;

    resultado = 0;

    cout << " Conversor de numeros decimales a binarios mediante una funcion recursiva " << endl << endl ;
    cout << endl << " Introduce el decimal a convertir en binario -> ";
    cin >> x; // Asignacion del valor
    resto=0; // iniciamos el valor del resto para nuestra funcion binario
    resultado = ToBinario(x, resto); // Llamamos a la funcion que nos devolvera el valor en binario del entero

    cout << endl << " El numero binario es  -> " << resultado;
    cout << endl << endl;

    system("PAUSE");

    return 0;
}


int ToBinario (int dato, int & resto)
{
   int cociente, resto_local;

   cociente = dato / 2;
   resto_local = dato % 2;

   if (cociente > 1) // entraremos aqui si el cociente nos da mayor que 1 ya que tendremos que seguir con la recursividad
   {
      ToBinario (cociente, resto);  // Llamada recursiva a la misma funcion para las operaciones recursivas
      resto = resto * 10 + resto_local; // cogemos los valores anteriores de resto y lo multiplicamos por 10 y aņadimos el resto
   }

   if (cociente == 1 )    // Condicion de salida de la recursividad
       resto = cociente * 10 + resto_local;

   return resto;
}