Newsgroup: it.comp.lang.visual-basic
Titolo: Calcolo dell'importo rateale.

Chi mi sa dire come calcolo in VB6 l'importo delle singole rate avendo:
Prezzo= 10.000 Euro
Tan = 8,5
N° rate 60
Ciao e grazie

[*Kjo* = 
alem...@libero.it
 in
news:poFBb.180419$
e6.67...@twister2.libero.it
] ha scritto:

Io di 'ste cose non ci capisco nulla, ma vedi sulla guida le varie funzioni
PMT, IPMT, NPAR, RATE e "Vedere Anche"


1° Non hai detto se sono rate mensili, bimestrali o semestrali.
2° Le informazioni sul tasso non sono sufficienti...(annuo?)
3° Non è assolutamente un problema di VB!
4° Perchè posti due volte?
5° Perchè non te lo cerchi su Google?
6° Pensi che ti stia fregando la banca?
MIk

 2° Le informazioni sul tasso non sono sufficienti...(annuo?)
secondo te, tan che cosa vuol dire?
--
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 secondo te, tan che cosa vuol dire?
Un chiarimento: nella sigla Tan, che immagino sia 'Tasso [di interesse]
Annuo' è già implicito anche il concetto di capitalizzazione su base
annuale?
O va specificato a parte?
Ciao
Alberto

 O va specificato a parte?
ecchennesò?
http://www.bancatoscana.it/info/glossario.asp?ID=TAN%20(tasso%20annuale%20no
minale)#282


 secondo te, tan che cosa vuol dire?
Figuraccia di emme!
Meno male che Albe mi ha salvato....
..o almeno spero...vado a vedere il link!
MIk

 6° Pensi che ti stia fregando la banca?
NO

 ......fai un po' tu, cerco un'istruzione VBe come si usa!
 AND, NOT e OR sono noti a tutti, sono operatori VB e fanno anche quello che
chiedi.
termoPilucco, prego.

 quello che chiedi.
Ehhhh?!

 Ehhhh?!
Beh, la domanda era di diffcile interpretazione: l'autore voleva
"l'istruzione VB" che facesse un calcolo non definito il cui esempio era per
sua stessa ammissione sbagliato.
Tuttavia se qualcosa può essere fatto con un PC (qualunque cosa intendesse
fare) può essere anche fatto con il semplice uso degli operatori AND, OR e
NOT (1)
Certo, per fare una moltiplicazione ci vogliono le oo, però si può fare.
termoPilucco.
(1) In realtà basterebbero OR e NAND, ma quest'ultimo non è supportato in VB

 era per sua stessa ammissione sbagliato.
Ho la sensazione che ti sia sfuggito il post originale...

 Ho la sensazione che ti sia sfuggito il post originale...
Era:
<cit>
Chi mi sa dire come calcolo in VB6 l'importo delle singole  rate avendo:
Prezzo totale da pagare = 10.000 Euro
Tan = 8,5
N° rate = 60
</cit>
Dove "calcolo in VB6" in realtà non dipende dal linguaggio ma dalle regole
dalle regole finanziarie, che a loro volta dipendono dai dati di input e che
dai post successivi si deduce siano insufficienti.<respiro/>
Alla richiesta di delucidazioni l'autore ha risposto:
<ricit>non mi interessa il RISULTATO
dell'esempio che ho inventato, l'istruzione VB da usare e come
usarla.</ricit>
La soluzione è un algoritmo che fa qualcosa che non è il calcolo
"dell'esempio che ha inventato", ma che calcoli l'importo delle singole
rate.
E deve essere un'istruzione VB :)
Per non saper ne' leggere ne' scrivere con AND OR e NOT puoi calcolare tutto
quello che è calcolabile...
termoPilucco, sì, forse sono stato un po' criptico (come l'autore?)

 termoPilucco, sì, forse sono stato un po' criptico (come l'autore?)
Bohhhh, a me la richiesta sembra molto chiara e VB ha delle funzioni
apposite (almeno credo che bastino, conoscendone l'uso applicativo), ma il
mio post è stato evidentemente cestinato...

 mio post č stato evidentemente cestinato...
Sě, le Vba.Financial.* , ma sono funzioni impegnative da usare senza il
supporto completo del NG :)
Comunque il discorso č semplice: il problema č di tipo finanziario: chi deve
risolverlo trova la formula che gli serve (se qualcuno la sa, la puň anche
dire) e poi, se non sa implementarla (?) chiede qui come fare.
Se poi č una singola istruzione tanto meglio.
Piuttosto che come implementarla gli direi di stare attento ai numeri in
virgola mobile, no? :)
termoPilucco.

 in virgola mobile, no? :)
:-)
Quando si parla di numeri in virgola mobile, io faccio sempre l'esempio che
l'unico caso in cui vedo indispensabile usarli è nei calcoli di
capitalizzazioni e storicizzazioni (relativamente al tasso), per poi
moltiplicarlo per il valore long o currency o Decimal dell'importo.
Ciao
Alberto

 il cui esempio era per sua stessa ammissione sbagliato.
Ho detto inventato, non sbagliato.
Mai sentito parlare di istruzioni VB come Rate, Pmt, PPmt, Npv, NPer....
Ecco, chiedevo semplicemente quale usare di queste ed in che modo.
In alternativa esiste anche un calcolo approssimato dato dal seguente
algoritmo.
Public Function RataMutuo(Tasso As Double, lImporto As Double, lNumeroRate
As Double, lAnticipo As Double) As Double
Dim TassoRateale As Double
Dim IntRata As Double
lImporto = lImporto - lAnticipo
TassoRateale = (Tasso / 100) / 12
IntRata = TassoRateale * (lImporto)
RataMutuo = (lImporto * TassoRateale) / (1 - ((1 + TassoRateale) ^ (-1 *
lNumeroRate)))
End Function

Scusate il nick differente, Yehee e' Kjo
Ciao

 modo.
Ehilà alias Kjo, ma allora sei fuori tu!
Conosci le istruzioni (o ne sei venuto a conoscenza) e non ti degni di dare
una risposta a chi te le aveva indicate sperando di darti la soluzione
definitiva.
Polemizzi con le palesi esagerazioni di termoPilucco che, a questo punto lo
dico chiaro, aveva inteso il vero scopo della questione e ne aveva discusso
su basi concettuali generiche.
Chiedi come fare ad usare quelle istruzioni...
Senti un po', io vorrei mandare un razzo sulla luna. Sono certo che si può
fare con qualche calcolo. Mi dici come fare questi calcoli? Se dico che lo
vorrei fare in VB, pensi davvero che rientro InTopic?

 fare con qualche calcolo. Mi dici come fare questi calcoli?
Non ti pare che la mia domanda abbia una risposta ben piu' precisa?
la funzione qua sotto mi calcola esattamente il valore 184?
*******************************************************************
Public Function RataMutuo(Tasso As Double, lImporto As Double, lNumeroRate
As Double, lAnticipo As Double) As Double
Dim TassoRateale As Double
Dim IntRata As Double
lImporto = lImporto - lAnticipo
TassoRateale = (Tasso / 100) / 12
IntRata = TassoRateale * (lImporto)
RataMutuo = (lImporto * TassoRateale) / (1 - ((1 + TassoRateale) ^ (-1 *
lNumeroRate)))
End Function
*******************************************************************
Penso che una delle istruzioni di cui abbiamo parlato (dopo avere appreso da
te che esistono), risolva lo stesso calcolo con una precisione maggiore (il
calcolo sopra e' assolutamente accettabile ma approssimato) ma non sono
riuscito a farlo.

 algoritmo.
Perň, quante cose che saltano fuori...
termoPilucco

 approssimato) ma non sono riuscito a farlo.
Questa funzione calcola 183.11 e rotti. Tu vuoi 184 e non ce la fai?

 As Double, lAnticipo As Double) As Double
<CUT>
credo che il quesito sia OT su questo NG, in quanto non e' un problema di
linguaggio ma di matematica finanziaria.
e' vero che in vb esistono funzioni apposite, ma il vero problema e' sapere
la formula completa di cio' che si vuole ottenere.
sapendo il tasso annuo ad esempio per ottenere il tasso mensile, in
considerazione dell'interesse composto, la formula e' data da
tasso mensile = ((1 + (tasso annuo / 100)) ^ (1/12)) -1
un esempio che potrebbe rispondere piu' o meno a quanto da te richiesto
potrebbe essere:
Private Sub Command1_Click()
    Dim Rata As Single, NumeroRateAnno As Integer, _
        Capitale As Single, TassoAnnuo As Single, _
        NumeroRate As Integer
    NumeroRateAnno = 12 'Val(Text1)
    TassoAnnuo = 8.5 'Val(Text2)
    NumeroRate = 60 'Val(Text3)
    Capitale = 1000 'Val(Text4) 'capitale da rimborsare
    Rata = (Capitale * ((1 + (TassoAnnuo / 100)) ^ (1 / NumeroRateAnno)) _
        ^ NumeroRate) / NumeroRate
    MsgBox "Importo Rata Mensile **  " & Rata & vbNewLine & _
        "Capitale Totale **  " & Rata * NumeroRate
End Sub
in realta' e' un po' piu' complesso e quindi e' meglio un NG piu' specifico.
beppe

 la funzione qua sotto mi calcola esattamente il valore 184?
Se ti dà 184 è puro culo.
Con quei double messi ovunque e, soprattutto, a sproposito, non credo ti
restituisca ciò che vuoi.
Ciao
Alberto

Ciao,
rileggendo meglio:
Private Sub Command1_Click()
    Dim CapitaleReso As Single, NumeroRateAnno As Integer, _
        CapitaleRichiesto As Single, TassoAnnuo As Single, _
        NumeroRate As Integer, TassoMensile As Single, _
        N As Integer, Mensile As Single
    NumeroRateAnno = 12 'Val(Text1)
    TassoAnnuo = 8.5 'Val(Text2)
    NumeroRate = 60 'Val(Text3)
    CapitaleRichiesto = 8925 'Val(Text4)
    TassoMensile = (1 + (TassoAnnuo / 100)) ^ (1 / NumeroRateAnno)
    Mensile = CapitaleRichiesto / NumeroRate
    For N = 1 To NumeroRate
        CapitaleReso = CapitaleReso + CalcoloRata(Mensile, TassoMensile, N)
'        CapitaleReso = CapitaleReso + (Mensile * (TassoMensile ^ N))
    Next N
    MsgBox "Capitale Reso " & CapitaleReso & vbNewLine & _
        "Rata mensile " & CapitaleReso / NumeroRate
End Sub
Function CalcoloRata(Importo As Single, Tasso As Single, Rate As Integer) As
Single
    CalcoloRata = Importo * (Tasso ^ Rate)
    Debug.Print Rate & "  " & CalcoloRata
End Function
rimane comunque il problema che devi stabilire se le rate sono costanti, se
sono anticipate o posticipate, se rimborsi prima la quota capitali od
interessi ecc.
quindi il problema e' essenzialmente di matematica finanziaria.
beppe

 No. Ho provato la Pmt e ottiene 183.11 e rotti.
Ti ringrazio, Pmt  e' esattamente quello che cercavo.
L'avavo provata anche quando me l'hai suggerita la prima volta, ma sbagliavo
a passare il tasso e mi restituiva valori enormi.
A tutti gli altri che hanno tanto chiacchierato, la risposta e' abbasatnza
chiara?

 chiara?
La risposta sě, la domanda invece sembrava scritta da un idiota presuntuoso.
Ma forse mi sbaglio.
Buon Natale.
termoPilucco, rumore di tappo che cade sul fondo del cestino.

 La risposta sì, la domanda invece sembrava scritta da un idiota
presuntuoso.
p.s.
        hai l'atteggiamento del programmatorino vb che dopo un paio di
annetti si crede un guru....studia che ne devi fare di strada...

 restituisca ciň che vuoi.
Insisti, questo e' un pezzo di codice inviatomi da una persona molto piu'
sveglia di voi che lo ha scritto al volo per darmi una dritta.
Hai imparato ieri cosa sono i double che enfatizzi tanto?
Lascia stare i tipi di dato che sappiamo tutti e due come e dove sono
appropriati.

 piu' sveglia di voi che lo ha scritto al volo per darmi una dritta.
termopilucco si crederą anche un guru, perņ almeno lavora sul suo,
tu invece fai parte dei guru per interposta persona...
tra i due, se devo scegliere...
taccio per caritą cristiana sui tuoi apprezzamenti relativi alla
dimestichezza che albe ha con i double...


 appropriati.
Kjo, ... nunt'allargà...

Saluti a tutti i REUCCI di questo NG e buon Natale.
State tranquilli, il vostro piccolo Regnetto non sata piu' violato dalla
banalita' di certe domande.

 supportato in VB
Visto che ormai siamo OT...
Basterebbero le sole NAND (1) oppure le sole NOR (2).
(1)
NOT(A) = A NAND A
A AND B = NOT(A NAND B) = (A NAND B) NAND (A NAND B)
A OR B = NOT(A) NAND NOT(B) = (A NAND A) NAND (B NAND B)
(2) Esercizio per casa.
Ignazio