Juros compostos usando bc
Publicado por Augusto 05/02/2006
[ Hits: 9.029 ]
um scriptzinho bem simples para o cálculo de juros usando o comando linguagem bc,...
sintese: M=C(1+T)^i
jrcomp.Ah <M> <C> <T> <i>
entre com os valores conhecidos e x para o valor a ser cálculado,...
No próprio script tem + info,...
bjunda a tds,.
#!/bin/bash
# cálculo de juros composto usando bc
# Cálculo do Montante
# M = C (1+T)^i
# Cálculo do Capital
# C = M / (1+T)^i
# Cálculo da Taxa
# Acompanhe o raciocínio
# M = C (1+T)^i
# M/C = (1+T)^i
# ln(M/C) = ln((1+T)^i)
# ln(M/C) = i ln(1+T) # Eq (I)
# ln(M/C)/i = ln(1+T)
# ln(1+T) = ln(M/C)/i
# 1+T = e^(ln(M/C)/i)
# T = e^(ln(M/C)/i) - 1
# Cálculo do índice
# da Eq (I) temos:
# ln(M/C) = i ln(1+T) de onde teremos:
# i ln(1+T) = ln(M/C)
# i = ln(M/C)/ln(1+T)
# função
Sintase-f () {
echo "Sintase jrcomp.Ah <M> <C> <T> <i>"
echo "onde: M = C (1+T)^i"
echo "coloque todos os três valores conhecidos e x para o valor a ser calculado."
echo Formato
echo "M e C XX.XX - valor de moeda"
echo "T XX - em percentual com ponto como divisor decimal"
echo "i XX - número natural"
echo
}
# setando as váriáveis caso os valores existam.
M=$1
C=$2
T=$3
i=$4
if [ -z $1 ] # -z indica que $1 é nulo
then
Sintase-f
echo "por favor informe o montante(M)"
read M
fi
if [ -z $2 ]
then
Sintase-f
echo "M=$M"
echo
echo "por favor informe o capital(C)"
read C
fi
if [ -z $3 ]
then
Sintase-f
echo "M=$M"
echo "C=$C"
echo
echo "por favor informe a taxa(T)"
read T
echo
fi
if [ -z $4 ]
then
Sintase-f
echo "M=$M"
echo "C=$C"
echo "T=$T"
echo
echo "por favor informe o índice(i)"
read i
fi
if [ $M = x ]
then
# calcula o montante com a equação M = C (1+T)^i
R=`bc -l << fim # R recebe o resultado para podermos acertar o número de casas decimais logo abaixo,. usamos 50 casas decimais para fazermos um bom calculo.
scale=50
$C*(1+$T/100)^$i
fim`
CS=2 # retorna resultado com 2 casas decimais.
elif [ $C = x ]
then
# calcula o capital com a equação C = M / (1+T)^i
R=`bc -l << fim # R recebe o resultado para podermos acertar o número de casas decimais logo abaixo,. usamos 50 casas decimais para fazermos um bom calculo.
scale=50
$M/(1+$T/100)^$i
fim`
CS=2
elif [ $T = x ]
then
# calcula a taxa com a equação T = e^(ln(M/C)/i) - 1
R=`bc -l << fim # R recebe o resultado para podermos acertar o número de casas decimais logo abaixo,. usamos 50 casas decimais para fazermos um bom calculo.
scale=50
100*(e(l($M/$C)/$i)-1)
fim`
CS=2
elif [ $i = x ]
then
R=`bc -l << fim # R recebe o resultado para podermos acertar o número de casas decimais logo abaixo,. usamos 50 casas decimais para fazermos um bom calculo.
scale=50
l($M/$C)/l(1+$T/100)
fim`
CS=0
fi
bc -l << fim #esta parte é apenas para acertar o número de casas decimais a multiplicação e divisão por 100 serve apenas para enganar o bc.
scale=$CS
100*$R/100
fim
Monta Pen-Drive Windows no Linux
Backup e restauração dos programas instalados em sistemas baseados em Debian
Criando um pacote autoinstalador em shell
Mostrando informações sobre conexões ppp dos clientes
Script de backup em um case USB
Nenhum comentário foi encontrado.
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









