Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Obtener determinado dígito de un número (https://www.clubdelphi.com/foros/showthread.php?t=80133)

xneox 06-09-2012 02:07:03

Obtener determinado dígito de un número
 
hola a todos esta es mi primera ves aqui y nesecito una ayuda, debo hacer una funcion en consola que me muestre de un numero de cierta cantidad de digitos uno en especifico
ejemplo
253646
y yo escribo 2, que me muestre el digito que esta en la posicion 2 osea el numero 5

ecfisa 06-09-2012 02:56:17

Hola xneox, bienvenido a Club Delphi :)

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

xneox, ¿ Podrías indicarnos que parte del problema o del código te está presentando dificultad ?


Saludos.

xneox 02-10-2012 02:22:27

gracias, era la primera ves
 
Código Delphi [-]
unit Uvega;

interface

function digito(a,b:integer):integer;

implementation

function digito(a,b:integer):integer;
var x,y,z :integer;
begin
  x:=a;
  y:=longitud(b);
  while x<=y do 
  begin
    z:= b mod 10;
    b:= b div 10;
    y:=longitud(b);
  end;
  digito:=z;
end;

end.
no me corre no se en que parte me sale que esta mal

ElDioni 02-10-2012 09:47:43

Hola,

para empezar, ¿que es longitud?.

Saludos.

Casimiro Notevi 02-10-2012 12:06:49

Cita:

Empezado por xneox (Mensaje 446026)
..

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

ecfisa 02-10-2012 13:31:36

Hola xneox.

Código Delphi [-]
function ObtenerDigito(Numero: Integer; const Posic: Byte): Integer;
var
  Inverso, Resto, i: Integer;
begin
  // Invertir
  Inverso:= 0;
  while Numero > 0 do
  begin
    Resto  := Numero mod 10;
    Inverso:= Inverso * 10 + Resto;
    Numero := Numero div 10;
  end;
  // Obtener dígito
  for i:= 1 to Posic do
  begin
    Result := Inverso mod 10;
    Inverso:= Inverso div 10;
  end;
end;

Saludos.

champy 02-10-2012 16:53:58

Se me ocurre uno aún más corto.

Código Delphi [-]
Function ObtenerNumero(Numero: Integer; Posicion: Integer): Integer;
begin
  Result := StrToInt(Copy(IntToStr(Numero), Posicion, 1));
end;

ecfisa 02-10-2012 21:56:51

Hola champy.

Correcto y más simple además. ;)

En la programación práctica, no dudaría en manipular cadenas para obtener la posición o parte de un número. Pero por la forma en que xneox, presentó su código, me dió la impresión que el catedrático solicita una manipulación numérica de los dígitos, de allí la parafernalia de los mod y div :).

Saludos :)

champy 03-10-2012 00:23:11

Aiins! Estos catedráticos y sus manías... ;)

Delphius 03-10-2012 00:33:19

Cita:

Empezado por champy (Mensaje 446122)
Aiins! Estos catedráticos y sus manías... ;)

Cita:

Empezado por ecfisa (Mensaje 446102)
Hola champy.

Correcto y más simple además. ;)

En la programación práctica, no dudaría en manipular cadenas para obtener la posición o parte de un número. Pero por la forma en que xneox, presentó su código, me dió la impresión que el catedrático solicita una manipulación numérica de los dígitos, de allí la parafernalia de los mod y div :).

Saludos :)

Otro hilo más que avala mi postura: si el profe te da manzanas, piensa en manzanas ;)

De manía nada. Es útil para condicionar al estudiante a que razone más; que lo trabaje más al código y al cerebro.

Saludos,

Casimiro Notevi 07-10-2012 01:43:22

No olvides nuestra guía de estilo, gracias por tu colaboración :)


La franja horaria es GMT +2. Ahora son las 12:18:27.

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