Luisito, creo que tu problema está en los indices que utilizas en los bucles de ordenamiento... Por lo menos, en el "método de la burbuja" debería ser:
Código Delphi
[-]For i:= 1 to N-1 do
For j:= i+1 to N do
Por otro lado te aconsejo, para mejorar tu clase:
1) utiliza las propiedades, son poderosas...
Código Delphi
[-]CNumeroNatural = Class (TObject)
Private
FValor : Cardinal;
procedure setValor(Value: Cardinal);
Public
Property Valor: Cardinal read FValor write setValor;
end;
implementation
procedure setValor(Value: Cardinal);
Begin
FValor := Value;
end;
De esta manera, no tenbdrias que llamar directamente el método: AsignarValor
así:
Código Delphi
[-]a:=cnumeronatural.crear;
Writeln('Digite un Numero');
Readln(a.Valor);
2) ¿Porqué el ordeamiento o hace parte de la clase?,
Eso por ahora...
Un saludo,