3
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);

1... conversor de bases

Embed Size (px)

Citation preview

Page 1: 1... conversor de bases

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

Page 2: 1... conversor de bases

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]);

}

Page 3: 1... conversor de bases

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\\

}