quien me ayuda? soy novata
necesito un programa en c++ que convierta de binario a decimal de decimal a binario de binario a octal de octal a binario de binario a hexadecimal de hexadecmal a binario.
me lo pide de la forma siguiente:
1)B-D
2)D-B
3)B-O
4)O-B
5)B-H
6)H-B
me lo pide de la forma siguiente:
1)B-D
2)D-B
3)B-O
4)O-B
5)B-H
6)H-B
// espero que esto te sirva
// hay una funcion que cambia de decimal a cualqueir base
// y otra que cambia de cualqueir base a decimal
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
typedef char cadena[20];
void diezax(int , int, char* );
int xadiez(cadena ,int);
void main()
{
cadena numn;
int num,salir=0;
char op;
do{
salir =0;
clrscr();
printf("1 B-Dn");
printf("2 D-Bn");
printf("3 B-On");
printf("4 O-Bn");
printf("5 B-Hn");
printf("6 H-Bn");
printf("7 Salir");
printf("nn Opcion? ");
op = getch();
switch (op)
{
case '1':
printf("nnIngrese un numero binario ");
gets(numn);
num=xadiez(numn,2);
printf("en decimal es %d",num);
getch();
break;
case '2':
printf("nnIngrese un numero decimal ");
cin >>num;
diezax(num,2,numn);
printf("en binario es %s",numn);
getch();
break;
case '3':
printf("nnIngrese un numero binario ");
gets(numn);
num=xadiez(numn,2);
diezax(num,8,numn);
printf("en octal es %s",numn);
getch();
break;
case '4':
printf("nnIngrese un numero octal ");
gets(numn);
num=xadiez(numn,8);
diezax(num,2,numn);
printf("en binario es %s",numn);
getch();
break;
case '5':
printf("nnIngrese un numero binario ");
gets(numn);
num=xadiez(numn,2);
diezax(num,16,numn);
printf("en hexagesimal es %s",numn);
getch();
break;
case '6':
printf("nnIngrese un numero hexagesimal ");
gets(numn);
num=xadiez(numn,16);
diezax(num,2,numn);
printf("en binario es %s",numn);
getch();
break;
case '7':
salir=1;
}
}while(!salir);
}
void vuelta(cadena a)
{
cadena aux;
strcpy(aux,a);
int y=0;
for(int x=strlen(aux)-1;x>=0;x--)
a[y++] = aux[x];
}
char simbolo(int n)
{
switch (n)
{
case 0 : return '0';
case 1 : return '1';
case 2 : return '2';
case 3 : return '3';
case 4 : return '4';
case 5 : return '5';
case 6 : return '6';
case 7 : return '7';
case 8 : return '8';
case 9 : return '9';
case 10 : return 'A';
case 11 : return 'B';
case 12 : return 'C';
case 13 : return 'D';
case 14 : return 'E';
case 15 : return 'F';
default : return ' ';
}
}
int valor(char n)
{
switch (n)
{
case '0' : return 0;
case '1' : return 1;
case '2' : return 2;
case '3' : return 3;
case '4' : return 4;
case '5' : return 5;
case '6' : return 6;
case '7' : return 7;
case '8' : return 8;
case '9' : return 9;
case 'A' : return 10;
case 'B' : return 11;
case 'C' : return 12;
case 'D' : return 13;
case 'E' : return 14;
case 'F' : return 15;
default : return 0;
}
}
void diezax(int num, int base, char *numn)
{
int x=0,resto;
strcpy(numn,"");
do
{
resto = num % base;
numn[x]= simbolo(resto);
num = num / base;
x++;
}while(num >0);
numn[x]=' ';
vuelta(numn);
}
int elevado(int base,int expo)
{
if (expo==0)
return 1;
else
return base*elevado(base,expo-1);
}
int xadiez(cadena numn,int base)
{
cadena aux;
strcpy(aux,numn);
vuelta(aux);
int xx=0;
for(int x=0; x<strlen(aux);x++)
xx+=valor(aux[x]) * elevado(base,x);
return xx;
}
// hay una funcion que cambia de decimal a cualqueir base
// y otra que cambia de cualqueir base a decimal
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
typedef char cadena[20];
void diezax(int , int, char* );
int xadiez(cadena ,int);
void main()
{
cadena numn;
int num,salir=0;
char op;
do{
salir =0;
clrscr();
printf("1 B-Dn");
printf("2 D-Bn");
printf("3 B-On");
printf("4 O-Bn");
printf("5 B-Hn");
printf("6 H-Bn");
printf("7 Salir");
printf("nn Opcion? ");
op = getch();
switch (op)
{
case '1':
printf("nnIngrese un numero binario ");
gets(numn);
num=xadiez(numn,2);
printf("en decimal es %d",num);
getch();
break;
case '2':
printf("nnIngrese un numero decimal ");
cin >>num;
diezax(num,2,numn);
printf("en binario es %s",numn);
getch();
break;
case '3':
printf("nnIngrese un numero binario ");
gets(numn);
num=xadiez(numn,2);
diezax(num,8,numn);
printf("en octal es %s",numn);
getch();
break;
case '4':
printf("nnIngrese un numero octal ");
gets(numn);
num=xadiez(numn,8);
diezax(num,2,numn);
printf("en binario es %s",numn);
getch();
break;
case '5':
printf("nnIngrese un numero binario ");
gets(numn);
num=xadiez(numn,2);
diezax(num,16,numn);
printf("en hexagesimal es %s",numn);
getch();
break;
case '6':
printf("nnIngrese un numero hexagesimal ");
gets(numn);
num=xadiez(numn,16);
diezax(num,2,numn);
printf("en binario es %s",numn);
getch();
break;
case '7':
salir=1;
}
}while(!salir);
}
void vuelta(cadena a)
{
cadena aux;
strcpy(aux,a);
int y=0;
for(int x=strlen(aux)-1;x>=0;x--)
a[y++] = aux[x];
}
char simbolo(int n)
{
switch (n)
{
case 0 : return '0';
case 1 : return '1';
case 2 : return '2';
case 3 : return '3';
case 4 : return '4';
case 5 : return '5';
case 6 : return '6';
case 7 : return '7';
case 8 : return '8';
case 9 : return '9';
case 10 : return 'A';
case 11 : return 'B';
case 12 : return 'C';
case 13 : return 'D';
case 14 : return 'E';
case 15 : return 'F';
default : return ' ';
}
}
int valor(char n)
{
switch (n)
{
case '0' : return 0;
case '1' : return 1;
case '2' : return 2;
case '3' : return 3;
case '4' : return 4;
case '5' : return 5;
case '6' : return 6;
case '7' : return 7;
case '8' : return 8;
case '9' : return 9;
case 'A' : return 10;
case 'B' : return 11;
case 'C' : return 12;
case 'D' : return 13;
case 'E' : return 14;
case 'F' : return 15;
default : return 0;
}
}
void diezax(int num, int base, char *numn)
{
int x=0,resto;
strcpy(numn,"");
do
{
resto = num % base;
numn[x]= simbolo(resto);
num = num / base;
x++;
}while(num >0);
numn[x]=' ';
vuelta(numn);
}
int elevado(int base,int expo)
{
if (expo==0)
return 1;
else
return base*elevado(base,expo-1);
}
int xadiez(cadena numn,int base)
{
cadena aux;
strcpy(aux,numn);
vuelta(aux);
int xx=0;
for(int x=0; x<strlen(aux);x++)
xx+=valor(aux[x]) * elevado(base,x);
return xx;
}
Hola, quisiera saber si alguien me puede ayudar a resolver el siguiente ejercicio: Dadas las variables numericas N1 y N2 y el signo de la operacion (+ - / * ). Mientras OP no sea "f" aplicar la operacion elegida a N1 y N2. Tener en cuenta que la division por 0 es imposible. Y tengo otro: Ingresar una serie de numeros natirasles que termina con -1 e indicar cuantas veces se interrumple el orden ascendente y cuantos numeros hay en cada grupo ordenado.. Por favor si me pueden ayudar, se los agradeceria. saludos
oe ese codigo q te enviaro esta hasta su ....si em escribes te puedo ayudar
Quisiera me ayude por favor si hubiera una programación más sencilla para realizar las conversiones.
Gracias
Gracias
//MIRA ESTE ES UN PROGRAMA Q CAMBIA DESDE CUALQUIER BASE A CUALQUIER OTRA BASE.. espero t sirva.. copia las funciones.. suerte
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <ctype.h>
//funciones
int numero();
int binario();
int base_3();
int base_4();
int base_5();
int base_6();
int base_7();
int base_8();
int base_9();
int base_10();
int base_11();
int base_12();
int base_13();
int base_14();
int base_15();
int base_16();
int base_17();
int base_18();
int base_19();
int base_20();
int base_21();
int base_22();
int base_23();
int base_24();
int base_25();
int base_26();
int base_27();
int base_28();
int base_29();
int base_30();
int base_31();
int base_32();
int control();
int control_2();
int resultado();
int controles();
int cambio_base();
//variables
int base; //BASE DE ORIGEN(FUNCIONES bases y bases_1)
long int base10_; //PARA RECOGER EL VALOR DE EL NUMERO INTRODUCIDO
int x; //PARA LA FUNCION CONTROL
int cont; //PARECE SER QUE NO TIENE UTILIDAD ESTA VARIABLE
int cociente15=0;
int y;
int v;
char s[100];
long int luis[80];
char pepe[80];
char mn;
long int m;
int inst=0;
char tu[100];
char te[100];
long int q;
int i;
int r=1;
int h;
long int j=0;
long int k;
long int juan[100];
long int maria[100];
long int op;
long int base1;
char base_final[100];
///fin variables
void main()
{
clrscr();
printf("Introduce la base de origen:");
gets(tu);
k=atol(tu);
printf("Introduce la base de destino:");
gets(te);
base1=atol(te);
printf("%ld",base1);
getche();
numero();
if(k==2)
{
clrscr();
printf("binario");
getche();
binario();
}
else
if(k==3)
{
clrscr();
printf("base 3");
getche();
base_3();
}
else
if(k==4)
{
clrscr();
printf("base 4");
getche();
base_4();
}
else
if(k==5)
{
clrscr();
printf("base 5");
getche();
base_5();
}
else
if(k==6)
{
clrscr();
printf("base 6");
getche();
base_6();
}
else
if(k==7)
{
clrscr();
printf("base 7");
getche();
base_7();
}
else
if(k==8)
{
clrscr();
printf("base 8");
getche();
base_8();
}
else
if(k==9)
{
clrscr();
printf("base 9");
getche();
base_9();
}
else
if(k==10)
{
clrscr();
printf("base 10");
getche();
base_10();
}
else
if(k==11)
{
clrscr();
printf("base 11");
getche();
base_11();
}
else
if(k==12)
{
clrscr();
printf("base 12");
getche();
base_12();
}
else
if(k==13)
{
clrscr();
printf("base 13");
getche();
base_13();
}
else
if(k==14)
{
clrscr();
printf("base 14");
getche();
base_14();
}
else
if(k==15)
{
clrscr();
printf("base 15");
getche();
base_15();
}
else
if(k==16)
{
clrscr();
printf("base 16");
getche();
base_16();
}
else
if(k==17)
{
clrscr();
printf("base 17");
getche();
base_17();
}
else
if(k==18)
{
clrscr();
printf("base 18");
getche();
base_18();
}
else
if(k==19)
{
clrscr();
printf("base 19");
getche();
base_19();
}
else
if(k==20)
{
clrscr();
printf("base 20");
getche();
base_20();
}
else
if(k==21)
{
clrscr();
printf("base 21");
getche();
base_21();
}
else
if(k==22)
{
clrscr();
printf("base 22");
getche();
base_22();
}
else
if(k==23)
{
clrscr();
printf("base 23");
getche();
base_23();
}
else
if(k==24)
{
clrscr();
printf("base 24");
getche();
base_24();
}
else
if(k==25)
{
clrscr();
printf("base 25");
getche();
base_25();
}
else
if(k==26)
{
clrscr();
printf("base 26");
getche();
base_26();
}
else
if(k==27)
{
clrscr();
printf("base 27");
getche();
base_27();
}
else
if(k==28)
{
clrscr();
printf("base 28");
getche();
base_28();
}
else
if(k==29)
{
clrscr();
printf("base 29");
getche();
base_29();
}
else
if(k==30)
{
clrscr();
printf("base 30");
getche();
base_30();
}
else
if(k==31)
{
clrscr();
printf("base 31");
getche();
base_31();
}
else
if(k==32)
{
clrscr();
printf("base 32");
getche();
base_32();
}
}
binario()
{
base=2;
if (base==2)
{
v=2;
y=2;
x=1;
j=27;
controles();
base10_=luis[0]*1+luis[1]*2+luis[2]*4+luis[3]*8+luis[4]*16+luis[5]*32+luis[6]*64+luis[7]*128+luis[8]*256+luis[9]*512+luis[10]*1024+luis[11]*2048+luis[12]*4096+luis[13]*8192+luis[14]*16384+luis[15]*32768+luis[16]*65536+luis[17]*131072+luis[18]*262144+luis[19]*524288+luis[20]*1048576+luis[21]*2097152+luis[22]*4194304+luis[23]*8388608+luis[24]*16777216+luis[25]*33554432+luis[26]*67108864;
resultado();
cambio_base();
}
}
base_3()
{
base=3;
if (base==3)
{
v=2;
y=3;
x=2;
j=17;
controles();
clrscr();
base10_=luis[0]*1+luis[1]*3+luis[2]*9+luis[3]*27+luis[4]*81+luis[5]*243+luis[6]*729+luis[7]*2187+luis[8]*6561+luis[9]*19683+luis[10]*59049+luis[11]*177147+luis[12]*531441+luis[13]*1594323+luis[14]*4782969+luis[15]*14348907+luis[16]*43046721;
resultado();
cambio_base();
}
}
base_4()
{
base=4;
if (base==4)
{
v=2;
y=4;
x=3;
j=14;
controles();
base10_=luis[0]*1+luis[1]*4+luis[2]*16+luis[3]*64+luis[4]*256+luis[5]*1024+luis[6]*4096+luis[7]*16384+luis[8]*65536+luis[9]*262144+luis[10]*1048576+luis[11]*4194304+luis[12]*16777216+luis[13]*67108864;
resultado();
cambio_base();
}
}
////comprobacion hasta base 4
base_5()
{
base=5;
if (base==5)
{
v=2;
y=5;
x=4;
j=12;
controles();
base10_=luis[0]*1+luis[1]*5+luis[2]*25+luis[3]*125+luis[4]*625+luis[5]*3125+luis[6]*15625+luis[7]*78125+luis[8]*390625+luis[9]*1953125+luis[10]*9765625+luis[11]*48828125;
resultado();
cambio_base();
}
}
base_6()
{
base=6;
if (base==6)
{
v=2;
y=6;
x=5;
j=11;
controles();
base10_=luis[0]*1+luis[1]*6+luis[2]*36+luis[3]*216+luis[4]*1296+luis[5]*7776+luis[6]*46656+luis[7]*279936+luis[8]*1679616+luis[9]*10077696+luis[10]*60466176;
resultado();
cambio_base();
}
}
base_7()
{
base=7;
if (base==7)
{
v=2;
y=7;
x=6;
j=10;
controles();
base10_=luis[0]*1+luis[1]*7+luis[2]*49+luis[3]*343+luis[4]*2401+luis[5]*16807+luis[6]*117649+luis[7]*823543+luis[8]*5764801+luis[9]*40353607;
resultado();
cambio_base();
}
}
base_8()
{
base=8;
if (base==8)
{
v=2;
y=8;
x=7;
j=9;
controles();
base10_=luis[0]*1+luis[1]*8+luis[2]*64+luis[3]*512+luis[4]*4096+luis[5]*32768+luis[6]*262144+luis[7]*2097152+luis[8]*16777216;
resultado();
cambio_base();
}
}
base_9()
{
base=9;
if (base==9)
{
v=2;
y=9;
x=8;
j=9;
controles();
base10_=luis[0]*1+luis[1]*9+luis[2]*81+luis[3]*729+luis[4]*6561+luis[5]*59049+luis[6]*531441+luis[7]*4782969+luis[8]*43046721;
resultado();
cambio_base();
}
}
base_10()
{
base=10;
if (base==10)
{
v=2;
y=10;
x=9;
j=9;
controles();
base10_=atol(pepe);
resultado();
cambio_base();
}
}
base_11() //A
{
base=11;
if (base==11)
{
v=2;
y=11;
x=10;
j=8;
controles();
base10_=luis[0]*1+luis[1]*11+luis[2]*121+luis[3]*1331+luis[4]*14641+luis[5]*161051+luis[6]*1771561+luis[7]*19487171;
resultado();
cambio_base();
}
}
base_12() //B
{
base=12;
if (base==12)
{
v=2;
y=12;
x=11;
j=8;
controles();
base10_=luis[0]*1+luis[1]*12+luis[2]*144+luis[3]*1728+luis[4]*20736+luis[5]*248832+luis[6]*2985984+luis[7]*35831808;
resultado();
cambio_base();
}
}
base_13() //C
{
base=13;
if (base==13)
{
v=2;
y=13;
x=12;
j=8;
controles();
base10_=luis[0]*1+luis[1]*13+luis[2]*169+luis[3]*2197+luis[4]*28561+luis[5]*371293+luis[6]*4826809+luis[7]*62748517;
resultado();
cambio_base();
}
}
base_14() //D
{
base=14;
if (base==14)
{
v=2;
y=14;
x=13;
j=7;
controles();
base10_=luis[0]*1+luis[1]*14+luis[2]*196+luis[3]*2744+luis[4]*38416+luis[5]*537824+luis[6]*7529536;
resultado();
cambio_base();
}
}
base_15() //E
{
base=15;
if (base==15)
{
v=2;
y=15;
x=14;
j=7;
controles();
base10_=luis[0]*1+luis[1]*15+luis[2]*225+luis[3]*3375+luis[4]*50625+luis[5]*759375+luis[6]*11390625;
resultado();
cambio_base();
}
}
base_16() //F
{
base=16;
if (base==16)
{
v=2;
y=16;
x=15;
j=7;
controles();
base10_=luis[0]*1+luis[1]*16+luis[2]*256+luis[3]*4096+luis[4]*65536+luis[5]*1048576+luis[6]*16888216;
resultado();
cambio_base();
}
}
base_17() //G
{
base=17;
if (base==17)
{
v=2;
y=17;
x=16;
j=7;
controles();
base10_=luis[0]*1+luis[1]*17+luis[2]*289+luis[3]*4913+luis[4]*83521+luis[5]*1419857+luis[6]*24137569;
resultado();
cambio_base();
}
}
base_18() //H
{
base=18;
if (base==18)
{
v=2;
y=18;
x=17;
j=7;
controles();
base10_=luis[0]*1+luis[1]*18+luis[2]*324+luis[3]*5862+luis[4]*104976+luis[5]*1889568+luis[6]*34012224;
resultado();
cambio_base();
}
}
base_19() //I
{
base=19;
if (base==19)
{
v=2;
y=19;
x=18;
j=7;
controles();
base10_=luis[0]*1+luis[1]*19+luis[2]*361+luis[3]*6859+luis[4]*130321+luis[5]*2476099+luis[6]*47045881;
resultado();
cambio_base();
}
}
base_20() //J
{
base=20;
if (base==20)
{
v=2;
y=20;
x=19;
j=7;
controles();
base10_=luis[0]*1+luis[1]*20+luis[2]*400+luis[3]*8000+luis[4]*160000+luis[5]*3200000+luis[6]*64000000;
resultado();
cambio_base();
}
}
base_21() //K
{
base=21;
if (base==21)
{
v=2;
y=21;
x=20;
j=7;
controles();
base10_=luis[0]*1+luis[1]*21+luis[2]*441+luis[3]*9261+luis[4]*194481+luis[5]*4084101+luis[6]*85766121;
resultado();
cambio_base();
}
}
base_22() //L
{
base=22;
if (base==22)
{
v=2;
y=22;
x=21;
j=6;
controles();
base10_=luis[0]*1+luis[1]*22+luis[2]*484+luis[3]*10648+luis[4]*234256+luis[5]*5153632;
resultado();
cambio_base();
}
}
base_23() //M
{
base=23;
if (base==23)
{
v=2;
y=23;
x=22;
j=6;
controles();
base10_=luis[0]*1+luis[1]*23+luis[2]*529+luis[3]*12167+luis[4]*279841+luis[5]*6436343;
resultado();
cambio_base();
}
}
base_24() //N
{
base=24;
if (base==24)
{
v=2;
y=24;
x=23;
j=6;
controles();
base10_=luis[0]*1+luis[1]*24+luis[2]*576+luis[3]*13824+luis[4]*331776+luis[5]*7962624; resultado();
cambio_base();
}
}
base_25() //O
{
base=25;
if (base==25)
{
v=2;
y=25;
x=24;
j=6;
controles();
base10_=luis[0]*1+luis[1]*25+luis[2]*625+luis[3]*15625+luis[4]*390625+luis[5]*9765625;
resultado();
cambio_base();
}
}
base_26() //P
{
base=26;
if (base==26)
{
v=2;
y=26;
x=25;
j=6;
controles();
base10_=luis[0]*1+luis[1]*26+luis[2]*676+luis[3]*17576+luis[4]*456976+luis[5]*11881376;
resultado();
cambio_base();
}
}
base_27() //Q
{
base=27;
if (base==27)
{
v=2;
y=27;
x=26;
j=6;
controles();
base10_=luis[0]*1+luis[1]*27+luis[2]*729+luis[3]*19683+luis[4]*531441+luis[5]*14348907;
resultado();
cambio_base();
}
}
base_28() //R
{
base=28;
if (base==28)
{
v=2;
y=28;
x=27;
j=6;
controles();
base10_=luis[0]*1+luis[1]*28+luis[2]*784+luis[3]*21952+luis[4]*614656+luis[5]*17210368;
resultado();
cambio_base();
}
}
base_29() //S
{
base=29;
if (base==29)
{
v=2;
y=29;
x=28;
j=6;
controles();
base10_=luis[0]*1+luis[1]*29+luis[2]*841+luis[3]*24389+luis[4]*707281+luis[5]*20511149;
resultado();
cambio_base();
}
}
base_30() //T
{
base=30;
if (base==30)
{
v=2;
y=30;
x=29;
j=6;
controles();
base10_=luis[0]*1+luis[1]*30+luis[2]*900+luis[3]*27000+luis[4]*810000+luis[5]*24300000;
resultado();
cambio_base();
}
}
base_31()
{
base=31;
if (base==31)
{
v=2;
y=31;
x=30;
j=6;
controles();
base10_=luis[0]*1+luis[1]*31+luis[2]*961+luis[3]*29791+luis[4]*923521+luis[5]*28629151;
resultado();
cambio_base();
}
}
base_32()
{
base=32;
if (base==32)
{
v=2;
y=32;
x=31;
j=6;
controles();
base10_=luis[0]*1+luis[1]*32+luis[2]*1024+luis[3]*32768+luis[4]*1048576+luis[5]*33554432;
resultado();
cambio_base();
}
}
controles()///INCLUYE LAS FUNCIONES CONTROL Y CONTROL_2
{
control_2();
for(m=0;m<cociente15;m++)
{
if(luis[m]>x)
{
control();
}
}
}
numero() ///PARA RECOGER EL NUMERO DE CUYA BASE QUEREMOS CALCULAR
{
///reinicializacion de variables
cont=0;
cociente15=0;
q=0;
for(i=0;i<100;i++)
{
luis[i]=0;
}
///reinicializacion por si se introduce un numero nuevo
printf("Introduce un numero:");
gets(pepe);
cont=strlen(pepe);
cociente15=cont;
cont--;
for(i=0;i<100;i++)
{
if ((pepe[i]=='A')||(pepe[i]=='B')||(pepe[i]=='C')||(pepe[i]=='D')||(pepe[i]=='E')||(pepe[i]=='F')||(pepe[i]=='G')||(pepe[i]=='H')||(pepe[i]=='I')||(pepe[i]=='J')||(pepe[i]=='K')||(pepe[i]=='L')||(pepe[i]=='M')||(pepe[i]=='N')||(pepe[i]=='O')||(pepe[i]=='P')||(pepe[i]=='Q')||(pepe[i]=='R')||(pepe[i]=='S')||(pepe[i]=='T')||(pepe[i]=='U')||(pepe[i]=='V'))
{
pepe[i]=pepe[i]-55;
q=pepe[i];
luis[cont]=q;
cont--;
}
else
{
s[0]=pepe[i];
q=atol(s);
luis[cont]=q;
cont--;
}
}
}
control() ///INDICA ERROR REFERENTE A LAS CIFRAS DEL NUMERO
{
clrscr();
printf("Error!!! En base %d no puedes introducir numeros que sean superiores a %d ",y,x);
getche();
clrscr();
exit(0);
}
control_2() ///INDICA ERROR REFERENTE A LA CANTIDAD DE CIFRAS
{
while(cociente15>j)
{
inst=inst+1;
if(inst==2)
{
clrscr();
printf("El numero que has introducido excede los caracteres permitidos");
getche();
printf("nnAdios");
getche();
exit(0);
}
printf("El numero que has introducido excede los caracteres permitidos.nTienes otra oportunidad.");
getche();
clrscr();
numero();
}
}
resultado() ///RESULTADO DE LA OPERACION EN BASE 10
{
clrscr();
printf("nn El resultado en base 10 es :%ld", base10_);
getche();
clrscr();
//exit(0);
}
cambio_base()
{
k=0;
juan[0]=base10_;
for(i=0;i<100;i++)
{
if(juan[i]>=base1)
{
juan[k+1]=juan[i]/base1;
maria[i]=juan[i]%base1;
if(maria[i]>9)
{
maria[i]=maria[i]+55;
}
k++;
}
}
if(juan[k]>9)
{
juan[k]=juan[k]+55;
}
if(juan[k]>9)
{
gotoxy(10,1);
printf("n%c",juan[k]);
//getche();
}
else
{
gotoxy(7,1);
printf("n%ld",juan[k]);
//getche();
}
// //for(i=0;i<k;i++)
for(i=k-1;i>-1;i--)
{
if(maria[i]>9)
{
gotoxy(r+1,2);
r++;
printf("%c",maria[i]);
//getche();
}
else
{
gotoxy(r+1,2);
r++;
printf("%ld",maria[i]);
//getche();
}
}
getche();
printf("nnFIN DEL NUMERO");
getche();
}
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <ctype.h>
//funciones
int numero();
int binario();
int base_3();
int base_4();
int base_5();
int base_6();
int base_7();
int base_8();
int base_9();
int base_10();
int base_11();
int base_12();
int base_13();
int base_14();
int base_15();
int base_16();
int base_17();
int base_18();
int base_19();
int base_20();
int base_21();
int base_22();
int base_23();
int base_24();
int base_25();
int base_26();
int base_27();
int base_28();
int base_29();
int base_30();
int base_31();
int base_32();
int control();
int control_2();
int resultado();
int controles();
int cambio_base();
//variables
int base; //BASE DE ORIGEN(FUNCIONES bases y bases_1)
long int base10_; //PARA RECOGER EL VALOR DE EL NUMERO INTRODUCIDO
int x; //PARA LA FUNCION CONTROL
int cont; //PARECE SER QUE NO TIENE UTILIDAD ESTA VARIABLE
int cociente15=0;
int y;
int v;
char s[100];
long int luis[80];
char pepe[80];
char mn;
long int m;
int inst=0;
char tu[100];
char te[100];
long int q;
int i;
int r=1;
int h;
long int j=0;
long int k;
long int juan[100];
long int maria[100];
long int op;
long int base1;
char base_final[100];
///fin variables
void main()
{
clrscr();
printf("Introduce la base de origen:");
gets(tu);
k=atol(tu);
printf("Introduce la base de destino:");
gets(te);
base1=atol(te);
printf("%ld",base1);
getche();
numero();
if(k==2)
{
clrscr();
printf("binario");
getche();
binario();
}
else
if(k==3)
{
clrscr();
printf("base 3");
getche();
base_3();
}
else
if(k==4)
{
clrscr();
printf("base 4");
getche();
base_4();
}
else
if(k==5)
{
clrscr();
printf("base 5");
getche();
base_5();
}
else
if(k==6)
{
clrscr();
printf("base 6");
getche();
base_6();
}
else
if(k==7)
{
clrscr();
printf("base 7");
getche();
base_7();
}
else
if(k==8)
{
clrscr();
printf("base 8");
getche();
base_8();
}
else
if(k==9)
{
clrscr();
printf("base 9");
getche();
base_9();
}
else
if(k==10)
{
clrscr();
printf("base 10");
getche();
base_10();
}
else
if(k==11)
{
clrscr();
printf("base 11");
getche();
base_11();
}
else
if(k==12)
{
clrscr();
printf("base 12");
getche();
base_12();
}
else
if(k==13)
{
clrscr();
printf("base 13");
getche();
base_13();
}
else
if(k==14)
{
clrscr();
printf("base 14");
getche();
base_14();
}
else
if(k==15)
{
clrscr();
printf("base 15");
getche();
base_15();
}
else
if(k==16)
{
clrscr();
printf("base 16");
getche();
base_16();
}
else
if(k==17)
{
clrscr();
printf("base 17");
getche();
base_17();
}
else
if(k==18)
{
clrscr();
printf("base 18");
getche();
base_18();
}
else
if(k==19)
{
clrscr();
printf("base 19");
getche();
base_19();
}
else
if(k==20)
{
clrscr();
printf("base 20");
getche();
base_20();
}
else
if(k==21)
{
clrscr();
printf("base 21");
getche();
base_21();
}
else
if(k==22)
{
clrscr();
printf("base 22");
getche();
base_22();
}
else
if(k==23)
{
clrscr();
printf("base 23");
getche();
base_23();
}
else
if(k==24)
{
clrscr();
printf("base 24");
getche();
base_24();
}
else
if(k==25)
{
clrscr();
printf("base 25");
getche();
base_25();
}
else
if(k==26)
{
clrscr();
printf("base 26");
getche();
base_26();
}
else
if(k==27)
{
clrscr();
printf("base 27");
getche();
base_27();
}
else
if(k==28)
{
clrscr();
printf("base 28");
getche();
base_28();
}
else
if(k==29)
{
clrscr();
printf("base 29");
getche();
base_29();
}
else
if(k==30)
{
clrscr();
printf("base 30");
getche();
base_30();
}
else
if(k==31)
{
clrscr();
printf("base 31");
getche();
base_31();
}
else
if(k==32)
{
clrscr();
printf("base 32");
getche();
base_32();
}
}
binario()
{
base=2;
if (base==2)
{
v=2;
y=2;
x=1;
j=27;
controles();
base10_=luis[0]*1+luis[1]*2+luis[2]*4+luis[3]*8+luis[4]*16+luis[5]*32+luis[6]*64+luis[7]*128+luis[8]*256+luis[9]*512+luis[10]*1024+luis[11]*2048+luis[12]*4096+luis[13]*8192+luis[14]*16384+luis[15]*32768+luis[16]*65536+luis[17]*131072+luis[18]*262144+luis[19]*524288+luis[20]*1048576+luis[21]*2097152+luis[22]*4194304+luis[23]*8388608+luis[24]*16777216+luis[25]*33554432+luis[26]*67108864;
resultado();
cambio_base();
}
}
base_3()
{
base=3;
if (base==3)
{
v=2;
y=3;
x=2;
j=17;
controles();
clrscr();
base10_=luis[0]*1+luis[1]*3+luis[2]*9+luis[3]*27+luis[4]*81+luis[5]*243+luis[6]*729+luis[7]*2187+luis[8]*6561+luis[9]*19683+luis[10]*59049+luis[11]*177147+luis[12]*531441+luis[13]*1594323+luis[14]*4782969+luis[15]*14348907+luis[16]*43046721;
resultado();
cambio_base();
}
}
base_4()
{
base=4;
if (base==4)
{
v=2;
y=4;
x=3;
j=14;
controles();
base10_=luis[0]*1+luis[1]*4+luis[2]*16+luis[3]*64+luis[4]*256+luis[5]*1024+luis[6]*4096+luis[7]*16384+luis[8]*65536+luis[9]*262144+luis[10]*1048576+luis[11]*4194304+luis[12]*16777216+luis[13]*67108864;
resultado();
cambio_base();
}
}
////comprobacion hasta base 4
base_5()
{
base=5;
if (base==5)
{
v=2;
y=5;
x=4;
j=12;
controles();
base10_=luis[0]*1+luis[1]*5+luis[2]*25+luis[3]*125+luis[4]*625+luis[5]*3125+luis[6]*15625+luis[7]*78125+luis[8]*390625+luis[9]*1953125+luis[10]*9765625+luis[11]*48828125;
resultado();
cambio_base();
}
}
base_6()
{
base=6;
if (base==6)
{
v=2;
y=6;
x=5;
j=11;
controles();
base10_=luis[0]*1+luis[1]*6+luis[2]*36+luis[3]*216+luis[4]*1296+luis[5]*7776+luis[6]*46656+luis[7]*279936+luis[8]*1679616+luis[9]*10077696+luis[10]*60466176;
resultado();
cambio_base();
}
}
base_7()
{
base=7;
if (base==7)
{
v=2;
y=7;
x=6;
j=10;
controles();
base10_=luis[0]*1+luis[1]*7+luis[2]*49+luis[3]*343+luis[4]*2401+luis[5]*16807+luis[6]*117649+luis[7]*823543+luis[8]*5764801+luis[9]*40353607;
resultado();
cambio_base();
}
}
base_8()
{
base=8;
if (base==8)
{
v=2;
y=8;
x=7;
j=9;
controles();
base10_=luis[0]*1+luis[1]*8+luis[2]*64+luis[3]*512+luis[4]*4096+luis[5]*32768+luis[6]*262144+luis[7]*2097152+luis[8]*16777216;
resultado();
cambio_base();
}
}
base_9()
{
base=9;
if (base==9)
{
v=2;
y=9;
x=8;
j=9;
controles();
base10_=luis[0]*1+luis[1]*9+luis[2]*81+luis[3]*729+luis[4]*6561+luis[5]*59049+luis[6]*531441+luis[7]*4782969+luis[8]*43046721;
resultado();
cambio_base();
}
}
base_10()
{
base=10;
if (base==10)
{
v=2;
y=10;
x=9;
j=9;
controles();
base10_=atol(pepe);
resultado();
cambio_base();
}
}
base_11() //A
{
base=11;
if (base==11)
{
v=2;
y=11;
x=10;
j=8;
controles();
base10_=luis[0]*1+luis[1]*11+luis[2]*121+luis[3]*1331+luis[4]*14641+luis[5]*161051+luis[6]*1771561+luis[7]*19487171;
resultado();
cambio_base();
}
}
base_12() //B
{
base=12;
if (base==12)
{
v=2;
y=12;
x=11;
j=8;
controles();
base10_=luis[0]*1+luis[1]*12+luis[2]*144+luis[3]*1728+luis[4]*20736+luis[5]*248832+luis[6]*2985984+luis[7]*35831808;
resultado();
cambio_base();
}
}
base_13() //C
{
base=13;
if (base==13)
{
v=2;
y=13;
x=12;
j=8;
controles();
base10_=luis[0]*1+luis[1]*13+luis[2]*169+luis[3]*2197+luis[4]*28561+luis[5]*371293+luis[6]*4826809+luis[7]*62748517;
resultado();
cambio_base();
}
}
base_14() //D
{
base=14;
if (base==14)
{
v=2;
y=14;
x=13;
j=7;
controles();
base10_=luis[0]*1+luis[1]*14+luis[2]*196+luis[3]*2744+luis[4]*38416+luis[5]*537824+luis[6]*7529536;
resultado();
cambio_base();
}
}
base_15() //E
{
base=15;
if (base==15)
{
v=2;
y=15;
x=14;
j=7;
controles();
base10_=luis[0]*1+luis[1]*15+luis[2]*225+luis[3]*3375+luis[4]*50625+luis[5]*759375+luis[6]*11390625;
resultado();
cambio_base();
}
}
base_16() //F
{
base=16;
if (base==16)
{
v=2;
y=16;
x=15;
j=7;
controles();
base10_=luis[0]*1+luis[1]*16+luis[2]*256+luis[3]*4096+luis[4]*65536+luis[5]*1048576+luis[6]*16888216;
resultado();
cambio_base();
}
}
base_17() //G
{
base=17;
if (base==17)
{
v=2;
y=17;
x=16;
j=7;
controles();
base10_=luis[0]*1+luis[1]*17+luis[2]*289+luis[3]*4913+luis[4]*83521+luis[5]*1419857+luis[6]*24137569;
resultado();
cambio_base();
}
}
base_18() //H
{
base=18;
if (base==18)
{
v=2;
y=18;
x=17;
j=7;
controles();
base10_=luis[0]*1+luis[1]*18+luis[2]*324+luis[3]*5862+luis[4]*104976+luis[5]*1889568+luis[6]*34012224;
resultado();
cambio_base();
}
}
base_19() //I
{
base=19;
if (base==19)
{
v=2;
y=19;
x=18;
j=7;
controles();
base10_=luis[0]*1+luis[1]*19+luis[2]*361+luis[3]*6859+luis[4]*130321+luis[5]*2476099+luis[6]*47045881;
resultado();
cambio_base();
}
}
base_20() //J
{
base=20;
if (base==20)
{
v=2;
y=20;
x=19;
j=7;
controles();
base10_=luis[0]*1+luis[1]*20+luis[2]*400+luis[3]*8000+luis[4]*160000+luis[5]*3200000+luis[6]*64000000;
resultado();
cambio_base();
}
}
base_21() //K
{
base=21;
if (base==21)
{
v=2;
y=21;
x=20;
j=7;
controles();
base10_=luis[0]*1+luis[1]*21+luis[2]*441+luis[3]*9261+luis[4]*194481+luis[5]*4084101+luis[6]*85766121;
resultado();
cambio_base();
}
}
base_22() //L
{
base=22;
if (base==22)
{
v=2;
y=22;
x=21;
j=6;
controles();
base10_=luis[0]*1+luis[1]*22+luis[2]*484+luis[3]*10648+luis[4]*234256+luis[5]*5153632;
resultado();
cambio_base();
}
}
base_23() //M
{
base=23;
if (base==23)
{
v=2;
y=23;
x=22;
j=6;
controles();
base10_=luis[0]*1+luis[1]*23+luis[2]*529+luis[3]*12167+luis[4]*279841+luis[5]*6436343;
resultado();
cambio_base();
}
}
base_24() //N
{
base=24;
if (base==24)
{
v=2;
y=24;
x=23;
j=6;
controles();
base10_=luis[0]*1+luis[1]*24+luis[2]*576+luis[3]*13824+luis[4]*331776+luis[5]*7962624; resultado();
cambio_base();
}
}
base_25() //O
{
base=25;
if (base==25)
{
v=2;
y=25;
x=24;
j=6;
controles();
base10_=luis[0]*1+luis[1]*25+luis[2]*625+luis[3]*15625+luis[4]*390625+luis[5]*9765625;
resultado();
cambio_base();
}
}
base_26() //P
{
base=26;
if (base==26)
{
v=2;
y=26;
x=25;
j=6;
controles();
base10_=luis[0]*1+luis[1]*26+luis[2]*676+luis[3]*17576+luis[4]*456976+luis[5]*11881376;
resultado();
cambio_base();
}
}
base_27() //Q
{
base=27;
if (base==27)
{
v=2;
y=27;
x=26;
j=6;
controles();
base10_=luis[0]*1+luis[1]*27+luis[2]*729+luis[3]*19683+luis[4]*531441+luis[5]*14348907;
resultado();
cambio_base();
}
}
base_28() //R
{
base=28;
if (base==28)
{
v=2;
y=28;
x=27;
j=6;
controles();
base10_=luis[0]*1+luis[1]*28+luis[2]*784+luis[3]*21952+luis[4]*614656+luis[5]*17210368;
resultado();
cambio_base();
}
}
base_29() //S
{
base=29;
if (base==29)
{
v=2;
y=29;
x=28;
j=6;
controles();
base10_=luis[0]*1+luis[1]*29+luis[2]*841+luis[3]*24389+luis[4]*707281+luis[5]*20511149;
resultado();
cambio_base();
}
}
base_30() //T
{
base=30;
if (base==30)
{
v=2;
y=30;
x=29;
j=6;
controles();
base10_=luis[0]*1+luis[1]*30+luis[2]*900+luis[3]*27000+luis[4]*810000+luis[5]*24300000;
resultado();
cambio_base();
}
}
base_31()
{
base=31;
if (base==31)
{
v=2;
y=31;
x=30;
j=6;
controles();
base10_=luis[0]*1+luis[1]*31+luis[2]*961+luis[3]*29791+luis[4]*923521+luis[5]*28629151;
resultado();
cambio_base();
}
}
base_32()
{
base=32;
if (base==32)
{
v=2;
y=32;
x=31;
j=6;
controles();
base10_=luis[0]*1+luis[1]*32+luis[2]*1024+luis[3]*32768+luis[4]*1048576+luis[5]*33554432;
resultado();
cambio_base();
}
}
controles()///INCLUYE LAS FUNCIONES CONTROL Y CONTROL_2
{
control_2();
for(m=0;m<cociente15;m++)
{
if(luis[m]>x)
{
control();
}
}
}
numero() ///PARA RECOGER EL NUMERO DE CUYA BASE QUEREMOS CALCULAR
{
///reinicializacion de variables
cont=0;
cociente15=0;
q=0;
for(i=0;i<100;i++)
{
luis[i]=0;
}
///reinicializacion por si se introduce un numero nuevo
printf("Introduce un numero:");
gets(pepe);
cont=strlen(pepe);
cociente15=cont;
cont--;
for(i=0;i<100;i++)
{
if ((pepe[i]=='A')||(pepe[i]=='B')||(pepe[i]=='C')||(pepe[i]=='D')||(pepe[i]=='E')||(pepe[i]=='F')||(pepe[i]=='G')||(pepe[i]=='H')||(pepe[i]=='I')||(pepe[i]=='J')||(pepe[i]=='K')||(pepe[i]=='L')||(pepe[i]=='M')||(pepe[i]=='N')||(pepe[i]=='O')||(pepe[i]=='P')||(pepe[i]=='Q')||(pepe[i]=='R')||(pepe[i]=='S')||(pepe[i]=='T')||(pepe[i]=='U')||(pepe[i]=='V'))
{
pepe[i]=pepe[i]-55;
q=pepe[i];
luis[cont]=q;
cont--;
}
else
{
s[0]=pepe[i];
q=atol(s);
luis[cont]=q;
cont--;
}
}
}
control() ///INDICA ERROR REFERENTE A LAS CIFRAS DEL NUMERO
{
clrscr();
printf("Error!!! En base %d no puedes introducir numeros que sean superiores a %d ",y,x);
getche();
clrscr();
exit(0);
}
control_2() ///INDICA ERROR REFERENTE A LA CANTIDAD DE CIFRAS
{
while(cociente15>j)
{
inst=inst+1;
if(inst==2)
{
clrscr();
printf("El numero que has introducido excede los caracteres permitidos");
getche();
printf("nnAdios");
getche();
exit(0);
}
printf("El numero que has introducido excede los caracteres permitidos.nTienes otra oportunidad.");
getche();
clrscr();
numero();
}
}
resultado() ///RESULTADO DE LA OPERACION EN BASE 10
{
clrscr();
printf("nn El resultado en base 10 es :%ld", base10_);
getche();
clrscr();
//exit(0);
}
cambio_base()
{
k=0;
juan[0]=base10_;
for(i=0;i<100;i++)
{
if(juan[i]>=base1)
{
juan[k+1]=juan[i]/base1;
maria[i]=juan[i]%base1;
if(maria[i]>9)
{
maria[i]=maria[i]+55;
}
k++;
}
}
if(juan[k]>9)
{
juan[k]=juan[k]+55;
}
if(juan[k]>9)
{
gotoxy(10,1);
printf("n%c",juan[k]);
//getche();
}
else
{
gotoxy(7,1);
printf("n%ld",juan[k]);
//getche();
}
// //for(i=0;i<k;i++)
for(i=k-1;i>-1;i--)
{
if(maria[i]>9)
{
gotoxy(r+1,2);
r++;
printf("%c",maria[i]);
//getche();
}
else
{
gotoxy(r+1,2);
r++;
printf("%ld",maria[i]);
//getche();
}
}
getche();
printf("nnFIN DEL NUMERO");
getche();
}