Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cómo convertir un número binario al tipo Real (https://www.clubdelphi.com/foros/showthread.php?t=54258)

kbaby 13-03-2008 15:17:40

Hola! Como nadie sabíamos hacerlo nos dijo que no nos explicó que se hacía con el for con downto ... pero bueno mañana tengo la posibilidad de entregarlo. He visto tu código y donde pone lenght ....¿no sería length?

En delphi, puse un edit y un button y metí el code enel button. Y cuando le doy a F9 me señala la linea donde dice Power diciendo de error: Undeclared identifier: 'Power'. Y luego otro error en la misma línea de que falta un ; porque dice Missing Operator semiclon xD


Siento ser así de pasado, pero bueno.... es que quiero aprender y quiero aprender mucho más... necesito hacer un proyecto para junio ! Y quiero empezar ya en mi casa.

kbaby 13-03-2008 15:20:50

He buscado en Delphi help, y me dice que la función Power es:
Power(const Base, Exponent: Extended): Extended;

¿No faltan las palabras en negrita?

Lepe 13-03-2008 15:25:41

Es obvio que lo ha escrito de memoria, así que es fácil cometer errores.

lenght es uno de mis errores más comunes :D

En la misma ayuda, te dice que power está en la unidad Math, por ende, tienes que poner :

uses Math;

para que compile.

Lo del punto y coma, pues lo corrijes y listo ;)

Las palabras en negritas, son la declaración de tipos de la función, es decir, te dice que recibe un tipo de dato en coma foltante (Extended), aunque un integer es totalmente compatible con ellos.

La palabra "const" viene a decir que esos parámetros no se van a modificar dentro de la función "power".

Saludos

kbaby 13-03-2008 15:27:56

No se donde poner uses Math;

Lo siento... xD mi inexperiencia... es 100%

Gracias por la rapidez tio.

Delphius 13-03-2008 15:31:52

kbaby,
una unidad viene así:

Código Delphi [-]
unit Unit1;

interface

uses
  // aqui viene la lista!

type

...

implementation

...

end;

Lee la ayuda kbaby... allí está todo... además si emplearas el buscador de los foros llegarías a hilos en donde se han expuesto estas preguntas.

Saludos,

kbaby 13-03-2008 15:36:04

Lo intento... pero como en esas ayudas viene información demás.. pues me es imposible encontrar la explicación. Necesito un manual que empieze desde cero.

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, math;

Aquí puse lo de math, pero me sigue señalando la linea donde está power.... diciendome tipo incompatible integer y extended y mission operartor semiclon...


pd: lo siento... :(

ixMike 13-03-2008 15:44:24

Missing operator or semicolon te sale seguramente porque te falta un puntocoma.

El otro error es porque has puesto un extended donde va un integer.

Desde luego necesitas un manual para empecar desde cero :D, en el FTP del club tenemos La cara oculta de Delphi 4, que va desde cero hasta experto ;)


Salu2.

kbaby 13-03-2008 15:44:28

Recomendadme un libro, que voy a salir a las 17.00 a comprarme un manual. Decidme titulos bueno porfavor. :) Quiero aprenderlo a fondo.

kbaby 13-03-2008 15:45:58

Pero... como corrigo esos errores :S yo veo todo con ;

Es que damos muy pocas cosas en informática :S (a veces digo que porque no os venís de profesores... xD)

Delphius 13-03-2008 15:50:49

Cita:

Empezado por kbaby (Mensaje 272988)
Pero... como corrigo esos errores :S yo veo todo con ;

Es que damos muy pocas cosas en informática :S (a veces digo que porque no os venís de profesores... xD)

kbaby, recuerda que no estamos a tu lado no podemos ver lo que hiciste.
Si expusieras el código que tienes hecho, con tus correcciones, podríamos saber que haces (o no haces).

Si estás dispuesto a comprar libros, Busca "La Biblia de... " de Marcos Cantú.

Saludos,

ixMike 13-03-2008 15:52:20

Cita:

Empezado por kbaby (Mensaje 272988)
Pero... como corrigo esos errores :S yo veo todo con ;

Pues el sistema del foro es que nos pongas el código que tienes para ver cómo podemos ayudarte :)
Si no es cosa de ";" será algún operador (como algo:=otracosa;)

kbaby 13-03-2008 15:53:42

Aquí esta lo que tengo:

Cita:

procedure TForm1.Button1Click(Sender: TObject);
var
n, Cantidad, Numero: Integer;
begin
Numero:=0;
Cantidad:=Length(Edit1.Text);
for n:=Cantidad downto 1 do
begin
If Edit1.Text[n]='1' then
Numero:=Numero + Power ( 2, Cantidad - n);
end;
ShowMessage('El binario '+Edit1.Text' equivale al número entero '+IntToStr(Numero));

end;

end.
Y sí, voy a comprar un libro, voy a ir viendo esos que me informáis.

maeyanes 13-03-2008 16:02:59

Hola...

Aquí tu código corregido... checa el comentario...

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  n, Cantidad, Numero: Integer;
begin
  Numero := 0;
  Cantidad := Length(Edit1.Text);
  for n := Cantidad downto 1 do
    If Edit1.Text[n] = '1' then
      Numero := Numero + Power(2, Cantidad - n);
  // En esta línea tenías el error, un operador + que faltaba
  ShowMessage('El binario ' + Edit1.Text + ' equivale al número entero ' + IntToStr(Numero))
end;

Saludos...

kbaby 13-03-2008 16:06:32

Madre mía!!! Por esa cosa me sale todo eso... dios muchas gracias, Ahora queda el último error, me sale:
Incompatible types: 'Integer' and 'Extended'.
Y me señala la línea:
Numero := Numero + Power(2, Cantidad - n);


¿Por qué?


PD: Gracias.

maeyanes 13-03-2008 16:13:36

Hola...

El problema está en que Número es una variable de tipo Integer y la función Power devuelve un valor del tipo Extended, entonces, al hacer:

Código Delphi [-]
Numero + Power(2, Cantidad - n);

El resultado se convierte automáticamente en Extended y ese valor no lo puedes asignar a la variable Numero, de ahí que te de ese error...

Prueba haciendo esto:

Código Delphi [-]
var
  n, Cantidad: Integer;
  Numero: Extended;



Saludos...

kbaby 13-03-2008 16:19:19

Nunca use lo de Extended
Ahora sale otro error aquí:

Código Delphi [-]
IntToStr(Numero))



Debido a que numero antes era integer... que tengo que poner en lugar de IntToStr. Nunca he estudiado (por ahora) ese tipo de variable.

maeyanes 13-03-2008 16:25:19

Hola...

Bueno si, ahora Numero no es de tipo Integer y es por eso que ya no puedes usar esa función..

Ahora tienes que usar: FloatToStr


Saludos...

kbaby 13-03-2008 16:34:07

Otra duda xD ¿float no era para cuando utilizabas una variable real?

Ya funciona! Muchas gracias a todos (aora vengo voy a ir a la libreria a comprarme eso) No cerreis el post, que ahora os comento cosas del libro y doy mas gracias a todos).

maeyanes 13-03-2008 16:42:07

El tipo Extended es un tipo de datos Real...

Por cierto, en Delphi ya no se usa el tipo de datos Float, se usa Double en su lugar...



Saludos...

ixMike 13-03-2008 16:46:10

Float, Double, Extended, Real, Currency y Comp (y no sé si alguno más) son distintos tipos de datos que sirven para almacenar números reales. La diferencia entre ellos es la cantidad de memoria que ocupan (y por tanto, la precisión que tienen). Aunque me parece que algunos son equivalentes a otros y sólo se mantienen por compatibilidad.


La franja horaria es GMT +2. Ahora son las 16:41:48.

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