LINUX.ORG.RU

[Cпецам по BASH] Процентная ставка


0

0

Приветствую. Дано: денежная сумма 100000р, процентная ставка 15 % годовых, время - 10 лет. Нужно написать скрипт на BASH, который бы рассчитал, сколько денег у нас будет на счету при таком раскладе через 10 лет. Начал читать книгу Дэвида Тейнсли, но судя по всему она уже немного устарела. В результате у меня затык с математическими выражениями. Вот что есть:

#!/bin/bash

money = 100000 ;
time = 10;
percent = 0,15;

while [ $time -le 0 ]
do

done
Помогите пожалуйста дописать скрипт. Заранее спасибо.

>>Начал читать книгу Дэвида Тейнсли

Лучше математику, 3-й класс

Hober
()

а ета шо ужо линупс в интернатах для лиц с неторопливым развитием начали преподавать?

anonymous
()
Ответ на: комментарий от anonymous

user@host:~/Desktop$ cat ./summ.CPP
#include <iostream>
using namespace std; ;// подключение модуля для работы с экраном

int main(void)
{
int time = 10;
int money = 100000;
int percent = 15;

int year = 1; //cчетчик - не трогать

for ( ; time > 0 ; ) {
money = money + ( money / 100 ) * percent ;
cout << «Year: » << year << " " << money << «\n» ;
year++;
--time;
}
}
user@host:~/Desktop$ ./a.out
Year: 1 115000
Year: 2 132250
Year: 3 152080
Year: 4 174880
Year: 5 201100
Year: 6 231265
Year: 7 265945
Year: 8 305830
Year: 9 351700
Year: 10 404455

Superuser9
() автор топика
Ответ на: комментарий от Superuser9
using namespace std; ;// подключение модуля для работы с экраном
for ( ; time > 0 ; )
year++;
--time;

Почему так?

<< "\n"
anonymous
()
Ответ на: комментарий от abraziv_whiskey

Кстати! Я лично получал на руки протокол заправок (машин бензином), в котором рубли округлялись до третьего знака после запятой.

abraziv_whiskey ★★★★★
()
Ответ на: комментарий от Superuser9

Смущает несоответствие обычаям делового оборота и некоторым указаниям минфина. Программисту простительно о них не знать до тех пор, пока его программы не применяются для денежных расчетов.

abraziv_whiskey ★★★★★
()
Ответ на: комментарий от abraziv_whiskey

Ты пьян? Какой тут минфин тут хотя бы четверть закрыть.

anonymous
()

#!/bin/sh
money=100000
time=10
percent=0.15

for time in `seq 0 $time`; do
echo $time, $money
money=`echo $money «*» $percent + $money|bc -l`
done

Округление до копеек допишете сами

fluorite ★★★★★
()
Ответ на: комментарий от fluorite

> bc -l
Опередил. Кстати, на bc можно вполне себе программы писать.

AITap ★★★★★
()
Ответ на: комментарий от anonymous

О как. Чистенько стало.

#include <iostream>

const int MAX_YEARS_COUNT = 1000;
const double MAX_MONEY = 100000.;
const double MAX_PERCENT = 1000.;

int main(int argc, char *argv[])
{
	using namespace std;

	int yearsCount = 0;
	do
	{
		cout << "Enter years count: ";
		cin >> yearsCount;
	} while (yearsCount < 1 || yearsCount > MAX_YEARS_COUNT);

	double initialMoney = 0;
	do
	{
		cout << "Enter initial money: ";
		cin >> initialMoney;
	} while (initialMoney < 0. || initialMoney > MAX_MONEY);

	double percent = 0;
	do
	{
		cout << "Enter percent: ";
		cin >> percent;
	} while (percent < 0. || percent > MAX_PERCENT);

	double money = initialMoney;

	for(int i = 0; i < yearsCount; ++i)
	{
		money += (money / 100.) * percent;
		cout << "Year: " << i + 1 << "; money: " << money << endl;
	}

	return 0;
}
facelift
()
Ответ на: комментарий от facelift

Ввод с клавиатуры - признак школоты.

Программа должна читать параметры командной строки, или, если данных много, stdin, перенаправленный из файла или конвеера.

ip1981 ☆☆
()
Ответ на: комментарий от Superuser9

> Отписавшихся выше личностей я ненавижу. Честное слово.

Ненавидь пожалуйста меня тоже. А то я просто не успел, за всем-то не поспеешь.

sin_a ★★★★★
()
Ответ на: комментарий от mclaudt

Такой хак не округляет а отбрасывает дробную часть.

Пожалуйста:

echo "scale=10; x = ${money} * (1 + ${percent}/100)^${time}+0.005; scale=2; x/1" | bc 

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

хех красиво, но для отрицательных сумм не сработает. В интернетах советуют однако юзать printf пайпом после bc.

mclaudt
()
Ответ на: комментарий от Superuser9

>using namespace std; ;// подключение модуля для работы с экраном

Отчислить.

anonymous
()

Сложные проценты мы проходили в тертьем классе. Сейчас вообще, наверное, проходят в старшей группе детского сада. Сам думай!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.