Pętle c++

0

2.PNG
1.PNG

Nie mam pojęcia jak to zrobić, próbuje od 2 dni. Jest to pewnie banalnie proste ale mi nie wychodzi. Proszę o pomoc...!

0

Owszem, to jest banalnie proste. Pokaż, co udało ci się do tej pory samemu stworzyć.

0

3.PNG
Wydaje mi się, że mam źle zrobione obliczenia.

0

Ale też Wp to początkowa moc, więc jak chcemy obliczyć ile jej zostanie po x latach to chyba musimy zrobic tak: Wp-(Wp0,9913x). Nie mam pojęcia jak to inaczej zrobić.

0

Używaj znacznika code tutaj na forum zamiast wklejania obrazka z kodem źródłowym. To jest to </> na końcu paska edycji.
A co do obliczeń, to generalnie kombinujesz dobrze. Aby wyliczyć ten spadek mocy musisz zrobić po kolei:

  • obliczyć ile mocy straty będzie po jednym roku. To proste, lossPerYear = Wp * 0,0087;
  • następnie obliczyć, ile będzie stat całkowitych po X latach. To też proste, totalLoss = Wp - lossPerYear * period;

ALE UWAGA NA PUŁAPKĘ! Tutaj jest pomieszana arytmetyka stało ze zmiennoprzecinkową :]

0

To chyba właśnie ta arytmetyka jest dla mnie trudnością, bo moje wyniki różnią się od tych co powinny być o wartość wynoszącą np 2,10 w skali tysięcy.
EDIT: Nadal nie potrafię tego zrobić :(

0

Poszukaj w góglach hasła - rzutowanie.
Potrzebujesz w działaniach zapewnić, że te dane jakich używasz są traktowane jako double.
EDIT:
Nie do końca poprawnie podpowiedziałem, strata 0.87% jest z bieżącej mocy. To zatem wzór będzie inny:

totalPower = Wp;//na starcie moc jest taka jak wejściowa
for (int cnt = 0; cnt < period; cnt++)
{
    //co 1 rok od bieżącej mocy odejmuj 0.87%
    totalPower = totalPower - totalPower * 0.0087
}

no, to tylko to rzutowanie na typy zmiennoprzecinkowe ogarnij, i będziesz w domu

1

Po co tutaj pętla? return Wp * pow(0.9913, period);, ot całe zadanie

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.