Juros compostos usando bc
Publicado por Augusto 05/02/2006
[ Hits: 8.938 ]
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
Backup para fita dat em Dialog
Remover e-mails com MX inexistente e status deferred em servidores Postfix
PINGS - Ping para diversos hosts em varios consoles
Script de Backup de DVD com growisofs
Papel de parede mundial ( para quem usa GUI )
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









