Ver Mensaje Individual
  #17  
Antiguo 06-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Luisito.

Este método 'tendría' que ordenarte lenta pero correctamente los dígitos de menor a mayor:
Código Delphi [-]
procedure CNumeroNatural.Ordenar;
var
  i,j:integer;
  a: Byte;
begin
   for i:= 1 to NumeroDigitos  do
    for j := i+1 to NumeroDigitos do
     if Digito(i) > Digito(j) then
     begin
       a:= Digito(i);
       InsertarDigito(i,Digito(j));
       InsertarDigito(j,a);
     end;
end;
Y digo 'tendría' por que así lo haría si el método InsertarDigito funcionara como se espera...

Como un ejemplo vale más que mil palabras, intentemos llenar los 6 dígitos de una cifra con ceros:
Código Delphi [-]
var
  N: TNumeroNatural;
  i: Integer;
begin
  N:= TNumeroNatural.Crear;
  N.AsignarValor(123456);
  for i:= 1 to 8 do
    N.InsertarDigito(i,0);
  ShowMessage(IntToStr(N.ObtenerValor));   
end;
Seguro que esperabas ver: 000000, pero por suerte la programación nunca deja de sorprendernos...
El resultado es: 3569126384

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 06-05-2011 a las 08:32:24.
Responder Con Cita