Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como imitar el programa super pi (https://www.clubdelphi.com/foros/showthread.php?t=58770)

kurono 31-07-2008 04:22:02

como imitar el programa super pi
 
hola amigos de nuevo yo con una curiosidad pues les cuento que ese programa super pi hace unas pruebas de calculo para medir el tiempo en que el procesador lo puede realizar y me surgio la idea de crear mi propio super pi en delphi .

pero como podria hacer que clase de calculo es que realiza ese programa ,como para poder imitarlo y una ves terminado ese calculo determinar el tiempo en que lo realizo alguien tiene una idea de como hacer algo parecido

coso 31-07-2008 09:03:19

hola kurono, puedes poner un timer, enchufarlo justo antes de llamar a la funcion de calculo,calcular, y desenchufarlo despues del calculo, mostrandote el ultimo resultado. Algo asi,

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
        Timer1.Enabled := true;
        Label2.Caption := FormatFloat('0.000000000000000000000000000',Pi);
        Timer1.Enabled := false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
const
        contador : integer = 0;
begin
        Label1.Caption := inttostr(contador);
        contador := contador + 1;
end;

con el timer.interval = 1.

PD :rectifico, pues aunque el algoritmo es correcto, al ser tan rapida la funcion no queda registrado el tiempo que usa. Puedes, o bien buscar un 'timer' con mas precision que los milisegundos, o llamar a la funcion pi por ejemplo 30 veces y luego dividir el tiempo de resultado por 30, (restandole tambien el tiempo de 'FormatFloat', si quieres hacerlo mas preciso)

kurono 31-07-2008 18:45:06

ok mucha gracia coso se acerca mucho a lo que quiero

coso 31-07-2008 19:29:55

ups, ahora q lo vuelvo a mirar esta mal...

Código Delphi [-]
public 
     contador : integer;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
        Contador := 0;
        Timer1.Enabled := true;
        Label2.Caption := FormatFloat('0.000000000000000000000000000',Pi);
        Timer1.Enabled := false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
        Label1.Caption := inttostr(contador);
        contador := contador + 1;
end;

faltaba reiniciar el contador

Delphius 31-07-2008 19:42:42

Si bien el TTimer es una opción, creo que para obtener mejor precisión es aconsejable emplear la función GetTickCount. Si no me equivoco, en una o dos ocasiones se habló de ella.
Por ejemplo, este post habla de ello:
http://www.clubdelphi.com/foros/show...t=GetTickCount

Saludos,

seoane 31-07-2008 20:45:56

¿Buscas algo así?

http://www.clubdelphi.com/foros/show...3&postcount=20

kurono 01-08-2008 06:33:32

me surgio una idea mas a lo que quiero llegar hacer y es hacer un calculo repetitivo en un bucle hasta que se cumpla una condicion y cuando se cumpla esa condicion muestre el tiempo en que lo hiso .

por ejemplo :
Código Delphi [-]
var
numero:integer;
begin
numero:=0;
begin
repeat
label1.caption:=numero+1
until 10

end;
end;
end.

solo faltara poner el cronometro


La franja horaria es GMT +2. Ahora son las 06:46:35.

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