1
« en: Sábado 22 de Abril de 2006, 01:14 »
Oigan tengo un problema.. hace poco comence en esto de la programacion y quise hacer un programa que convirtiera de decimal a binario, decimal a octal y decimal a hexadecimal.. el programa me funciona super.. lo unico es que cuando dice.. desea realizar otra conversion? coloco 's' osea si.. realizo mi otra operacion y el resultado es la combinacion del resultado anterior con el presente.. ejemplo..
ingrese el numero a convertir a binario...:
ingreso por ejemplo 10.
y el resultado que tengo es 1010.. ¡correcto..¡
luego me dice..
desa hacer otra operacion s\n?
coloco s
elijo convertir decimal a binario..
coloco otra vez el 10 para convertirlo a binario
y el resultado no es 10 sino
424242421010...
¿QUISIERA SABER POR QUE PORFAVOR?
Este es el codigo
//NO SE COMO HACER PARA QUE PARA LA SEGUNDA VUELTA NO ME HEREDE LOS DATOS
#include<process.h>
#include<iostream.h>
#include<stdlib.h>
int a,i,b,op;
char resp='s';
void main()
{
cout<<system("color a");
char v[100];
while(resp=='s')
{
cout<<"\n\t\tQue desea Hacer" << endl;
cout<<"\n\t1-Convertir Decimal a Binario"<< endl;
cout<<"\n\t2-Convertir Decimal a Octal"<<endl;
cout<<"\n\t3-Convertir Decimal a Hexadecimal"<<endl;
cin>>op;
while(op<1||op>3)
{system("cls");
cout<<"\n\tOpcion Ivalida" << endl;
cout<<"\n\t1-Decimal a Binario"<< endl;
cout<<"\n\t2-Decimal a Octal"<<endl;
cout<<"\n\t3-Decimal a Hexadecimal"<<endl;
cin>>op;
}
switch(op)
{
case 1:
{
cout<<"\n\tIngrese el numero a convertir a binario.......:";
cin>>a;
int n=a;
for(i=0;i<=100;i++)
{if(a<1)
break;
v=a%2;
a=a/2;
b=b+1;
}
cout<<"\n\tEl numero "<<n <<" En binario es ";
for(i=b-1;i>=0;i--){
cout<< (int)v;}
}break;
case 2:
{
cout<<"\n\tIngrese el numero a convertir a Octal.......:";
cin>>a;
int n=a;
for(i=0;i<=100;i++)
{if(a<1)
break;
v=a%8;
a=a/8;
b=b+1;
}
cout<<"\n\tEl numero "<<n <<" En octal es ";
for(i=b-1;i>=0;i--){
cout<< (int)v;}
}break;
default:
{cout<<"\n\tIngrese el numero a convertir a hexadecimal.......:";
cin>>a;
double n=a;
for(i=0;i<=100;i++)
{if(a<1)
break;
v=a%16;
a=a/16;
b=b+1;
}
cout<<"\n\tEl numero "<<n <<" En Hexadecimal es ";
for(i=b-1;i>=0;i--){
if(v<=9)
cout<< (int)v;
else
if(v==10)
cout<< "A";
else
if(v==11)
cout<< "B";
else
if(v==12)
cout<< "C";
else
if(v==13)
cout<< "D";
else
if(v==14)
cout<< "E";
else if(v=15)
cout<< "F";
}
}
}
cout<<"\n\tOtra s/n?";
cin>>resp;
if(resp=='s')
system("cls");
else
system("pause");
}
}