Ayuda con programa de listas
Publicado por Ivan Lopez (1 intervención) el 29/05/2015 20:08:25
/*
Utilizar una lista para conversión de un número decimal a binario.
El programa debe dar las siguientes opciones al usuario: a. Convertir un número decimal a binario, b. Consultar los números decimales convertidos,
mostrando el número decimal y su correspondiente binario.
*/
//este es el programa
#include<iostream.h>
struct historico{
int decimal;
char *binario;
historico *sig, *ant;
};
struct residuos{
int residuo,cociente;
residuos *sig, *ant;
};
residuos *nr, *cr, *fr, *aux;
historico *nh, *ch, *fh, *a;
int M, op, again, i;
int contador;
void ingresar();
void mostrar ();
//************************************
int main(){
/* inicializacion */
//historico
ch=new historico;
fh=new historico;
ch->ant=ch;
fh->sig=fh;
ch->sig=fh;
fh->ant=ch;
//residuos
cr=new residuos;
fr=new residuos;
cr->ant=cr;
fr->sig=fr;
cr->sig=fr;
fr->ant=cr;
//menu
do{
cout<<"MENU"<<endl<<endl;
cout<<"1. Convertir un numero decimal a binario"<<endl;
cout<<"2. Mostrar los numeros convertidos"<<endl<<endl;
cout<<"ingrese la opcion requerida"<<endl;
cin>>M;
cout<<endl;
switch(M){
case 1:{
contador=0;
ingresar ();
cout<<"el numero al que se convierte es ";
mostrar ();
}
break;
default:
{
}
}
cout<<endl;
cout<<"ingrese 0 para regresar al menu"<<endl;
cin>>op;
}while (op==0);
system("pause");
return 0;
// delete ch,fh,cr,fr;
}
void ingresar()
{
nh=new historico;
cout<<"ingrese el numero que desea convertir"<<endl;
cin>>nh->decimal;
do{
nr=new residuos;
nr->sig=fr;
nr->ant=fr->ant;
fr->ant->sig=nr;
fr->ant=nr;
if(cr->sig==nr)
{
nr->cociente=(nh->decimal)/2;
nr->residuo=(nh->decimal)%2;
cout<<nr->residuo<<" "<<nr->cociente<<endl;
}
else
{
nr->cociente=(nr->ant->cociente)/2;
nr->residuo=(nr->ant->cociente)%2;
cout<<nr->residuo<<" "<<nr->cociente<<endl;
}
contador++;
}while(nr->cociente>=2);
}
void mostrar ()
{
aux=fr->ant;
cout<<aux->cociente;
while(aux!=cr)
{
cout<<aux->residuo;
aux=aux->ant;
}
}
/*void bina (historico x[], int t)
{
for (i=0,i<t,i++)
{
}
}*/
por favor ayuda para mostrar y corregir lo que tengo mal
Utilizar una lista para conversión de un número decimal a binario.
El programa debe dar las siguientes opciones al usuario: a. Convertir un número decimal a binario, b. Consultar los números decimales convertidos,
mostrando el número decimal y su correspondiente binario.
*/
//este es el programa
#include<iostream.h>
struct historico{
int decimal;
char *binario;
historico *sig, *ant;
};
struct residuos{
int residuo,cociente;
residuos *sig, *ant;
};
residuos *nr, *cr, *fr, *aux;
historico *nh, *ch, *fh, *a;
int M, op, again, i;
int contador;
void ingresar();
void mostrar ();
//************************************
int main(){
/* inicializacion */
//historico
ch=new historico;
fh=new historico;
ch->ant=ch;
fh->sig=fh;
ch->sig=fh;
fh->ant=ch;
//residuos
cr=new residuos;
fr=new residuos;
cr->ant=cr;
fr->sig=fr;
cr->sig=fr;
fr->ant=cr;
//menu
do{
cout<<"MENU"<<endl<<endl;
cout<<"1. Convertir un numero decimal a binario"<<endl;
cout<<"2. Mostrar los numeros convertidos"<<endl<<endl;
cout<<"ingrese la opcion requerida"<<endl;
cin>>M;
cout<<endl;
switch(M){
case 1:{
contador=0;
ingresar ();
cout<<"el numero al que se convierte es ";
mostrar ();
}
break;
default:
{
}
}
cout<<endl;
cout<<"ingrese 0 para regresar al menu"<<endl;
cin>>op;
}while (op==0);
system("pause");
return 0;
// delete ch,fh,cr,fr;
}
void ingresar()
{
nh=new historico;
cout<<"ingrese el numero que desea convertir"<<endl;
cin>>nh->decimal;
do{
nr=new residuos;
nr->sig=fr;
nr->ant=fr->ant;
fr->ant->sig=nr;
fr->ant=nr;
if(cr->sig==nr)
{
nr->cociente=(nh->decimal)/2;
nr->residuo=(nh->decimal)%2;
cout<<nr->residuo<<" "<<nr->cociente<<endl;
}
else
{
nr->cociente=(nr->ant->cociente)/2;
nr->residuo=(nr->ant->cociente)%2;
cout<<nr->residuo<<" "<<nr->cociente<<endl;
}
contador++;
}while(nr->cociente>=2);
}
void mostrar ()
{
aux=fr->ant;
cout<<aux->cociente;
while(aux!=cr)
{
cout<<aux->residuo;
aux=aux->ant;
}
}
/*void bina (historico x[], int t)
{
for (i=0,i<t,i++)
{
}
}*/
por favor ayuda para mostrar y corregir lo que tengo mal
Valora esta pregunta


0