#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
FILE *doc;
using namespace std;
void pedirDatos(int num[],int numero,int baseInicial);
int conversor(int num[],int numero,int baseInicial,int
baseFinal);
void conversorBase(int decimal,int baseFinal);
int revisaBase();
int revisabaseFinal();
int main(int argc, char** argv) {
doc = fopen
("Resultados.txt","a+");
int r;
do{
r=1;
int
numero=0;
int
baseInicial,baseFinal;
int
decimal;
system("Title
CONVERSOR DE BASES");
cout<<"\t\tCentro
Universitario UAEM Atlacomulo"<<endl;
cout<<endl;
cout<<"Integrantes:"<<endl;
cout<<"--->Heivilina
Perez Arias"<<endl;
cout<<"--->Mayte Ricardo
Cruz"<<endl;
cout<<endl;
cout<<"\t\t\tPROGRAMA
CONVERSOR DE BASE A BASE"<<endl;
cout<<"\t\t\t(Binaria,Octal,Decimal
y Hexadecimal)"<<endl;
cout<<endl;
baseInicial=revisaBase();
cout<<"Digitos del numero
al convertir:"<<"\t";
cin>>numero;
int num[numero];
cout<<"Ingresa el numero a
convertir(Nota:Inserta cada numero por
separado):"<<"\t\t";
pedirDatos(num,numero,baseInicial);
decimal=conversor(num,numero,baseInicial,baseFinal);
baseFinal=revisabaseFinal();
cout<<endl;
conversorBase(decimal,baseFinal);
}while(r!=2);
return 0;
}
int revisaBase(){
int a;
cout<<"Base
del numero ingresado:"<<"\t";
cin>>a;
if (a>=17)
{
cout<<"La base maxima a
convertir es de 16,vuelve a ingresar la base:"<<"\t";
cout<<"Base del numero
ingresado: "<<"\t";
cin>>a;
return
a;
}
if(a<=-1)
{
cout<<"El numero ingresado es
menor a la minima base a convertir,vuelve a ingresar la base"<<endl;
cout<<"Base del numero ingresado:
"<<"\t";
cin>>a;
}
return a;
}
int revisabaseFinal ()
{
int a;
cout<<"Base a la que se desea
convertir el numero ingresado:";
cin>>a;
fprintf(doc, "\nConvertido a la
base: %d",a);
if (a>=17)
{
cout<<"La base maxima a convertir es de 16,vuelve a ingresar
la base:"<<endl;
cout<<"Base a la que se desea
convertir el numero ingresado:"<<endl;
cin>>a;
return a;
}
if(a<=-1)
{
cout<<"El numero ingresado es
menor a la minima base a convertir,vuelve a ingresar la base"<<endl;
cout<<"Base a la que se desea
convertir el numero ingresado: ";
cin>>a;
}
return a;
}
void pedirDatos(int num[],int numero, int baseInicial)
{
int i,a,b;
fprintf(doc,
"\nMi numero es:");
for(i=0;i<numero; i++)
{
cout<<"Ingresa
el digito numero
["<<i+1<<"]:"<<"\t";
cin>>num[i];
fprintf(doc, "%d",num[i]);
if (num[i]>=baseInicial || num[i]<0)
{
cout
<<"Numero no valido para esta base";
cout <<"Introduce el digito
numero "<<i+1;
cin>>num[i];
}
}
cout<<"El
numero que se quiere convertir es:"<<endl;
cout<<endl;
for (i=0; i<numero; i++)
cout<<num[i];
cout<<endl;
}
int
conversor(int num[],int numero,int baseInicial,int baseFinal)
{
int i, pot;
int x=0;
for
(i=numero-1, pot=0; i>=0, pot<numero; i--, pot++)
{
x+=
(pow(baseInicial, pot)* num[i]);
}
return
x;
}
void conversorBase(int decimal,int baseFinal)
{
int cociente,residuo,cont, i,j;
int
conv [50];
i=0;
do{
cociente = decimal/baseFinal;
residuo = decimal%baseFinal;
conv[i] = residuo;
decimal = cociente;
i+=1;
}while (cociente>0);
fprintf(doc,"\nLa conversion es:");
cout<<"La conversion es:";
for
(cont=i-1; cont>=0; cont--) {
printf("%x", conv [cont]);
fprintf(doc,"%x",conv[cont]);
}
fprintf(doc,
"\n_________________________________");
getch();
system("cls");}
PROGRAMA COMPILADO



No hay comentarios:
Publicar un comentario