Upload
jacqui-venegas
View
69
Download
3
Embed Size (px)
Citation preview
CÓDIGO #include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <iomanip>
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
void llenaArreglo (int num [], int digitos, int base1);
int convertirAdecimal (int num [], int digitos, int base1, int base2);
void convertirAbase (int decimal, int base2);
int checabase ();
int checabase2 ();
int cont ();
int conv ();
void mostrarDatos();
void escribirEnArchivo ();
void recuperarDeArchivo();
void salidaArcgivo ();
int main()
{
int digitos = 0;
int base1, base2;
int decimal;
system ("COLOR F3");
printf (" * * * ***** *** ** ** * ***** * *****\n"
" ** * * * * * * * * * ** * ** *\n"
" * * * * * * * * ** * * * * * * *\n"
" * * * * * * * * ** * * * * * * *****\n"
" ******** * * * * * * * ******** * ******** *\n"
" * * * * * * * * * * * * * * *\n"
" * * ****** * *** * * * * * * * *****");
printf ("\n\n");
printf ("\t\t\t <<CONVERSION DE BASES>>\n\n");
base1 = checabase ();
printf ("\n De cuantos digitos es el numero a convertir: ");
scanf ("%d", &digitos);
int num [digitos];
printf ("\n Introduce el numero a convertir (digito por digito)\n");
llenaArreglo (num, digitos, base1);
decimal = convertirAdecimal (num, digitos, base1, base2);
base2 = checabase2();
printf ("\n");
convertirAbase (decimal, base2);
system ("PAUSE");
return 0;
}
int checabase ()
{
int x;
printf (" Base del numero a convertir (numero): ");
scanf ("%d", &x);
if(x >=17)
{
printf("\n\n El numero insertado no se puede convertir"
"por favor ingrese otra base: ");
printf (" Base del numero a convertir (numero): ");
scanf ("%d", &x);
}
if(x <=-1)
{
printf("\n\n El numero insertado no se puede convertir"
"por favor ingrese otra base: ");
printf (" Base del numero a convertir (numero): ");
scanf ("%d", &x);
}
return x;
}
int checabase2 ()
{
int x;
printf ("\n\n A que base lo desea convertir (numero): ");
scanf ("%d", &x);
if(x >=17)
{
printf("\n\n El numero insertado no se puede convertir"
"por favor ingrese otra base: ");
printf ("\n\n A que base lo desea convertir (numero): ");
scanf ("%d", &x);
}
if(x <=-1)
{
printf("\n\n El numero insertado no se puede convertir"
"por favor ingrese otra base: ");
printf ("\n\n A que base lo desea convertir (numero): ");
scanf ("%d", &x);
}
return x;
}
void llenaArreglo (int num [], int digitos, int base1)
{
int i,x, a;
for (i=0; i<digitos; i++)
{
printf ("\n Introduce el digito %d: ", i+1);
scanf("%x", &num[i]);
if (num[i]>=base1 || num[i]<0)
{
printf ("\n\t =>EL NUMERO NO ES VALIDO PARA ESTA BASE<=\n");
printf ("\n Introduce el numero %d: ", i+1);
scanf("%x", &num[i]);
}
}
system("cls");
printf ("\n El numero a convertir es: ");
for (i=0; i<digitos; i++)
printf ("%x", num [i]);
}
int convertirAdecimal (int num [], int digitos, int base1, int base2)
{
int i, pot;
int x=0;
for (i=digitos-1, pot=0; i>=0, pot<digitos; i--, pot++)
{
x+= (pow(base1, pot)* num[i]);
}
return x;
}
void convertirAbase (int decimal, int base2)
{
int cociente,residuo,cont, i,j;
int conv [50];
i=0;
do{
cociente = decimal/base2;
residuo = decimal%base2;
conv[i] = residuo;
decimal = cociente;
i+=1;
}while (cociente>0);
printf("\t\tLA CONVERSION ES IGUAL A: ");
ofstream salidaArchivo("convertidorbases.txt",ios::out);
for (cont=i-1; cont>=0; cont--)
{
printf("%x", conv [cont]);
salidaArchivo<<endl <<conv[cont];
}
printf("\n\n");
//<<INTEGRANTES>>\\
//MARICARMEN CAMPOS PASCUAL\\
//ALETVIA JACQUELINE LEON VENEGAS\\
}