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.