Ver Mensaje Individual
  #4  
Antiguo 17-06-2015
franco_cvm franco_cvm is offline
Miembro
NULL
 
Registrado: abr 2015
Posts: 20
Reputación: 0
franco_cvm Va por buen camino
Graciass

lo que no entiendo es porque si pongo:
Código Delphi [-]
begin
ULT:=nil;
While (bandera=true) do
  Begin
    X:=CZO^.prox;
    Y:=X^.prox;
    bandera:=False;
    While (Y<>ULT) do
      begin
        if (X^.data)>(Y^.data) then
          begin
            bandera:=true;
            aux:=x^.data;
            X^.data:=Y^.data;
            Y^.data:=aux;
          end;
.......


Cita:
Empezado por ecfisa Ver Mensaje
Hola franco_cvm.

El tipo Boolean enumera los valores verdadero o falso. Cuando en Delphi haces una comparación del tipo,
Código Delphi [-]
 if (a = b) then
de "(a = b)" se obtiene un resultado que puede ser verdadero o falso según sean los contenidos de 'a' y 'b'. Supongamos que,
Código Delphi [-]
var
  B : Boolean;
begin
  B := ( 5 = 5)
la variable "B" recoge un valor (que es True en el código anterior) y ya debes ver claro que: B = (5 = 5) = True. Entonces la construcción,
Código Delphi [-]
 if (B = True) ...
si bién no es sintácticamente incorrecta, es redundante.

Una variable de tipo booleana almacena la conclusión de una o mas premisas, y su resultado puede ser bivalente (True o False). De allí que es reiterativo evaluar la igualdad por verdadero o falso si la variable ya posee ese valor.

Resumiendo, si B tiene el valor True hacer:
Código Delphi [-]
 if  B  then
tiene el mismo resultado que:
Código Delphi [-]
 if B = True then

Del mismo modo que si B tiene el valor False hacer:
Código Delphi [-]
 if not B then
tiene el mismo resultado que:
Código Delphi [-]
 if B = False then
Y aunque el compilador es generoso, mi consejo es que no uses el modo redundante.

Saludos

Edito: No había visto el mensaje de Agustín mientras escribía pero es la misma idea.
Responder Con Cita