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 31-03-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Poder: 14
luisito2011 Va por buen camino
Talking Eliminar un digito y mostrar el digito eliminado

hola bueno tengo un problemita...necesito adicionar a este codigo..
2 funciones oh 2 procesos...
el cual 1 me elimine cualquier digito de un numero
y otro que muestre el digito eliminado
Código Delphi [-]
 
type
  numero=record
    valor : integer;
  end;

procedure asignarvalor(var n:numero; que:integer);
begin
  n.valor:=que
end;

function obtenervalor(n:numero):integer;
begin
  obtenervalor:=n.valor;
end;

procedure crear(var N:numero);
begin
  n.valor:=0;
end;

function nrodigitos(N:numero):integer;
var 
  c:integer;
begin
  c:=0;
  while n.valor>0 do
  begin
    c:= c+1;
    n.valor:=n.valor div 10;
  end;
  nrodigitos:=C;
end;

var
  a:numero;
  k:integer;
begin
  crear(A);
  readln (K);
  asignarvalor(A,k);
  writeln('El numero es ',obtenervalor(a));
  writeln('el numero de digitos es ',nrodigitos(A));
  readln;
end

saludos. y gracias

Última edición por ecfisa fecha: 31-03-2011 a las 03:55:19. Razón: Etiquetas DELPHI, identación
Responder Con Cita
  #2  
Antiguo 31-03-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 luisito2011.
Cita:
necesito adicionar a este codigo..
2 funciones oh 2 procesos...
el cual 1 me elimine cualquier digito de un numero y otro que muestre el digito eliminado
En realidad no necesitas dos procedimientos o funciones, te podes arreglar con una función:
Código Delphi [-]
...
function EliminarDigito(var n: numero; Pos:Integer): Integer;
var
  s: string;
  r,cd: Integer;
begin
  Str(n.valor, s);     (* convertir a string *)
  Val(s[Pos], r, cd);  (* valor dígito eliminado en r *)
  Delete(s, Pos, 1);   (* borrar dígito *)
  Val(s, n.valor, cd); (* convertir (numero - digito) a integer *)
  EliminarDigito:= r;  (* devuelve valor dígito eliminado *)
end;


var
  a:numero;
  k:integer;
  d:Integer;
begin
  crear(A);
  write('Numero: '); Readln(K);
  AsignarValor(a, k);
  Writeln('El numero es ', obtenervalor(a));
  Writeln('el numero de digitos es ',nrodigitos(A));
  Write('Digito a eliminar: '); Readln(d);
  Writeln('Digito eliminado: ',EliminarDigito(a, d));
  Readln;
end.

Nota: Usé sintáxis Pascal por si te es requerido. Toda explicación del uso de las funciones la encontras en la ayuda de Pascal/Delphi.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 31-03-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Poder: 14
luisito2011 Va por buen camino
muy buena respuesta.. gracias.. en realidad necesitaba en 2 funciones o procesos.. por que el que 1 elimina.. tenia que ponerla en un until.. el cual despue pueda usarlo en console application.. pero esta bien .. gracias ..
saludos
Responder Con Cita
  #4  
Antiguo 31-03-2011
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola,

¿Puedo preguntar que significa eliminar un dígito? Porque yo al menos entiendo dos posibles razonamientos. Supongamos que tenemos el número 4562. Se eliminará el 6:

Opción 1: Nos queda un número de 3 cifras:
4562 -> 45X2 -> 452

Opción 2: Restamos 6 decenas al número, sigue siendo de 4 cifras:

4562 - 60 = 4502.

¿Se entiende?

Por cierto... eso de convertir a string para luego pasarlo a integer me parece más un intento de cañonazo. Se que este artilugio puede resultar fácil, y reducir líneas... pero si en es que luisito está recién comenzando en programación en alguna universidad o instituto me parece que el objetivo del profe no es que vaya a por esos artilugios sino que exprima su capocha hasta encontrar un algoritmo que no recurra a esas técnicas sino que lo haga de forma directa (que se puede).

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 31-03-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Thumbs up

Me parece que se trata de la primera Opcion...Delphius... y estoy totalmente de acuerdo contigo en que la solucion debería ser usando solo número, sin recurrir a la transformacion hacia String; lógicamente eso implica más trabajo, es verdad, pero si se trata de que nuestro amigo luisito2011 aprenda, pues hay que ponerse a trabajar en buscar una solucion usando solo numero. Claro ésta que ecfisa solo quizo ayudar y su solucion es totalmente válida si se trata de solucionar problemas de programacion de cualquier forma, pero si por el contrario es para aprender supongo que el profesor debería restringir la conversion a String y solo permitir una solucion basada en operaciones matemáticas numerales, tal como lo hacía mi catedrático cuando estaba dando mis primeros pininos en programación ....,la verdad que no me gustaba por que desde mi punto de vista tal restrincion me complicaba la vida, en aquel entonces, pero pude lidiar con una solucion correcta tal como lo quería el catedrático.. y eso me ayudó mucho a desarrolar mi lógica, aunque todavía sigue en proceso .
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #6  
Antiguo 31-03-2011
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 22
gatosoft Va camino a la fama
Solo a manera de dato curioso:

Numero de digitos = Logaritmo (numero) +1;

Un saludo,
Responder Con Cita
  #7  
Antiguo 31-03-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
Cita:
Empezado por Delphius Ver Mensaje
Por cierto... eso de convertir a string para luego pasarlo a integer me parece más un intento de cañonazo. Se que este artilugio puede resultar fácil, y reducir líneas... pero si en es que luisito está recién comenzando en programación en alguna universidad o instituto me parece que el objetivo del profe no es que vaya a por esos artilugios sino que exprima su capocha hasta encontrar un algoritmo que no recurra a esas técnicas sino que lo haga de forma directa (que se puede).
Cita:
Empezado por rgstuamigo Ver Mensaje
Me parece que se trata de la primera Opcion...Delphius... y estoy totalmente de acuerdo contigo en que la solucion debería ser usando solo número, sin recurrir a la transformacion hacia String; lógicamente eso implica más trabajo, es verdad, pero si se trata de que nuestro amigo luisito2011 aprenda, pues hay que ponerse a trabajar en buscar una solucion usando solo numero.
Totalmente en desacuerdo

Para mi es claro que se trata de un ejercicio de manipulación de caracteres y no de aritmética.

Si se busca una solución usando operaciones aritméticas realmente no se estaría aprendiendo programación sino eso, aritmética.

// Saludos
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
Eliminar un digito cualquiera.. luisito2011 Varios 3 30-03-2011 21:15:47
Calcular un digito de chequeo GrupoDatasoft Varios 7 09-02-2009 17:53:53
Dígito Verhoeff Antonio Rosas E OOP 1 04-10-2007 23:51:19
Comparar un number dígito a dígito kuan-yiu SQL 2 25-06-2007 17:26:47
Modificar un str dígito a dígito fortran Varios 11 22-12-2003 16:44:46


La franja horaria es GMT +2. Ahora son las 05:25:44.


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