Ver Mensaje Individual
  #2  
Antiguo 23-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 26
seoane Va por buen camino
Si te fijas en tu codigo en las lineas que no se ejecutan estas asignando un valor a una variable que luego no utilizas, asi que el compilador, que es muy listo, las ignora. Ahora bien fijate en el siguiete codigo y veras como ahora si se ejecuta.

Código Delphi [-]
procedure TForm1.insertarOrdenado(Vector:TC;var Lista:TC);
// Insertamos el item Vector en la Lista de manera ordenada
// La ordenación es descendente (mayor valor al principio)
var
        Aux : TC;  // Puntero de avance principal
        AuxAnt : TC; // Puntero de avance secundario (un elemento por detrás de 'Aux)
        Pivote : integer;
begin
 Pivote := Vector.Valor;
        // Si la lista está vacía inserta el item directamente
 if (Lista = nil) then
                begin
  Lista := Vector;
        end
 else
         begin
                New(Aux);
                New(AuxAnt);
         Aux := Lista;
                AuxAnt := nil; // Ahora si que se ejecuta esta linea
               //******************************

                if AuxAnt=nil then
                  ShowMessage('Si que me ejecuto, pero ejecutarse para nada es tonteria');


                //*******************************
                // Recorremos la lista de punteros hasta encontrar el sitio
         while ((Aux <> nil) and (Pivote < Aux.Valor)) do
                        begin
                        AuxAnt := Aux; // Esta linea no se ejecuta
          Aux := Aux.Sgte;
         end;
         // Aquí se inserta el elemento
                Vector.Sgte := Aux;
                AuxAnt := Vector; // Esta linea no se ejecuta
        end;
end;

Ahora como usamos el valor asignado ya no ignora la sentecia que asigna el valor.
Responder Con Cita