Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-12-2006
Avatar de jorge1987
jorge1987 jorge1987 is offline
Miembro
 
Registrado: may 2005
Ubicación: Buenos Aires
Posts: 244
Poder: 19
jorge1987 Va por buen camino
Ecuacion en Javascript a Delphi

Bueno, mi problema, es que tengo la siguiente ecuacion en JavaScript, y necesito convertirla a Delphi, hasta ahora, yo creo haberla echo bien, pero resulto que me tira un error de Float, y estoy medio perdido.

Funcion en JScript:

Código:
function Encode(str, fld,fld2) {
a=1846
b=1835
str=((a-b)*(str-a)^(str-b)>>a)<<b
if ((str==1737089024) && (fld==5 ) && (fld2==33) ){ alert("Perfecto");}
	else {alert("Que lástima por tí");}
}
Funcion Mia:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
  Aux : Real;
  suma : Integer;
  I : Integer;
  A, B : Integer;
  Aux2 : Integer;
begin
  Aux2 := 0;
  A := 1846;
  B := 1835;
  For I := 11111 To 99999 Do
    Begin
      Edit1.Text := IntToStr(I);
      //Suma := StrToInt(Edit1.Text[1]);
      Suma := (StrToInt(Edit1.Text[1])+StrToInt(Edit1.Text[2])+StrToInt(Edit1.Text[3])+StrToInt(Edit1.Text[4])+StrToInt(Edit1.Text[5]));
      If Suma = 33 Then
        Begin
          Try
            //Aux := exp((I-b) * ln((a-b)*(I-a)));
            Aux := exp((a-b)*(I-a) * ln((I-b)));
            Edit1.Text := FloatToStr(Aux);
            Edit1.Text := IntToStr(StrToInt(Edit1.Text) Shr A);
            //Aux2 := aux Shr a;
            //Aux := Shl(Aux2);
            Edit1.Text := IntToStr(StrToInt(Edit1.Text) Shl A);
            Aux2 := StrToInt(Edit1.Text);
            If Aux2 = 1737089024 Then
              //exp((I-b) * ln((a-b)*(I-a)))
              ListBox1.Items.Add(IntToStr(I));
          Except
            //ListBox1.Items.Add('no ' + IntToStr(I));
          End;
          //Aux := (Aux + 1)
        End;
    End;
 // Aux := exp(2 * ln(8));
 // Aux := Trunc(Aux);
 // Edit1.Text := FloatToStr(aux);

end;

Mi funcion es media precaria, porque intente mil maneras distintas.

Si no se entiende bien lo que hice, diganme, que intento limpiarla.

Saludos.
Responder Con Cita
  #2  
Antiguo 26-12-2006
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 19
hector.roma Va por buen camino
y si pruebas esto...

Sin entrar en si tu función es correcta o no, e indicando que lo único que necesitas es convertir la función JScript en Delphi, ¿por que no pruebas esto?...

Código Delphi [-]
procedure miEncode(str, fld, fld2: integer);
var
 a,b: integer;
begin
  a:= 1846;
  b:= 1835;

  str := ((a-b)*((str-a) XOR (str-b)) shr a) shl b;

  if ( (str = 1737089024) AND (fld=5 ) AND (fld2=33) ) then
     ShowMessage('Perfecto')
    else
     ShowMessage('Que lástima por tí');
end;

Espero que te sirva o si no háznoslo saber
Responder Con Cita
  #3  
Antiguo 26-12-2006
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 19
hector.roma Va por buen camino
Entrando en tu función...
1.- Tienes un bucle que empieza en 11111 y sumas las 5 primeros cifras del Edit1 de tu form y si esa suma es igual a 33, haces algo... la primera suma que cumple es 15999; es decir, tras 4888 iteraciones tu programa empieza a funcionar.
2.- Cuando tu función empieza a funcionar se encuentras con la función exp(); la cual eleva el número e a la potencia indicada que en este caso, y sólo en la primera iteración alcanza un valor de 1.488.089,54342037 y recordadon que el número e tiene un valor de 2,71 pues resulta que ese número es más de lo que todas las riquezas del mundo juntas en euros y claro al delphi eso le parece mal...
3.- Revisa tu función.
Responder Con Cita
  #4  
Antiguo 29-12-2006
Avatar de jorge1987
jorge1987 jorge1987 is offline
Miembro
 
Registrado: may 2005
Ubicación: Buenos Aires
Posts: 244
Poder: 19
jorge1987 Va por buen camino
Cita:
Empezado por hector.roma
Entrando en tu función...
1.- Tienes un bucle que empieza en 11111 y sumas las 5 primeros cifras del Edit1 de tu form y si esa suma es igual a 33, haces algo... la primera suma que cumple es 15999; es decir, tras 4888 iteraciones tu programa empieza a funcionar.
2.- Cuando tu función empieza a funcionar se encuentras con la función exp(); la cual eleva el número e a la potencia indicada que en este caso, y sólo en la primera iteración alcanza un valor de 1.488.089,54342037 y recordadon que el número e tiene un valor de 2,71 pues resulta que ese número es más de lo que todas las riquezas del mundo juntas en euros y claro al delphi eso le parece mal...
3.- Revisa tu función.

Gracias, estoy en ello.

La iteracion, era para no tener que hacer la comprobacion a mano de si estaba funcionando, le puse la iteracion, para que automaticamente me agregue a la lista, cuando la respuesta sea correcta, y no agregue nada en caso contrario.

Osea, quice matar dos pajaros de un tiro, hacer la funcion, y ademas comprobarla.

Gracias por la respuesta.

Saludos.
Responder Con Cita
  #5  
Antiguo 29-12-2006
Avatar de jorge1987
jorge1987 jorge1987 is offline
Miembro
 
Registrado: may 2005
Ubicación: Buenos Aires
Posts: 244
Poder: 19
jorge1987 Va por buen camino
Estube probando tu funcion, y no entiendo por que usaste XOR, el simbolo "^" en Jscript, no significa "Elevado"?

Saludos.
Responder Con Cita
Respuesta



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
Guardar una variable de javascript a delphi joel20 .NET 2 12-04-2006 12:54:19
JavaScript to Delphi sArEeE HTML, Javascript y otros 1 08-09-2005 15:28:35
Javascript en delphi? Ryu Internet 0 20-04-2005 16:57:50
ejecutar PHP o javascript desde delphi torito Varios 3 11-03-2005 17:48:37
Conversion texto en ecuacion manueles OOP 1 16-12-2003 07:19:03


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


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