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 04-03-2016
jmforjeda jmforjeda is offline
Miembro
NULL
 
Registrado: mar 2016
Posts: 16
Poder: 0
jmforjeda Va por buen camino
¿Cómo calcular resto division de divisor de 16 cifras?

hola estoy intentando calcular el resto de esta divison:

1185576217142889 / 75

utilizo la funcion mod pero me da error por que el dividendo tiene demasiadas cifras
he utilizado un longint pero no cabe el numero

he probado con un double pero tampoco me funciona bien la funcion mod

como debo hacerlo?

si algien lo puede provar y darme una solución segura, lo agradecere eternamente

un Saludo
Responder Con Cita
  #2  
Antiguo 04-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Primero de todo, lee nuestra guía de estilo, gracias.
He editado tu título porque incumplía una de las normas.
Usa int64 para tu número.
Responder Con Cita
  #3  
Antiguo 04-03-2016
jmforjeda jmforjeda is offline
Miembro
NULL
 
Registrado: mar 2016
Posts: 16
Poder: 0
jmforjeda Va por buen camino
perdon

disculpa ya me lo leo con mas cariño

y muchas gracias por la respuesta

un Saludo
Responder Con Cita
  #4  
Antiguo 07-03-2016
jmforjeda jmforjeda is offline
Miembro
NULL
 
Registrado: mar 2016
Posts: 16
Poder: 0
jmforjeda Va por buen camino
Sigo teniendo problemas con int64

Hola, empiezo a estar desesperado, tengo un número de 16 digitos que no me cabe en un longint.
he probado con int64 pero delphi3 no reconoce este tipo de dato numerico.
lo que tengo que hacer es utilizar este numero de 16 D como dividendo en la funcion MOD
lo he probado con double y me da error "operator not aplicable to this operand type"

lo he probado con int64 y borland delphi6 y delphi XE8 y funciona, pero con delphi3 no funciona

algien puede probarlo y darme una solución?



muchas gracias
Responder Con Cita
  #5  
Antiguo 07-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No crees nuevos hilos para seguir con lo mismo, sigue en el mismo hilo que iniciaste.
He unido ambos.
Creo que olvididaste leer nuestra guía de estilo, gracias.
Responder Con Cita
  #6  
Antiguo 07-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jmforjeda Ver Mensaje
Hola, empiezo a estar desesperado, tengo un número de 16 digitos que no me cabe en un longint.
he probado con int64 pero delphi3 no reconoce este tipo de dato numerico.
lo que tengo que hacer es utilizar este numero de 16 D como dividendo en la funcion MOD
lo he probado con double y me da error "operator not aplicable to this operand type"
lo he probado con int64 y borland delphi6 y delphi XE8 y funciona, pero con delphi3 no funciona
algien puede probarlo y darme una solución?
muchas gracias
¿Algún motivo especial para usar delphi 3?
Responder Con Cita
  #7  
Antiguo 07-03-2016
jmforjeda jmforjeda is offline
Miembro
NULL
 
Registrado: mar 2016
Posts: 16
Poder: 0
jmforjeda Va por buen camino
disculpa otra vez

disculpa, que error mas grande, ya me he habia leido la guia de estilo, y he mejorado en cosas pero, he cometido este error que me comentas.
bueno.... el caso es que sigo teniendo el mismo problema, y tengo que solucionarlo ya, porque es para el trabajo.

un Saludo
Responder Con Cita
  #8  
Antiguo 07-03-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Imagino que quien te ha requerido este problema, te ha puesto ese "número tan grande" justo para que no lo hagas utilizando el operador de la división, sino para que lo hagas paso a paso utilizando un algoritmo.

Se trata de programar un bucle que haga la división tal y como la hacemos manualmente.
Creo que en mi primer curso de facultad, fue una de las prácticas que tuve que hacer.

Deberás utilizar un bucle (for..begin..end o While..begin..end) para recorrer el dividendo. Ves cogiendo cifras (como lo hacemos manualmente), divide y quédate con el resto. Añade una nueva cifra, vuelve a dividir,... y así hasta finalizar. Lo dicho, igual que como se hace manualmente.

Inténtalo, por el código que vas probando y si no te funciona te iremos echando un cable.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 09-03-2016 a las 11:09:32.
Responder Con Cita
  #9  
Antiguo 07-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jmforjeda Ver Mensaje
disculpa, que error mas grande, ya me he habia leido la guia de estilo, y he mejorado en cosas pero, he cometido este error que me comentas.
Estas cosas pasan al principio

En cuanto a tu problema, tendrás que ayudarnos a ayudarte, no nos has dicho nada más ni has contestado a mi pregunta.
Yo no veo delphi 3 desde ¿1998? pero puede que tengas que incluir en el uses math, o algo así, no puedo recordar después de tantos años.
Responder Con Cita
  #10  
Antiguo 07-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jmforjeda Ver Mensaje
y tengo que solucionarlo ya, porque es para el trabajo.
jejeje... ¿y eso cómo es?
Responder Con Cita
  #11  
Antiguo 07-03-2016
jmforjeda jmforjeda is offline
Miembro
NULL
 
Registrado: mar 2016
Posts: 16
Poder: 0
jmforjeda Va por buen camino
ja ja si y ademas soy nuevo en el trabajo imaginate como estoy.
he probado el uses math, pero no va, parece que esa en systems y por tanto no es necesario añadirlo, pero eso es con delphi6 porque el delphi3 no lo reconoce.

esto de el bucle tengo que mirarlo, pero si algien lo tiene echo asi o de otra manera que me lopase please
Responder Con Cita
  #12  
Antiguo 07-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No contestas a nuestras preguntas, no pones nada de tu código, no aportas nada... solo pides código para copiar y pegar.
Responder Con Cita
  #13  
Antiguo 07-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ni siquieras usas las búsquedas
Responder Con Cita
  #14  
Antiguo 08-03-2016
jmforjeda jmforjeda is offline
Miembro
NULL
 
Registrado: mar 2016
Posts: 16
Poder: 0
jmforjeda Va por buen camino
solucion

utilizar tipos double

la alternativa a la funcion MOD es:

resto=dividendo-(divisor*parte entera resultado division)
para obtener la parte entera utilizar:

formatfloat('#######.##', float)

para pasar a string

luego
posstr para obtener posicion del punto de decimales

lugo copy para obtener parte entera como string

y finalmente floattostr para pasar a double

entonces ya se puede utilizar la fórmula para calcular el resto.

un Saludo
Responder Con Cita
  #15  
Antiguo 09-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Para nada, eso no te resuelve el problema de un número con 16 dígitos.
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
Los diputados no tocarán sus pensiones porque no son como el resto de ciudadanos Casimiro Notevi La Taberna 4 14-01-2011 20:51:24
Matematica de coquito: Como le resto un porcentaje (iva) incluido? mamcx Varios 5 12-07-2007 01:13:29
dbedit y cifras monetarias problemas al calcular yeison Cristman OOP 2 10-08-2006 07:52:46
Como calcular el resto de dividir un string numerico veronica Varios 3 26-09-2005 13:35:18
Como resto dias a una fecha Huer Varios 3 06-06-2003 01:06:22


La franja horaria es GMT +2. Ahora son las 19:37:14.


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