#include <iostream>
#include <stdio.h>
#include <string>
#include <stdlib.h>
#include <iomanip>
#include <math.h>
#include <conio.h>
#include <fstream>
#include <cstring>
using
namespace std;
void
menu();
void escribirEnArchivo();
void llenarElArreglo (int num [], int digitos, int
base1);
int
convertirAadecimal (int num [], int digitos, int base1, int base2);
void
convertirAabase (int decimal, int base2);
int
checabase ();
int checabase2 ();
int main()
{
int digitos = 0;
int BASE1, BASE2;
int decim;
system("color F5");
cout<<"\n\t\t\311\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\273"<<endl;
cout<<"\t\t\272 **Con Este Programa** \n\t\t\272
se Puede Convertir Numeros \n\t\t\272
de Una base a otra(2,8,10,16).\n\n";
cout<<"\t\t\310\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\274\n"<<endl;;
BASE1 = checabase ();
cout<<
"\nQue cantidad de digitos es el numero a convertir?\n-) ";
scanf
("%d", &digitos);
int num
[digitos];
system("color
F0");
cout<<"\nIntroduce el numero que se va a convertir, digito
a"
"digito \n empezando con la cifra mas significativa\n\n";
llenarElArreglo
(num, digitos, BASE1);
decim =
convertirAadecimal (num, digitos, BASE1, BASE2);
BASE2 =
checabase2();
printf
("\n");
convertirAabase
(decim, BASE2);
system
("PAUSE");
return 0;
}
int checabase ()
{
int x;
cout<<"**** De que base es el numero a convertir
****\ntomando en cuenta que no puedes introducir otra base diferente de 2,8,10
y 16:?\n-) ";
scanf ("%d", &x);
if(x >=17)
{
printf("\n\n**El numero insertado rebaza la capacidad "
"por favor ingrese una base menor a 16**\n\n");
printf
("De que base es el numero a convertir?\n");
scanf
("%d", &x);
}
if(x <=-1)
{
printf("\n\n**El
numero insertado es mayor a la capacidad,"
"por favor ingrese una base mayor que cero**\n\n");
printf
("De que base es el numero a convertir?\n");
scanf
("%d", &x);
}
return x;
}
int checabase2 ()
{
int x;
printf
("\n\nA que base desea convertir el numero? \n");
scanf ("%d", &x);
if(x >=17)
{
printf("\n\n**El numero insertado es mayor a la
capacidad,"
"
por favor ingrese una base menor a 16**\n\n");
printf
("\n\nA que base desea convertir este numero? \n");
scanf
("%d", &x);
}
if(x <=-1)
{
cout<<"\n\n**El numero insertado se pasa de la capacidad
"
"
por favor inserte una base mayor a cero**\n\n"<<endl;
printf
("\n\nA que base desea convertir Este Numero? \n");
scanf
("%d", &x);
}
return x;
}
void llenarElArreglo (int num [], int digitos, int
BASE1)
{
int i,x, a;
for (i=0; i<digitos; i++)
{
printf
("\nIntroduce el %d
digito:\n-)", i+1);
scanf("%x",
&num[i]);
if (num[i]>=BASE1 ||
num[i]<0)
{
printf
("\n**Numero no valido para esta base**\n");
printf
("\nIntroduce el digito numero %d\n", i+1);
scanf("%x", &num[i]);
}
}
system("color
F0");
printf ("\nEl
numero que deseas convertir es: ");
for (i=0; i<digitos; i++)
printf ("%x", num
[i]);
}
int convertirAadecimal (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
convertirAabase (int decim, int BASE2)
{
int cociente1,resid,cont, i,j;
int convergente [50];
i=0;
do{
cociente1 =
decim/BASE2;
resid =
decim%BASE2;
convergente[i]
= resid;
decim = cociente1;
i+=1;
}while
(cociente1>0);
system("color
F5");
printf("La
conversion es igual a: ");
for (cont=i-1; cont>=0; cont--)
{
printf("%x", convergente [cont]);
}
cout<<"\n\n"<<endl;
cout<<"Integrantes:
"<<endl;
cout<<"Alejandro
MOndragon Perez\nLuis Fernando Gutierrez Monroy"<<endl;
}
void escribirEnArchivo(){
ofstream
salidaArchivo("estudiantes.txt", ios::out);
}


No hay comentarios:
Publicar un comentario