AUXILIO
DESESPERADO Y SIN ENCONTRAR RESPUETA NECESITO UNA YUDA URGENTE
TENGO QUE HACER ESTE PROGRAMA Y NO ME SALE
Diseñe un programa con la utilización de funciones que permita el ingreso de un número entero y calcule su valor en una base distinta a la decimal. Las bases que puede consultar el usuario son: binaria, octal, hexadecimal. En caso que el número sea negativo, el programa sólo lo puede transformar a su representación en Complemento 2.
El programa debe contener:
- Una función que permita transformar el número ingresado por el usuario a la base que éste consulte.(parámetros por referencia)
- Una función que entregue el valor del complemento-2 para el caso que el número sea negativo.(parámetros por valor)
TENGO ESTO
main()
int *
int n;
{
int b*
{printf("nIntroduzca un numero:n"); //en caso de ser negativo: transformar altiro a c-2, osea, no preguntar base.
scanf("%d%",&n);}
if (n<0) /*complemento c-2*/
{
cbin (*int*entero)
}
else /*continua*/
{
printf("nIntroduzca la base:n");
scanf("%d%",&b);
}
if((n<0)||(b<=1)||(b>10)||(b==3)||(b==4)||(b==5)||(b==6)||(b==7)||(b==9))
{printf("nError: datos incorrectosn");}
else
{printf("nNumero convertido: ");}
if(n==0)
printf("0");
else
if (b==2)
cbin(int*)
else
if(b==8)
bin=0, potencia=1;
{
while(n>0)
{
resto=n%2;
n=n/8;
bin=bin+resto*potencia;
potencia=potencia*10;
}
*entero = bin;
}
if(resto>9)
{
nuevonumero=nuevonumero*10+resto*potencia;
potencia=potencia*100;
}
else
{
nuevonumero=nuevonumero+resto*potencia;
potencia=potencia*10;
}
else
(b==16)
bin=0, potencia=1;
while(n>0)
{
resto=n%2;
n=n/8;
bin=bin+resto*potencia;
potencia=potencia*10;
}
if(resto>9)
{
nuevonumero=nuevonumero*10+resto*potencia;
potencia=potencia*100;
}
else
{
nuevonumero=nuevonumero+resto*potencia;
potencia=potencia*10;
}
}
{
cbin (int*entero)
{
bin=0, potencia=1;
while(n>0)
{
resto=n%2;
n=n/2;
bin=bin+resto*potencia;
potencia=potencia*10;
}
*entero = bin;
}
{
if(resto==1)
{
resto=0;
}
else
{
resto=1;
}
bin=bin+1;
}
}
/*hay que hacer una funcion que pase a c-2 com parametros por valor, osea usando copias del valor, sin punteros:
pasos:
pasar el numero en decimal a binario, usando divisiones (%)sucesivas por 2. el resto a analizar se saca del mismo modo(/).
con un if, que vea si el resto que se esta analiizando es 1 o 0,
if(resto==1) // el resto va a ser solo 1 o 0.
{
resto=0;
}
else
{
resto=1;
}
luego hacer la suma binaria, es decir, al numero que te dio, el que fuiste almacenando en una variable, se le suma 1 en binario(como el ejercicio de la profe.)
listo el numero en c-2.
la otra funcion es con parametros por referencia, o sea usar punteros
para esto divides (sucesivamente) el numero y lo almacenas en una variable.
mas adelante pones (dentro del bucle):
if(resto>9)
{
nuevonumero=nuevonumero*10+resto*potencia;
potencia=potencia*100;
}
else
{
nuevonumero=nuevonumero+resto*potencia;
potencia=potencia*10;
}
*/
QUE DIBLOS ME HACE FALTA O QUE DIBLOS ESTOY HACIENDO MAL O TODO ESTA MAL
TENGO QUE HACER ESTE PROGRAMA Y NO ME SALE
Diseñe un programa con la utilización de funciones que permita el ingreso de un número entero y calcule su valor en una base distinta a la decimal. Las bases que puede consultar el usuario son: binaria, octal, hexadecimal. En caso que el número sea negativo, el programa sólo lo puede transformar a su representación en Complemento 2.
El programa debe contener:
- Una función que permita transformar el número ingresado por el usuario a la base que éste consulte.(parámetros por referencia)
- Una función que entregue el valor del complemento-2 para el caso que el número sea negativo.(parámetros por valor)
TENGO ESTO
main()
int *
int n;
{
int b*
{printf("nIntroduzca un numero:n"); //en caso de ser negativo: transformar altiro a c-2, osea, no preguntar base.
scanf("%d%",&n);}
if (n<0) /*complemento c-2*/
{
cbin (*int*entero)
}
else /*continua*/
{
printf("nIntroduzca la base:n");
scanf("%d%",&b);
}
if((n<0)||(b<=1)||(b>10)||(b==3)||(b==4)||(b==5)||(b==6)||(b==7)||(b==9))
{printf("nError: datos incorrectosn");}
else
{printf("nNumero convertido: ");}
if(n==0)
printf("0");
else
if (b==2)
cbin(int*)
else
if(b==8)
bin=0, potencia=1;
{
while(n>0)
{
resto=n%2;
n=n/8;
bin=bin+resto*potencia;
potencia=potencia*10;
}
*entero = bin;
}
if(resto>9)
{
nuevonumero=nuevonumero*10+resto*potencia;
potencia=potencia*100;
}
else
{
nuevonumero=nuevonumero+resto*potencia;
potencia=potencia*10;
}
else
(b==16)
bin=0, potencia=1;
while(n>0)
{
resto=n%2;
n=n/8;
bin=bin+resto*potencia;
potencia=potencia*10;
}
if(resto>9)
{
nuevonumero=nuevonumero*10+resto*potencia;
potencia=potencia*100;
}
else
{
nuevonumero=nuevonumero+resto*potencia;
potencia=potencia*10;
}
}
{
cbin (int*entero)
{
bin=0, potencia=1;
while(n>0)
{
resto=n%2;
n=n/2;
bin=bin+resto*potencia;
potencia=potencia*10;
}
*entero = bin;
}
{
if(resto==1)
{
resto=0;
}
else
{
resto=1;
}
bin=bin+1;
}
}
/*hay que hacer una funcion que pase a c-2 com parametros por valor, osea usando copias del valor, sin punteros:
pasos:
pasar el numero en decimal a binario, usando divisiones (%)sucesivas por 2. el resto a analizar se saca del mismo modo(/).
con un if, que vea si el resto que se esta analiizando es 1 o 0,
if(resto==1) // el resto va a ser solo 1 o 0.
{
resto=0;
}
else
{
resto=1;
}
luego hacer la suma binaria, es decir, al numero que te dio, el que fuiste almacenando en una variable, se le suma 1 en binario(como el ejercicio de la profe.)
listo el numero en c-2.
la otra funcion es con parametros por referencia, o sea usar punteros
para esto divides (sucesivamente) el numero y lo almacenas en una variable.
mas adelante pones (dentro del bucle):
if(resto>9)
{
nuevonumero=nuevonumero*10+resto*potencia;
potencia=potencia*100;
}
else
{
nuevonumero=nuevonumero+resto*potencia;
potencia=potencia*10;
}
*/
QUE DIBLOS ME HACE FALTA O QUE DIBLOS ESTOY HACIENDO MAL O TODO ESTA MAL
