Cita:
Empezado por luisito2011
respondan .... porfavor
|
No se si reir o llorar...
Bueno luisito...
1) ¿a que te refieres con eso de: "con vector si funciona"?... por que no nos muestras el codigo ejemplo..
2) ¿A que te refieres con que "no funciona"?, te sale error?, te miuestra un numero, pero te lo muestra mal??
3) hice la prueba y efectivamente el ordenamiento sirve... pero veo que el probelma esta en el intercambio que haces en el codigo interno...
Código Delphi
[-]procedure ordenar(var b:cnumeronatural);
var x,veces,i:integer;
begin
for veces := 1 to(b.NumeroDigitos - 1) do
begin
for i := 1 to (b.NumeroDigitos - veces) do
begin
if b.Digito(i) > b.Digito(I+1) then
begin
x:=b.digito(i);
b.AsignarValor(b.Digito(I+1)* 10+ x);
end;
end;
end;
end;
Es decir... si has analizado lo que esto hace????
No hay que hacer debug para ver que en cada iteraccion se destruye el numero..!!!
Si tenemos un valor b.Valor ==> 89675 entonces:
x:=8 //en la primera iteraccion
b.Valor==> (9) * 10 + 8 ..!!!
En tu segunda iteraccion vale 98... es decir... 89675 se convirtio en 98...
¿Sabes como hacer un seguimiento paso a paso? podrias valerte de un memo o algo para ver lo que tu codigo esta mostrando...
un saludo.