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