Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
¡Será posible! Deberías haber empezado un poco antes, ¿no?

A ver qué te parece esto (no sé si funciona correctamente):

Código Delphi [-]
Function RealToBin(R: Real): String;
type
  TBReal = record
    B1, B2, B3, B4, B5, B6: Byte; //una estructura que ocupa lo mismo que un Real y puedes accederla byte a byte
   end;
  PBReal = ^TBReal; //Puntero a ese tipo
var
  V: PBReal;
  S: String;
begin
  V:=@R;
  S:=IntToBin(V^.B1, 8) + IntToBin(V^.B2, 8) + IntToBin(V^.B3, 8) + 
     IntToBin(V^.B4, 8) + IntToBin(V^.B5, 8) + IntToBin(V^.B6, 8);
  Result:=S;
end;


Espero que te sirva (mira a ver si puedes hacerlo tú con un puntero a una matriz, en vez de a una estructura ).

Salu2.
Responder Con Cita
  #2  
Antiguo 12-03-2008
Avatar de kbaby
kbaby kbaby is offline
Miembro
 
Registrado: oct 2007
Ubicación: Granada
Posts: 178
Poder: 19
kbaby Va por buen camino
Pero.. todo esto donde lo meto? En un button, en el fondo del programa... ¿donde? :S Soy un no-va-to xD con todas sus letras.
Responder Con Cita
  #3  
Antiguo 12-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por kbaby Ver Mensaje
Quiero un programa que haga esto, lo necesito locamente para mañana a las 8:30... así que imagínate xD jajaja.
Cita:
Empezado por kbaby Ver Mensaje
Pero.. todo esto donde lo meto? En un button, en el fondo del programa... ¿donde? :S Soy un no-va-to xD con todas sus letras.
Hola amigo kbaby, como se que tienes potencial y que no te da miedo entrarle a los golpes, pienso que puedes solucionar esa duda existencial que tienes, prueba las opciones que se te ocurran y decide donde estará mejor

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 12-03-2008
Avatar de kbaby
kbaby kbaby is offline
Miembro
 
Registrado: oct 2007
Ubicación: Granada
Posts: 178
Poder: 19
kbaby Va por buen camino
Es que no entiendo nada de lo que hay en el codigo, tenemos un nivel muy bajo, lo ultimo que dimos fue el: if, for y copy

Imagínate.

Por cierto... egostar... ¿tu jugabas a habbo?
Responder Con Cita
  #5  
Antiguo 12-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por kbaby Ver Mensaje
Es que no entiendo nada de lo que hay en el codigo, tenemos un nivel muy bajo, lo ultimo que dimos fue el: if, for y copy

Imagínate.
Es que es una funcion que puedes llamar desde cualquier parte de tu forma, ya sea un boton o un evento, la puedes llamar de esta manera

Código Delphi [-]
VariableString := RealToBin(19.25);

Cita:
Empezado por kbaby Ver Mensaje
Por cierto... egostar... ¿tu jugabas a habbo?
Pues no amigo kbaby ni lo conozco, cuando era joven como tú no existia ni siquiera la computadora, las TV eran blanco y negro, no existian los controles remotos, jugaba con carritos de madera y soldaditos de plomo.....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 12-03-2008
Avatar de kbaby
kbaby kbaby is offline
Miembro
 
Registrado: oct 2007
Ubicación: Granada
Posts: 178
Poder: 19
kbaby Va por buen camino
Wink

Mejor lo dejo... no tengo ni idea de que es
VariableString := RealToBin(19.25);

Es que en ese juego había un egostar :P por eso me sonaba jujuju.

Gracias por la ayuda.
Responder Con Cita
  #7  
Antiguo 12-03-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
Cita:
Empezado por kbaby Ver Mensaje
Mejor lo dejo... no tengo ni idea de que es
VariableString := RealToBin(19.25);
¿Estás seguro de que eres el mismo kbaby que con el que yo traté hace unas semanas? Porque me parece que entonces sabías mas

VariableString es una variable de tipo string, a la que se asigna el valor que retorna la función RealToBin (creada por mí) cuando le pasas el parámetro 19'25. RealToBin la puedes poner en varios sitios; te recomiendo en implementation.


Ahora tengo que pedir disculpas por un pequeño despiste que he tenido, te he dado la función inversa a la que buscabas :

Cita:
Empezado por kbaby
hacer una conversion de binario a un numero real
Esto lo que hace es coger un número real y pasarla a binario ^^

¿Estás seguro de que el número tiene que ser real? Porque con un entero la cosa queda muy fácil, pero con un real... mucho nivel para alumnos que sólo han visto if, for y copy.


Bueno, entonces consideremos el caso binario a entero. En los enlaces que te he puesto al principio hay una función que lo hace, pero vamos a pasar de ella, y vas a hacer tú mismo el método .

Para empezar, ¿cómo vas a recibir ese número binario? Seguramente lo escribirás en un edit, bueno, eso se espera. Ok.

Olvidémonos por un momento de la informática y dime: ¿sabes convertir un número en binario a decimal? Es decir, ¿sabes que 1010101010 es 682? Espero que sí : vas recoriendo los dígitos binario, de derecha a izquierda, sumando potencias de base 2.

Vale, ahora, ¿cómo aplicar este sistema en tu código Delphi? Veamos:

-Recorrer los carácteres de derecha a izquierda: El texto del edit se guarda en su propiedad Text, de tipo string. Si has estudiado sabrás que se pueden acceder a los distintos carácteres de un string como si de una matriz de Char se tratara. Así, para leer el 3er carácter harás:
Código Delphi [-]
const
  Cadena = 'ABCDEF';
var
  TercerCaracter: Char;
begin
  TercerCaracter:=Cadena[3];
  //TercerCaracter ahora debe valer "C"
end;

A diferencia de otros tipos o lenguajes, en Delphi el string comienza en el carácter 1, y no en el 0.

Pero, para recorrer de derecha a izquierda, ¿cómo hacerlo? Necesitarás un bucle (por la repetición) y saber cuántos carácteres tienes en el edit. Para lo segundo tienes la función Lenght (mira en la ayuda de Delphi para aprender cómo se usa, aunque es muy muy simple). Así, para recorrer todos los carácteres del edit haremos:

Código Delphi [-]
var
  n: integer;
begin
  for n:=Length(Edit1.Text) downto 1 do
    begin
    //Código
    end;
end;

Vale, ahora ya sólo queda calcular el número en sí. Pues con todo lo que sabemos, lo único que falta saber es cómo calcular una potencia; la función Power de la unit math nos lo da.

Toma, el código que tanto ansiabas:

Código Delphi [-]
var
  n, Numero: Integer;
begin
  Numero:=0; //Damos un valor inicial al número
  for n:=Lenght(Edit1.Text) downto 1 do
    begin
      If Edit1.Text[n]='1' then //Si el número es un uno
       Inc(Numero, Power(2, Length(Edit1.Text)-n));
    end;
ShowMessage('El binario '+Edit1.Text' equivale al número entero '+IntToStr(Numero));
end;

Espero que esté lo suficientemente claro. Cualquier función que no sepas para qué sirve, puedes buscarla en la ayuda de Delphi. Y recuerda añadir math a la uses.


Salu2.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Convertir un integer en Real osea IntToReal Kmef Varios 2 24-10-2007 19:40:34
Convertir a binario cadena de caracteres wgfs Varios 0 28-10-2006 00:58:28
Convertir una cifra de tipo real a su cantidad en letras reina Varios 7 11-08-2005 18:16:31
Como edito un variable de tipo real??? Rafe Varios 2 07-07-2005 01:15:45
Convertir Archivos DFM de binario a Texto (Text DFM) DiDi Varios 4 21-04-2005 19:39:43


La franja horaria es GMT +2. Ahora son las 23:55:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi