Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-04-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Poder: 14
luisito2011 Va por buen camino
Determinar digito mayor de un numero

ola.. soy yo de nuevo aca con un problemita que no puedo resolver

//Pida un numero por teclado y determine cual es el valor del digito mayo de dicho numero //
ejemplo .. de 123457
DigM:=7;
si me lo puden agregar.. a esa unidad y en console..
Código Delphi [-]
 
Unit
interface
type
cnumeronatural=class
valor:integer;
  constructor crear;
  procedure asignarvalor(nuevovalor:integer);
  function obtenervalor:integer;
  Function NumeroDigitos : integer;

end;
implementation
constructor cnumeronatural.crear;
begin
  valor:=0;
end;
procedure cnumeronatural.asignarvalor(Nuevovalor:integer);
begin
  valor:=nuevovalor;
end;

function cnumeronatural.obtenervalor:integer;
begin
result:=valor;
end;

 
 Function  CNumeroNatural.NumeroDigitos : integer;
Var
   N,c :integer ;
Begin
     N := Valor;
     C := 0;
     while valor >0 do
       begin
        valor := valor Div 10;
        c:=c+1;
       end;
    result:=c;
 End;
  
end.
gracias
Responder Con Cita
  #2  
Antiguo 25-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hubiera pensado que el dígito mayor es el de la extrema izquierda, pero en fin, si lo que deseas es el dígito de la extrema derecha entonces:

Código:
DM := Número mod 10;
// Saludos
Responder Con Cita
  #3  
Antiguo 25-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Juat ?????

entiendo que si tienes un numero (compuesto por varios numeros) quieres saber el de mayor valor?

Ejemplo

Numero := '5231476'

Resultado = 7

eso?
o es otra cosa lo que deseas
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 25-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Ah! Tienes razón. El ejemplo es confuso y puede ser que se refiera más bien a lo que dices tú.

// Saludos
Responder Con Cita
  #5  
Antiguo 25-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
En todo caso lo que puedes hacer es lo siguiente

descomponer el numero en digitos

valor = Valor del Primer digito
for 2 hasta la cantidad de digitos
Digito = Copy (cadena,x,1)
Si digito > Valor
Valor := Digito
endfor

al final el mayor digito se quedara en valor
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #6  
Antiguo 25-04-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola luisito2011, también lo puedes hacer así:

Código Delphi [-]
function cnumeronatural.DigitoMayor(numero : Integer) : Integer;
var
  Mayor, Digito, Num : Integer;
begin
  Mayor := -1;
  Num := numero;
  while Num > 0 do
   begin
    Digito := Num Mod 10;
    Num := Num Div 10;
    if Digito>Mayor then
     Mayor:=Digito;
   end;
  result:=Mayor;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #7  
Antiguo 25-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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.

Código Delphi [-]
function MayorDigito(Numero: Integer): Integer;
var
 Digito: Integer;
begin
  Result:= -1;
  while Numero > 0 do
  begin
    Digito:= Numero mod 10;
    Numero:= Numero div 10;
    if Digito > Result then
      Result:= Digito;
  end;
end;

Un saludo.

Edito: Veo que mientras hacía los últimos retoques del código, Caro ya había puesto una solución muy similar...
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 25-04-2011 a las 22:26:02.
Responder Con Cita
Respuesta



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 determinar si un numero es par o impar lmpadron C++ Builder 17 30-04-2010 20:08:28
Mayor Numero Paradox lKinGl Varios 21 27-09-2008 11:10:08
consulta del numero mayor de subregistro Yun-i Varios 21 29-02-2008 18:47:10
sumar cada digito de un numero entero emenchi34 Varios 9 19-09-2006 23:02:35


La franja horaria es GMT +2. Ahora son las 02:44:51.


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