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 11-04-2006
cmena cmena is offline
Miembro
 
Registrado: abr 2004
Ubicación: CHILE
Posts: 67
Poder: 21
cmena Va por buen camino
Question funcion payment

hola, uso esta funcion para determinar el valor cuota de un monto x, pero me da error , dice que me falta el tpaymenttime al parecer es obligatorio, como lo paso y que significa?


function Payment(Rate: Extended; NPeriods: Integer; const PresentValue, const FutureValue: Extended; PaymentTime: TPaymentTime): Extended;


gracias
Responder Con Cita
  #2  
Antiguo 11-04-2006
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
Que tal una vuelta por la ayuda de Delphi???
Por lo que veo TPaymentTime tiene estos dos posibles valores:

ptStartOfPeriod: Interest is calculated on the principle balance at the beginning of the payment period

ptEndOfPeriod: Interest is calculated at the end of the payment period

Bytes...
Responder Con Cita
  #3  
Antiguo 11-04-2006
cmena cmena is offline
Miembro
 
Registrado: abr 2004
Ubicación: CHILE
Posts: 67
Poder: 21
cmena Va por buen camino
Cita:
Empezado por Sotrono
Que tal una vuelta por la ayuda de Delphi???
Por lo que veo TPaymentTime tiene estos dos posibles valores:

ptStartOfPeriod: Interest is calculated on the principle balance at the beginning of the payment period

ptEndOfPeriod: Interest is calculated at the end of the payment period

Bytes...
Gracias, si revise la ayuda, pero que es lo que paso como parametro? pongo el ptstartofperiod y me envia este error "[Error] UnitCotizaciones.pas(310): Incompatible types: 'Extended' and 'TPaymentTime'"
asi tengo la instruccion que se cae
ShowMessage(floattostr(payment(5,12,100000,ptStartOfPeriod)));
Responder Con Cita
  #4  
Antiguo 11-04-2006
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
Hola, el problema es que te falta pasarle un parámetro (son 5, no 4). El que te falta es: FutureValue, que es de tipo Extended. Por eso el error "Incompatible types: 'Extended' and 'TPaymentTime'"

Bytes...
Responder Con Cita
  #5  
Antiguo 12-04-2006
cmena cmena is offline
Miembro
 
Registrado: abr 2004
Ubicación: CHILE
Posts: 67
Poder: 21
cmena Va por buen camino
Cita:
Empezado por Sotrono
Hola, el problema es que te falta pasarle un parámetro (son 5, no 4). El que te falta es: FutureValue, que es de tipo Extended. Por eso el error "Incompatible types: 'Extended' and 'TPaymentTime'"

Bytes...
Gracias amigo argentino, me funciono, pero el valor que me retorna no es el valor cuota estoy usando la funcion correcta para calcular el valor de la cuota?
ejemplo: valor_cuota:=Payment(5,12,100000,0,ptStartOfPeriod);

si tengo 5% de tasa, a 12 meses y saldo afinanciar de 100.000 la cuota deberia ser 10.475 mensual. la funcion me devuelve 83.333 ???

gracias por la ayuda

se despide un amigo chileno.
Responder Con Cita
  #6  
Antiguo 12-04-2006
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Poder: 21
Sotrono Va por buen camino
Cita:
estoy usando la funcion correcta para calcular el valor de la cuota?
Nunca utilice esa función y mis conocimientos en finanzas no son muy grandes. La traducción de lo que dice la ayuda de Delphi sobre la función es: Calcula un pago completamente amortizado.

Bien, si lo que queres es calcular el valor de la cuota, supongo que se calcula así:
Digamos que hay que realizar un pago de $100 en 10 cuotas con un interés del 5%. El total a pagar sería $105. Si a $105 lo dividimos por la cantidad de cuotas tendriamos el valor de la cuota.
Codificado:
Código Delphi [-]
function ValorCuota(APagar : Extended; Cant_Cuotas : Integer; Interes : Real): Extended;
begin
  Result := (APagar + (Interes * APagar / 100)) / Cant_Cuotas;
end;

Como ya te dije, no tengo grandes conocimientos en finanzas, y no manejo muy bien el "lenguaje financiero", asi que ya me dirás si eso es lo que necesitabas o no.

Saludos...
Responder Con Cita
  #7  
Antiguo 12-04-2006
cmena cmena is offline
Miembro
 
Registrado: abr 2004
Ubicación: CHILE
Posts: 67
Poder: 21
cmena Va por buen camino
hola , el interes compuesto lleva operaciones exponenciales, cual es la funcion para calcular potencias ej 10 elevado a N ,
de igual forma creo que la funcion ya la yiene incorporada delphi, independiete habria qu averiguar cual y como se usa.
Responder Con Cita
  #8  
Antiguo 16-04-2006
lokodelphi lokodelphi is offline
Miembro
 
Registrado: abr 2006
Posts: 11
Poder: 0
lokodelphi Va por buen camino
bueno entonces lo q tu deseas es hallar R=p(1+i)^n

eso lo haces solo con variables y nada masalgo asi

Result := (APagar*(1+Interes)^Cant_Cuotas;
Result := (1000000*(1+0.05)^12;
el interes es en porcentaje como es el 5% lo pones asi 5/100=0.05

espero haberte ayudado
Responder Con Cita
  #9  
Antiguo 17-04-2006
smessina smessina is offline
Miembro
 
Registrado: ene 2006
Posts: 51
Poder: 19
smessina Va por buen camino
payment

el monto del prestamo si es que quieres calcular la cuota de un prestamo va en negativo :

valor_cuota:=Payment(5,12,-100000,0,ptStartOfPeriod);


ya que ese dinero es el que no tienes y debes cubrir.

espero no estar orinando fuera del tarro como se dice.

sino pido disculpas.
Responder Con Cita
  #10  
Antiguo 17-04-2006
cmena cmena is offline
Miembro
 
Registrado: abr 2004
Ubicación: CHILE
Posts: 67
Poder: 21
cmena Va por buen camino
Unhappy calcular valor cuota con payment ?

Cita:
Empezado por smessina
el monto del prestamo si es que quieres calcular la cuota de un prestamo va en negativo :

valor_cuota:=Payment(5,12,-100000,0,ptStartOfPeriod);


ya que ese dinero es el que no tienes y debes cubrir.

espero no estar orinando fuera del tarro como se dice.

sino pido disculpas.
Gracias , pero si pruebas da un valor de 83.000, esto deberia devolver un valor cuota mensual de 10.745 (hecho en calculadora hp 12c), favor me puedes ayudar ya que llevo 2 semanas en el foro y nadie anda cerca, solo tu me entiendes

gracias
Responder Con Cita
  #11  
Antiguo 17-04-2006
cmena cmena is offline
Miembro
 
Registrado: abr 2004
Ubicación: CHILE
Posts: 67
Poder: 21
cmena Va por buen camino
Cita:
Empezado por lokodelphi
bueno entonces lo q tu deseas es hallar R=p(1+i)^n

eso lo haces solo con variables y nada masalgo asi

Result := (APagar*(1+Interes)^Cant_Cuotas;
Result := (1000000*(1+0.05)^12;
el interes es en porcentaje como es el 5% lo pones asi 5/100=0.05

espero haberte ayudado
esto no funciona asi la expresion es otra, pero la idea es usar la funciones financieras de delphi, en el foro nadie entiende la pregunta si pido 100.000 al banco a 12 meses con un interes del 5% la cuota mensual deberia ser 10.745,
esto es lo que necesito
sigo en espera de ayuda
muchas gracias
Responder Con Cita
  #12  
Antiguo 17-04-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Esta es la función en D5:
Código Delphi [-]
function Payment(Rate: Extended; NPeriods: Integer; PresentValue, FutureValue:
  Extended; PaymentTime: TPaymentTime): Extended;
var
  Annuity, CompoundRN: Extended;
begin
  if Rate <= -1.0 then ArgError('Payment');
  Annuity := Annuity2(Rate, NPeriods, PaymentTime, CompoundRN);
  if CompoundRN > 1.0E16 then
    Payment := -PresentValue * Rate / (1 + Integer(PaymentTime) * Rate)
  else
    Payment := (-PresentValue * CompoundRN - FutureValue) / Annuity
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #13  
Antiguo 19-04-2006
smessina smessina is offline
Miembro
 
Registrado: ene 2006
Posts: 51
Poder: 19
smessina Va por buen camino
Cita:
Empezado por cmena
Gracias , pero si pruebas da un valor de 83.000, esto deberia devolver un valor cuota mensual de 10.745 (hecho en calculadora hp 12c), favor me puedes ayudar ya que llevo 2 semanas en el foro y nadie anda cerca, solo tu me entiendes

gracias
si lo que pasa es que la tasa no esta expresada en %
prueba asi y te dara 10.745,28 (osea la tasa seria 5/100)
Cita:
valor_cuota:=Payment(0.05,12,-100000,0,ptStartOfPeriod);
Responder Con Cita
  #14  
Antiguo 19-04-2006
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Post

Cita:
valor_cuota:=Payment(0.05,12,-100000,0,ptStartOfPeriod);
Asi es la forma correcta de obtener el resultado, encontre un link donde se muestra la forma de como usar esta funcion e incluye algo mas interesante que no se ha tocado, Pago a capital y monto del interes. Aqui el LINK.

Este ejemplo del link tiene 24 periodos, ademas de que el interes es del 8% anual. Hay que modificarlo a las necesidades reales.

Cita:
1 5983.37 4761.90 10745.28 10745.28
2 6282.54 4462.74 10745.28 10745.28
3 6596.67 4148.61 10745.28 10745.28
4 6926.50 3818.78 10745.28 10745.28
5 7272.83 3472.45 10745.28 10745.28
6 7636.47 3108.81 10745.28 10745.28
7 8018.29 2726.99 10745.28 10745.28
8 8419.21 2326.07 10745.28 10745.28
9 8840.17 1905.11 10745.28 10745.28
10 9282.17 1463.10 10745.28 10745.28
11 9746.28 998.99 10745.28 10745.28
12 10233.60 511.68 10745.28 10745.28
95238.10 33705.23 128943.33 128943.33
Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
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
Uso de la función FindComponent jessie Varios 7 27-02-2013 19:58:50
Excel Y La Funcion Sub ASAPLTDA Windows 1 03-06-2005 04:19:32
Función Last Triton Firebird e Interbase 2 25-05-2005 17:46:50
La función Ord() soul6301 Varios 2 27-06-2004 01:43:17
funcion agora18 SQL 1 06-10-2003 07:18:30


La franja horaria es GMT +2. Ahora son las 21:56:34.


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