Разбор примера Aleo: начисление процентов

Kaylej
2 min readFeb 27, 2023

--

Разберём устройство программы, которая предоставляет инструментарий для вычисления процентов за фиксированное или ограниченное число итераций.

Сначала возьмём самый простой вариант:

непосредственно код
inputs

В данной программе мы посчитаем, какая будет прибыль по вкладу с 25% годовых. У нас есть “capital” — представляет денежные средства, и “rate” — процент. Далее в качестве временного отрезка возьмём календарный год.

Поскольку это простой вариант исполнения программы, то давайте захардкодим количество временных отрезков. В строке #5 видим, что мы делаем две итерации, т.е. считаем прибыль за два года. При подсчёте обязательно отмечаем, что поскольку мы работаем с числами типа integer (Leo не поддерживает float values), то при делении получившееся число округляется вниз.

Получаем:

Более сложный пример:

assert здесь выполняет проверку (и если возвращается false, то программа не выполняется). Эта проверка здесь необязательна, но разработчики решили её оставить для того, чтобы не нагружать сервер.

Отличие этого примера в том, что мы можем изменять количество операций в inputs:

Давайте попробуем самостоятельно улучшить программу. Иногда округление вниз может быть проблемой в случаях, если мы работаем с маленькими суммами. Поэтому предлагаем перед циклом число amount увеличить в 1000 раз, и в конце обратно поделить. Затем проверим выполнение старой и новой программой с данными: capital=10; rate=19; iterations=4.

Старая программа. Ответ выведен справа: 17
Новая программа. Ответ справа: 20

Проверим на калькуляторе:

20.053%

--

--