Sei sulla pagina 1di 5

#include <iostream>

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <fstream>
#include <string>
#include <iomanip>

using namespace std;


void arreglo (int numero [], int digitos, int bx);
int convertirdecimal (int numero [], int digitos, int bx, int by);
void convertirbase (int decimal, int by);
int checabase ();
int checaby ();
int cont();
int conv();
void mostrarDatos();
void escribirEnArchivo();
void recuperarDeArchivo();
void salidaArchivo();
int main(int argc, char** argv) {
int digitos = 0;
int bx, by;
int decimal;
cout << "----------------------------Convertidor------------------------------ \n\n";
bx = checabase ();

cout << "\n longitud del numero a convertir \n\n ";


numero a ingresar
cin >> digitos; // Se almacenara la longitud del numero
int numero [digitos];
// se ingr
cout <<"\n Introduce el numero a convertir, digito a digito\n\n";

// Cuantos digitos contendra el

arreglo (numero, digitos, bx);


decimal = convertirdecimal (numero, digitos, bx, by);
by = checaby();
cout << "\n";
convertirbase (decimal, by);
system ("PAUSE");
return 0; }
int checabase ()
{
int x; // se de clara variable en donde se almacenara el numero a convertir
// Aqui se pide al usuario que ingrese el numero que desea convertir a cualquier otra base
// Ingresando solamente el numero que se muestra en frente de la frase
cout <<"En que base esta el numero a convertir: "<<endl;
cout <<"Decimal = 10 \n";
cout <<"Binario = 2 \n";
cout <<"Octal = 8\n";
cout <<"Hexadecimal = 16 \n \n ";
cin >> x; // se almacena el numero ingresado

if(x >=17)
{
cout << "\n\n Ingrese una base menor a 16 para la conversion \n\n";
cout << "A que base deseas convertir, ingresalo en numero: \n";
cout << "Decimal = 10 \n";
cout << "Binario = 2 \n";
cout << "Octal = 8 \n";
cout << "Hexadecimal = 16 \n \n ";
cin >> x;
}
if(x <=-1)
{
cout << "\n \n Ingrese una base menor a 16 para la conversion \n\n";
cout << "A que base deseas convertir, ingresalo en numero: \n";
cout << "Decimal = 10 \n";
cout << "Binario = 2 \n";
cout << "Octal = 8 \n";
cout << "Hexadecimal = 16 \n \n ";
cin >> x;
}
return x;
}

int checaby ()
{
int x;
cout << "\n\n A que base deseas convertir, ingresalo en numero: \n\n";
cout << "Decimal = 10 \n";
cout << "Binario = 2 \n";
cout << "Octal = 8\n";
cout << "Hexadecimal = 16 \n \n ";
cin >> x;
if(x >=17)
{
cout << "\n \n Ingrese una base menor a 16 para la conversion \n\n";
cout << "A que base deseas convertir, ingresalo en numero: \n ";
cout << "Decimal = 10 \n";
cout << "Binario = 2 \n";
cout << "Octal = 8\n";
cout << "Hexadecimal = 16 \n \n ";
cin >>x;
}
else if (x <=-1)
{
cout << "\n \n Ingrese una base mayor para la conversion \n\n";
cout << "\n \n A que base deseas convertir, ingresalo en numero: \n ";
cout << "Decimal = 10 \n";
cout << "Binario = 2 \n";
cout << "Octal = 8\n";
cout << "Hexadecimal = 16 \n \n ";
cin >>x;
}
return x;
}
void arreglo (int numero [], int digitos, int bx)
{
int i,x, a;
for (i=0; i<digitos; i++)
{
cout << "\n Introduce su numero \n", i+1;
cin >>numero[i];
if (numero[i]>=bx || numero[i]<0)
{
cout << "\n Su numero no es valido \n";
cout << "\n Introduce el digito \n", i+1;
cin >>numero[i];
}

}
cout << "\n El numero a convertir es: \n\n";
for (i=0; i<digitos; i++)
cout << numero [i];

}
int convertirdecimal (int numero [], int digitos, int bx, int by)
{
int i, pot;
int x=0;
for (i=digitos-1, pot=0; i>=0, pot<digitos; i--, pot++)
{
x+= (pow(bx, pot)* numero[i]);
}
return x;
}
void convertirbase (int decimal, int by)
{
int cociente,residuo,cont, i,j;
int conv [50];
i=0;
do{
cociente = decimal/by;
residuo = decimal%by;
conv[i] = residuo;
decimal = cociente;
i+=1;
} while (cociente>0);
cout << "\n El numero convertido es: \n";
ofstream salidaArchivo("convertidorBases.txt",ios::out);
for (cont=i-1; cont>=0; cont--)
{
cout << conv [cont];
salidaArchivo<<endl <<conv[cont];
}
cout <<"\n\n";
}

Potrebbero piacerti anche