Procent składany (C++)

Procent składany (C++)
R3
  • Rejestracja:prawie 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:14
0

Mam takie zadanie:

Wykorzystując wzór na procent składany, napisz program drukujący stan konta bankowego po upływie każdego z kolejnych 30 miesięcy, przy założeniu, że stan początkowy konta wynosi 1mln zł, a oprocentowanie wynosi 36% rocznie. Zadanie rozwiąż w 3 wariantach:
a) Kapitalizacja odsetek następuje miesięcznie,
b) Kapitalizacja odsetek następuje kwartalnie,
c) Kapitalizacja odsetek następuje rocznie.

Byłby ktoś tak miły i pomógł mi ze zrobieniem wzoru do tego programu? Matematyka to moja słaba strona :P

Tutaj jest ten wzór: http://pl.wikipedia.org/wiki/Procent_sk%C5%82adany

edytowany 1x, ostatnio: Ramir3z
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Czego nie rozumiesz w tym wzorze?


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
R3
  • Rejestracja:prawie 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:14
0

Nie wiem np. jak obliczyć stan konta po 1 miesiącu z oprocentowaniem 36% rocznie z założeniem, że kapitalizacja odsetek następuje miesięcznie.

No bo jak...

V0 to będzie 1 000 000
m liczba kapitalizacji w roku to ma być 1/12?
n liczba lat to np. 25
r to 0.36 bo 36%

a jak z tego zrobić żeby mi odczytywał co 30 miesięcy to ja nie mam pojęcia :P (w sumie by było 10 wyświetleń na 25 lat)

edytowany 4x, ostatnio: Ramir3z
SY
  • Rejestracja:prawie 13 lat
  • Ostatnio:około 12 lat
  • Postów:1
1

Może to wyglądać tak, o ile czegoś nie pomieszałem:

Kopiuj
#include <iostream>
using namespace std;
int main()
{
    double Procent = 0.36/12.0;//oprocentowanie miesieczne
    int Okres = 30;
    int OkresKapitalizacji = 3;//3 miesiace, kwartal
    double StanKonta = 1000000;
    double Odsetki(0);

    for(int i=0;i<Okres;i++)
    {
        Odsetki+=StanKonta*Procent;
        if(i>0&&i%OkresKapitalizacji==0)
        {
            StanKonta+=Odsetki;
            Odsetki=0;
        }
        cout<<"Miesiac: "<<i+1<<" Stan Konta:"<<(int)StanKonta<<endl;
    }

    return 0;
}
 
edytowany 2x, ostatnio: szyx_yankez
R3
  • Rejestracja:prawie 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:14
0

To co napisałeś pokazuje co miesiąc, a mi chodzi o to, żeby pokazywało co 30 miesięcy przez 25 lat :|

czyli okres będzie 300? a jak pętle przerobić?

edit:
dobra już wiem - okres na 300 i w pętli dodać i= i+30;

edit2:
dalej coś nie tak :( źle wyświetla

edytowany 7x, ostatnio: Ramir3z
adf88
W pierwszym poście piszesz "po upływie każdego z kolejnych 30 miesięcy", teraz "co 30 miesięcy przez 25 lat". Zdecyduj się.
KR
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:353
0

Jesli matma to twoja slaba strona to przynajmniej udawaj ze programowac troche umiesz. i+1 jest jedynie zeby zachowac poprawne numerowanie tego sie nie zmienia. Operator %(modulo) zeby wyswietlac co okreslona ilosc.

R3
  • Rejestracja:prawie 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:14
0

I gdzie mam wstawić ten operator żeby wyświetlało po 30 miesiącach?

KR
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:353
0

Jesli nie umiesz ani programowac, ani nie ogarniasz matmy to dzial praca jest nizej.

R3
  • Rejestracja:prawie 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:14
0

Dobra nie ważne, poradziłem sobie sam ._.

vpiotr
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
0

Finansów też nie ogarniasz
a) gdzie zaokrąglenia?
b) do pieniędzy nie stosuje się typów float / double (chyba że w celach edukacyjnych)

Zobacz pozostałe 8 komentarzy
adf88
A jaka konkretnie branża? Jakiej precyzji używacie, wszystko do groszy ucinacie na etapie liczenia?
vpiotr
Bankowość i ubezpieczenia (duuże firmy). Delphi i COBOL. Może w Javie stosuje się floaty - nie wiem. Co do precyzji to nie ma wyboru - jeśli kasa to musi być zaokrąglone do dwóch miejsc. Jeśli kursy walut - to każdy kurs ma określoną precyzję. Jeśli jakieś faktory - to w zależności od faktora.
msm
@vpiotr - wiadomo że floaty w systemie dwójkowym się nie nadają (brak dokładnej reprezentacji liczb typu 0.7). Ale obliczenia też wykonujecie na precyzji do dwóch miejsc? Tzn. powiedzmy najpierw podatek 23% z 0.80 zł (=0.18 zł), następnie z 0.90zł (=0.20zł) to w sumie podatek wyniesie 0.38 zł czy 0.39 zł?
vpiotr
@msm: To podstawa działania na FV - operacje nie są odwracalne i przemienne. Jeśli podatek z pozycji wyszedł Ci 0.18 + 0.20 to suma będzie 0.38. Dlatego robi się podatek per pozycja a nie per całość. W PHP też robiłem to na intach tam gdzie mogłem.
msm
Dzięki, nie wiedziałem.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.