Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-07-2005
Duc Duc is offline
Miembro
NULL
 
Registrado: jul 2004
Posts: 49
Poder: 0
Duc Va por buen camino
for contando hacia atras

Hola a todos

tengo un trozo de codigo donde tengo un for que cuenta hacia atras. Es decir tengo algo del estilo de For i:=0 to 10 y cuando ejecuto paso a paso veo como i va de 10 a 0.
Alguien sabe que puede pasar?

Gracias
Responder Con Cita
  #2  
Antiguo 19-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.877
Poder: 22
delphi.com.ar Va por buen camino
¿Que estas utilizando para evaluar i?....
¿Nos podías mostrar el fragmento de código?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 19-07-2005
[maeyanes] maeyanes is offline
Capo de los Capos
NULL
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.728
Poder: 19
maeyanes Va por buen camino
De casualidad el for no es de la forma: for..downto..do?
Responder Con Cita
  #4  
Antiguo 19-07-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
NULL
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.243
Poder: 23
jachguate Va por buen camino
Tengo entendido que como parte de la optimización de código, si no usas la variable de control dentro del ciclo, este se ejecuta de adelante hacia atras (de 10 a 0). Cuando usas la variable, va correctamente de 0 a 10.

Desconozco las razones por las que el contador hacia atras puede ser mas óptimo que el contador hacia adelante.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 19-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.877
Poder: 22
delphi.com.ar Va por buen camino
Cita:
Empezado por jachguate
Desconozco las razones por las que el contador hacia atras puede ser mas óptimo que el contador hacia adelante.
Estuve viendo el código compilado, y básicamente si no se necesita el valor de i, se ahorra un paso:
Código Delphi [-]
  { Son dos for de 0..$0b }

  {Versión incremental: }
  asm
    xor ebx, ebx { Pone ebx en 0 }
  @@ciclo:
    inc ebx      { Incrementa en 1 ibx }
    cmp ebx, $0b { Comparo el valor del registro contra
                   la cantida de ciclos a realizar }
    jnz @@ciclo  { Cicla hasta que eb sea 0 }
  end;


  {Versión Decremental: }
  asm
    mov ebx, $0b { Inicializa el contador con
                   la cantida de ciclos a realizar }
  @@ciclo:
    dec ebx      { Decrementa en 1 ibx }
    jnz @@ciclo  { Cicla hasta que eb sea 0 }
  end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 19-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.723
Poder: 19
ContraVeneno Va por buen camino
Diablos!
Uno que apenas esta aprendiendo Delphi
y ahora tambien tengo que aprender asm

Un saludo a todos
__________________

Responder Con Cita
  #7  
Antiguo 20-07-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Registrado
NULL
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 19
vtdeleon Va por buen camino
Saludos

Sinceramente, No entiendo NADITA
Responder Con Cita
  #8  
Antiguo 20-07-2005
Duc Duc is offline
Miembro
NULL
 
Registrado: jul 2004
Posts: 49
Poder: 0
Duc Va por buen camino
For hacia atras

muchas gracias a todos,

especialmente a delphi.com.rar, me ha quedado muy claro el porqué delphi hace los bucles hacia atrás, (aunque para ahorrarse una linia de asm me ha vuelto loco ).
Al final, con la desesperación, cambié el código; pero creo que sí, que una de las variables de control no la usaba, -eran dos FORs anidados.

Gracias.
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


La franja horaria es GMT +2. Ahora son las 05:58:26.


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