Backup proyecto Joyfe - Borland
This commit is contained in:
101
CPP/BASE.CPP
Normal file
101
CPP/BASE.CPP
Normal file
@ -0,0 +1,101 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <conio.h>
|
||||
|
||||
int digitos,baseini,basefinal,num,numfinal,tabla[80],tabla_bien[80];
|
||||
|
||||
int Pedir_Base();
|
||||
int Pedir_Num(int baseini);
|
||||
int BaseDiez_Base(int num,int basefinal);
|
||||
int Transform(int num);
|
||||
void Imprimir_tabla(int digitos);
|
||||
|
||||
void main() {
|
||||
clrscr();
|
||||
baseini=Pedir_Base();
|
||||
num=Pedir_Num(baseini);
|
||||
basefinal=Pedir_Base();
|
||||
digitos=BaseDiez_Base(num,basefinal);
|
||||
Imprimir_tabla(digitos);
|
||||
|
||||
printf("\nPulse una tecla para finalizar ...");
|
||||
getch();
|
||||
|
||||
}
|
||||
|
||||
int Pedir_Base() {
|
||||
int b;
|
||||
do {
|
||||
printf("\nIntroduce la Base: ");
|
||||
fflush(stdin);
|
||||
scanf("%d",&b);
|
||||
} while (b<2 || b>16);
|
||||
return(b);
|
||||
}
|
||||
|
||||
int Pedir_Num(int baseini) {
|
||||
int seguir=1,k=0,nuevo=0,numero;char n=0;
|
||||
printf("Introduce un n<>mero: ");
|
||||
while (seguir) {
|
||||
fflush(stdin); cscanf("%1c",&n);
|
||||
if (n==13)
|
||||
seguir=0;
|
||||
else
|
||||
k=Transform(n);
|
||||
if (seguir)
|
||||
if (k<baseini) {
|
||||
numero=nuevo+k;
|
||||
nuevo=numero*baseini;
|
||||
}
|
||||
else {
|
||||
gotoxy(wherex()-1,wherey());
|
||||
printf(" ");
|
||||
gotoxy(wherex()-1,wherey());
|
||||
}
|
||||
}
|
||||
return (numero);
|
||||
}
|
||||
|
||||
int BaseDiez_Base(int num,int basefinal) {
|
||||
|
||||
int n=0,con=0,resto=0,pos=0,i=0,digitos=0;
|
||||
n=num; con=0;
|
||||
while (n!=0) {
|
||||
resto=(n%basefinal);
|
||||
n=(n/basefinal);
|
||||
tabla[con]=resto;
|
||||
printf("\n guardo en tabla[%d]=%d",con,resto);
|
||||
digitos=con;
|
||||
con++;
|
||||
}
|
||||
pos=0;i=(con-1);
|
||||
for (i;i>=0;i--) {
|
||||
tabla_bien[pos]=tabla[i];
|
||||
printf("\ntablabien[%d]=%d",i,tabla_bien[pos]);
|
||||
pos++;
|
||||
}
|
||||
return(digitos);
|
||||
}
|
||||
|
||||
int Transform(int num) {
|
||||
int k=0;
|
||||
if (num>=48 && num <=57)
|
||||
k=(num-48);
|
||||
else
|
||||
if (num>=65 && num <=70)
|
||||
k=(num-55);
|
||||
else
|
||||
if (num>=97 && num <=102)
|
||||
k=(num-87);
|
||||
else
|
||||
k=99;
|
||||
return(k);
|
||||
}
|
||||
|
||||
void Imprimir_tabla(int digitos) {
|
||||
//printf("\n llegan digitos=%d\n",digitos);
|
||||
printf("\nEl n<>mero pedido es: ");
|
||||
for (int i=0;i<=digitos;i++)
|
||||
printf("%x",tabla_bien[i]);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user