![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
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. |
|
#2
|
||||
|
||||
|
Cita:
![]() 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:
¿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:
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:
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:
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. |
|
#3
|
||||
|
||||
|
Dios! Que pasanda de escribir. Pues sí soy el mismo kbaby con mucho sueño pero bueno xD y con pocas ganas porque estoy estudiando a petrarca a la vez así que imagínate... =) Petrarca, fray luis de leon ... etc
La funcion Length si la he visto, por lo demás.. nothing de nothing xD. Voy a intentar ir captando pasito a pasito , lo que me has escrito. Volveré... xD PD: Nosotros no estudiamos, simplemente vamos viendo "funciones" poco a poco, como te comenté, primero el for, luego if, luego copy... etc etc xD PD2: Lo que quiero es pasar de un nº binario (10101010101010) a un numero normal (real supongo) por ejemplo 69 :P Última edición por kbaby fecha: 12-03-2008 a las 23:13:16. Razón: mas mensajes |
|
#4
|
||||
|
||||
|
Me he atrancado aquí:
const Cadena = 'ABCDEF'; var TercerCaracter: Char; begin TercerCaracter:=Cadena[3]; //TercerCaracter ahora debe valer "C" end; ABCDEF ... supongo que ese código ira en un button... pero como voy a poner en ese button ABCDEF xD PD: Soy... principiante (mas por debajo) PD2: He leído el código completo y e ido transladando todo a lo que yo sé y me atranqué en: If Edit1.Text[n]='1' then //Si el número es un uno Inc(Numero, Power(2, Length(Edit1.Text)-n)); Edit1.Text[n] -> No lo he visto nunca después de text añadir [n] ... T_T Última edición por kbaby fecha: 12-03-2008 a las 23:23:54. Razón: otra duda |
|
#5
|
||||
|
||||
|
Cita:
Ni eso, eres un alumno ![]() No es cuestión de Text, sino de cualquier variable o propiedad o función de tipo String, puedes acceder al caracter n como ya te he explicado. Dile a tu profesor(a) que os enseñe un poco más de lo básico antes de empezar con nuevas funciones ![]() Salu2, y que vaya bien con la literatura ![]() |
|
#6
|
||||
|
||||
|
Al fin termine literatura xD Voy a intentar hacer eso de binario a decimal de esta forma.
Guardare la longitud del binario en una variable cantidad Hare un for para que se repita tantas veces como esa cantidad
|
|
#7
|
||||
|
||||
|
Volvamos a ver mi código:
Lenght(Edit1.Text) es lo que tú quieres llamar cantidad, pero si así te aclaras mejor, pues entonces hazlo ![]() If Edit1.Text[n]='1' then significa "si el carácter n es uno entonces...". Así es como discrimino al cero. La función Inc incrementa la variable Numero en la cantidad que se le dice en el segundo parámetro. Estas dos líneas hacen lo mismo:
Lo que hago es incrementarlo la potencia de dos, teniendo en cuenta que el exponente es el orden del carácter leído, comenzando por la derecha y desde cero. Si te fijas, cantidad - n ya hace esto (al principio vale 0, y al final cantidad - 1) A ver si de esta forma te aclaras más:
¿Mejor así? ![]() Salu2. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|