Loading...
Petarat avatar Petarat 1 Точки

Помощ за домашно Compound interest (?)

Предварително искам да се извиня ако темата се дублира. Не успях да открия поле за търсене във форума.

Питането ми е за "Compound interest" в домашно #6 от курса "Basic programming - C#".

Не успях да разбера как се формира пълната лихва (FV - Future Value) на заем от приятел. Защото във формулата 'FV = PV * (1 + i)**n', както е дадена, присъства n в степенния показател, а в примерът за приятелския заем този показател отсъства. Четох и в Wikipedia, но не открих нищо за приятелски заем. Не съм икономист и се интересувам, защото повечето фирми в България проектират счетоводен софтуер.

На практика "приятелите" в един прекрасен момент могат да се окажат и гадняри.

1. Кое определя отсъствието на степенния показател в преятелския заем?

2. Защо не е дадено в условието? По подразбиране ли е?

3. Има ли наистна в Икономиката формула без степенен показател или в случая е по осмотрение на програмиста?

Благодаря.

1
Programming Basics
gabi.ivanova avatar gabi.ivanova 370 Точки

В икономиката няма фиксирано понятие приятелски заем, както банков заем например. Реално и формулата за банков заем е мноооого по-сложна от дадената, с много повече променливи, но идеята не е да е реално икономически точно, а да се направи правилно задачата, да се изчислят по зададените формули и да се сравнят. В този тип задачи, трябва решението да се изпълни точно така, както е описано в заданието. Тоест използваш формулата, която е дадена.

interest rate and a term  има при банката, за това степенуването ще е само при банковия заем,

приятеля иска само процент от сумата, тоест има само interest rate 

double bankLoan = priseTV * Math.Pow((1 + bankInterest), termBank);
double friendLoan = priseTV * (1 + friendInterest);

 

3
Kamigawa avatar Kamigawa 750 Точки

В задачата са визирани - сложна лихва (при банката) и проста лихва (при приятеля) - ако ти е интересно може да ги разгледаш. Разбира се има много различни формули за пресмятане на заеми - банките и маркетигнговите отдели са много креативни. Като програмист на работа няма да те занимават ти да мислиш формули, модели и тн. (сериозните фирми си имат специалисти за това), от теб ще се иска като ти дадът описание да го направиш.

1
pmpeev+deleted! avatar pmpeev+deleted! 22 Точки

Здравейте, и аз имам въпрос относно тази задача, но вместо да създавам нова тема, ще го задам тук. Успях да я реша по два начина, но второто ми решение не се приема от judge системата за вярно, защото има проблем със закръглянето след десетичния знак.

Накратко - използвам Math.Round() за закръгляне до 2 знака, но когато резултатът от изпълнението на тази функция завършва на 0, тя не се изписва. Например при краен резултат 1234.50 на конзолата се изписва 1234.5 и от там judge-а дава грешка, защото очаква 1234.50.

Въпросът ми е може ли това да се попарави по някакъв начин, по възможност без превръщане на резултата в string и слайсване.

Ето и решението ми: http://pastebin.com/uqjLZSBv

P.S. Ако някой се чуди защо използвам for цикъл за повдигане на степен, вместо Math.Pow() - причината е, че Math.Pow() не работи с decimal.

0
gabi.ivanova avatar gabi.ivanova 370 Точки

Може да използваш placeholder и да го форматираш
Console.WriteLine("{0:0.00}", var);     Console.WriteLine("{0:F2}", var);

на нулева позиция поставя променливата var във формат 0.00, ако няма цифра в промелнивата, печата 0 на конзолата. Ако имаш 254.8 ще изпечата 254.80, с F2 е същото :) може да прочетеш в книгата за форматиране на стрингове

1
pmpeev+deleted! avatar pmpeev+deleted! 22 Точки

Благодаря за отговора, но и така не сработва - продължавам да получавам грешки от рода на:

Expected output: 2255.00 Friend

Your output:         2255.0 Friend

 

0
RoYaL avatar RoYaL Trainer 6849 Точки

Не ти вярвам :) Дай да видим кода. Ето семпли тестове:

1.

Console.WriteLine("{0:F3}", Math.Round(0M, 3));

Принтира: 0.000

2.

Console.WriteLine("{0:F3}", Math.Round(0.5, 3));

Принтира: 0.500

3.

Console.WriteLine("{0:F3}", Math.Round(0.53456, 3));

Принтира: 0.535

P.S.: Math.Round-а в случая е излишен.

0
04/02/2016 14:35:14
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.