Nie mam pojęcia jak to zrobić, próbuje od 2 dni. Jest to pewnie banalnie proste ale mi nie wychodzi. Proszę o pomoc...!
Nie mam pojęcia jak to zrobić, próbuje od 2 dni. Jest to pewnie banalnie proste ale mi nie wychodzi. Proszę o pomoc...!
Owszem, to jest banalnie proste. Pokaż, co udało ci się do tej pory samemu stworzyć.
Wydaje mi się, że mam źle zrobione obliczenia.
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ć.
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:
lossPerYear = Wp * 0,0087;
totalLoss = Wp - lossPerYear * period;
ALE UWAGA NA PUŁAPKĘ! Tutaj jest pomieszana arytmetyka stało ze zmiennoprzecinkową :]
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ć :(
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
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.