Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2011
beginner01 beginner01 is offline
Miembro
NULL
 
Registrado: mar 2011
Ubicación: República Dominicana
Posts: 181
Poder: 16
beginner01 Va por buen camino
saludos.

porque no usas la propiedad invertir?

Código:
program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils,caja1;

 
 var a:cnumeronatural;
 X:integer;
 begin
  a:=cnumeronatural.crear;
  Writeln('Digite un Numero');
  Readln(x);
  a.AsignarValor(x);
  a.Invertir;
  writeln('Numero Ordenado De Menor a Mayor ',a.obtenervalor);
  readln;
 end.
Responder Con Cita
  #2  
Antiguo 06-05-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Poder: 16
luisito2011 Va por buen camino
el error que me sale.. es // fuera de rango//
Responder Con Cita
  #3  
Antiguo 06-05-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Poder: 16
luisito2011 Va por buen camino
Cita:
Empezado por beginner01 Ver Mensaje
saludos.

porque no usas la propiedad invertir?

Código:
program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils,caja1;
 
 
 var a:cnumeronatural;
 X:integer;
 begin
  a:=cnumeronatural.crear;
  Writeln('Digite un Numero');
  Readln(x);
  a.AsignarValor(x);
 a.Invertir;
  writeln('Numero Ordenado De Menor a Mayor ',a.obtenervalor);
  readln;
 end.
No pue si uso el metodo invertir.. solo me sirve para los digitos
ordenados como 98765.. o 654321..

//Y sobre el error .. me sale fuera de rango..//
/
Responder Con Cita
  #4  
Antiguo 06-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
  #5  
Antiguo 06-05-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Poder: 16
luisito2011 Va por buen camino
Cita:
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;





Un saludo
mmm.. si te das cuenta.. cuando uso el metodo.. de insertar digito
no remplaza al digito...
ejem... si quiero ordenar esto 54.. solo 2 numeros
mi respuesta sera esto 445554.. eso es con tu procedure..

por eso en mi procedure.. utilize .. eliminardigito... pero solo me funciona con 8 digitos...
Responder Con Cita
  #6  
Antiguo 06-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

Entonces malinterpreté la función que realiza el método InsertarDigito. (Errare humanum est... )
En cuanto al error que te genera al usar más 8 dígitos vas a tener que hacer un seguimiento del comportamiento del método o los métodos que te lo generan. Podés poner un break y hacer un TraceInto (F7) para ir viendo el comportamiento del método y también ir evaluando los valores que asumen sus variables.
Lamento no disponer del tiempo para hacer esa tarea.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿como hago para comprobar si un nº de versión es mayor o menor? cocute Varios 8 21-01-2010 11:31:13
Fecha de mayor a menor alcides Varios 2 15-02-2008 16:46:09
Conocer el menor inexistente brandolin Firebird e Interbase 3 25-01-2007 12:27:00
ordenar un DBGrid de mayor a menor jmlifi Varios 2 03-11-2005 16:36:34
Agrupamiento mostrando el menor agonzalez SQL 3 19-02-2004 23:29:19


La franja horaria es GMT +2. Ahora son las 18:31:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi