• Martes 14 de Mayo de 2024, 21:51

Autor Tema:  Fraciones #.# A Binario Atravez De Cadenas  (Leído 2110 veces)

angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Fraciones #.# A Binario Atravez De Cadenas
« en: Martes 20 de Febrero de 2007, 01:48 »
0
estoy haciendo un programa que convierta un numero fraccionario a fraccion binaria, ejemplo 1.2 =001.010.  tengo la idea de como resolverlo, pero me quedo a menos de la mitad del problema. lo pretendo resolver de la siguiente manera:

*leo el numero como una cadena
*localizo la parte entera y la copio a otra cadena, para konvertirlo a numero (con el atoi).
*localizo la parte fracionario, elimino el punto y lo copio a otra cadena para convertirlo(atoi).
convierto los numeros, los convierto a cadena y los concateno con otra funcion y una que contega el punto, y los imprimo.


pero aki esta lo uniko k he podido resolver(que no es mucho)

# include <conio.h>
# include <stdio.h>
# include <string.h>

void Decimal_Binario(void)
{
 char numero[80],*aux,*aux2;
 textcolor(3);
 cprintf("Numero a convertir:");
 gets(numero);
 aux=strchr(numero,'.');
 printf("%s",aux);
 getch();
}

void main(void)
{
Decimal_Binario();
}
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Fraciones #.# A Binario Atravez De Cadenas
« Respuesta #1 en: Martes 20 de Febrero de 2007, 02:21 »
0
Huuuuy, cuidado:

#1 Define fraccion. (para mi es 1/2 por decir algo)
#2 Define decimal. (para mi es 0.5 por decir algo)

 :rolleyes:

http://es.wikipedia.org/wiki/Fracción
http://es.wikipedia.org/wiki/Número_decimal
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Re: Fraciones #.# A Binario Atravez De Cadenas
« Respuesta #2 en: Martes 20 de Febrero de 2007, 03:01 »
0
ok, mira dige francion pork son numeros decimales osea base 10. pero si son komunmente llamdo decimales 1.34354, 0.5675, 676.78787 y asi

angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Re: Fraciones #.# A Binario Atravez De Cadenas
« Respuesta #3 en: Martes 20 de Febrero de 2007, 16:24 »
0
las definiciones las entiendo y se komo resolverlo matamaticamente, y elalgoritmo pues ya lo poste en la apertura del tema. mi problema esta en hacer las comparacion en que si el elemento de la cadena es distionto de '.' lo kopie  a la otra cadena, y k despues del punto lo kopie a otra cadena.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Fraciones #.# A Binario Atravez De Cadenas
« Respuesta #4 en: Martes 20 de Febrero de 2007, 18:04 »
0
Entonces, ¿tu problema es separar las dos partes? Lo puedes hacer de varias formas, con un ciclo recorriendo desde el primer caracter, contando hasta encontrar la aparición del punto, entonces copias el número de caracteres recorridos antes de encontrar el punto. Con eso tienes la parte entera, y para la parte decimal, utilizas el mismo puntero a la cadena original y le sumas los caracteres que contaste (más 1), y lo usas como "source/fuente" para una copia con strcpy.

Otra, es usando tokens:
Código: Text
  1.  
  2.   char cadena[] = &#34;123.456&#34;;
  3.   char entero[ 15 ];
  4.   char decimal[ 15 ];
  5.  
  6.   char* ptr;
  7.  
  8.   /* Usando tokens. */
  9.   ptr = strtok( cadena, &#34;.&#34; );
  10.   strcpy( entero, ptr );
  11.  
  12.   // Una segunda llamada
  13.   ptr = strtok( NULL, &#34;.&#34; );
  14.   strcpy( decimal, ptr );
  15.  
  16.   printf( &#34;entero: %s&#092;ndecimal: %s&#092;n&#34;, entero, decimal );
  17.  
  18.   system( &#34;pause&#34; );
  19.   return 0;
  20.  
  21.  

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Re: Fraciones #.# A Binario Atravez De Cadenas
« Respuesta #5 en: Miércoles 21 de Febrero de 2007, 16:48 »
0
gracias, eso me fue muy util, ya esta kasi listo el programa solo unos detallitos y ya.

me pasa cue cuando lo corro, le doy la opciona relaizar, entra a la opcion y me marca un error, no lo he chekado bien, pero se me preseta ese detalle.

angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Re: Fraciones #.# A Binario Atravez De Cadenas
« Respuesta #6 en: Miércoles 21 de Febrero de 2007, 19:53 »
0
no he podido solucionar el problema, si alguien puede decirme en k estoy mal, se los agradesere. he aki el codigo
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Fraciones #.# A Binario Atravez De Cadenas
« Respuesta #7 en: Jueves 22 de Febrero de 2007, 00:09 »
0
Antes del gets usa fflush, luego, también deberías procurar revisar qué te devuelve strtok, puesto que puede devolver NULL si el número introducido no tiene un punto, y entonces se presentará el error al intentar copiar la supuesta cadena para obtener los decimales.

Suerte,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Re: Fraciones #.# A Binario Atravez De Cadenas
« Respuesta #8 en: Jueves 22 de Febrero de 2007, 16:35 »
0
solucione el problema de la cadena, originalmente lo tenia pero se me bloque lo maquina y por no haber guardado se me borro y a la hora de hacerlo de nuevo se me olvido ponerlo de nuevo, tambien se me paso colocarle la funcion atoi en sus respectivas lugares, lo del punto aunno lo he solucionado pero puedohacerlo con un if,no? if(ptr==NULL)... me enkontre con elproblema que si le doy un numero mayor a dos digitos porenteroy dos por decimal se sicla el programa, sabes como puedo controlar eso? y esque unicamente maneja 8 digitos por lado, porejmplo se convierto 0.0 a binario me devulve 00000000.0000000, y quisieraqueen esa conversiòn me devolviera 000.000.


gracias por toda laayuda que mehas dado,muchas gracias. gracias a ti aprendiusar loos tokens, eso es algo nuevo para mi.


aprovecho a preguntar si no tienes un manual de C que me puedas facilitar,y otro de java, porque quiero aprender  a programar en èl.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Fraciones #.# A Binario Atravez De Cadenas
« Respuesta #9 en: Viernes 23 de Febrero de 2007, 14:46 »
0
Para la longitud, procura verificar primero cuántos caracteres se introdujeron, puedes hacerlo al inicio o una vez que tienes la parte entera y la decimal. De allí partes para determinar el número de dígitos binarios que mostrarás.

Tengo algunos manuales que he descargado, pero no los he leído (bueno, algunos), lo que te recomiendo ampliamente es conseguir un libro, creo que es más útil. El chiste es que el libro te sirva de guía, y en internet encontrarás tutoriales para aclarar/ahondar sobre algún tema en específico. De C++ te recomendaría "C++ Cómo programar" de Deitel, me ha gustado mucho, y creo que cualquiera de estos autores (C, VB, C#, Java) estaría bien.

También, en internet hay un par de libros gratuitos muy buenos (en inglés): Thinking in C++ (vol. 1 y 2) y Thinking in Java. Ambos de Bruce Eckel.

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Re: Fraciones #.# A Binario Atravez De Cadenas
« Respuesta #10 en: Viernes 2 de Marzo de 2007, 14:46 »
0
estube un poco ausente. gracias por toda la ayuda, estoy en busqueda de los libros.  muvhas gracias nuevamente.