Cálculo da Aplicação Financeira
Publicado por Marcelo Oliver (última atualização em 18/02/2016)
[ Hits: 2.905 ]
Foi pedido por um colega no fórum, fiz o script e optei por colocar aqui, assim mais pessoas podem visualizar/utilizar. Bastante simples, informe o valor, taxa de juros e período. É mostrado uma "tabela" com o reajuste mensal.
#!/bin/bash
###############################
# GERA TABELA DE JUROS COMPOSTOS
# MARCELO OLIVER
# FEVEREIRO/2016
###############################
# VM = Valor Mensal
# TJ = Taxa de Juros
# NM = Número de Meses
# CD = CASAS DECIMAIS
# VLC = VALOR CORRIGIDO (CALCULADO)
CT="\x1B[1;38;5;4m"
CH="\x1B[1;38;5;3m"
CE="\e[0;31m"
CF="\e[m"
MSGERR="DADOS INCORRETOS\n"
CD="3"
COLS=$(($(tput cols)/2))
INICIO() {
printf "$CT\n Informe o Solicitado:\n$CF"
LinHzt;LinHzt
PEGAVM ; PEGATJ ; PEGANM
}
PEGAVM() {
SRC=VM
MSG="VALOR:"
PERGUNTA
}
PEGATJ() {
SRC=TJ
MSG="JUROS:"
PERGUNTA
TJ=$(bc <<< "scale=$CD;($TJ/100)+1")
}
PEGANM() {
SRC=NM
MSG="MESES:"
PERGUNTA
}
PERGUNTA() {
printf ""$CT" $MSG"$CF""
read -p " "
[ $REPLY ] || ALERTA
#TROCA "," p/ ".". TIRA "." DO FINAL
REPLY=$(sed 's/,/\./g;s/\.$//' <<< "$REPLY")
#BUSCA POR CARACTER DIFERENTE DE [0-9] e \.
if egrep -q '[[:alpha:]+!@#$%&*()_+=><;:/?\|-]+' <<< "$REPLY";then
echo -e "\n"$CE" $MSGERR"$CF""
PERGUNTA
else
case $SRC in
VM) TST00 ;;
TJ) TST01 ;;
NM) TST02 ;;
esac
fi
}
TST00() {
if egrep -q "^([0-9]+\.?[0-9]{0,2})$" <<< "$REPLY";then
GERAVAR
else
echo -e "\n"$CE" $MSGERR"$CF""
PERGUNTA
fi
}
TST01() {
if egrep -q "^([0-9]+\.?[0-9]*)$" <<< "$REPLY";then
GERAVAR
else
echo -e "\n"$CE" $MSGERR"$CF""
PERGUNTA
fi
}
TST02() {
if egrep -q '\.+' <<< "$REPLY";then
echo -e "\n"$CE" $MSGERR"$CF""
PERGUNTA
else
GERAVAR ; GERATAB
fi
}
GERAVAR() {
eval $SRC="$REPLY"
}
GERATAB() {
unset VLC;LinHzt
for ((X=1;X<=$NM;X++));do
if [ $VLC ];then
VLC=$(bc <<< "scale=$CD;(($VM+$VLC)*$TJ)")
else
VLC=$(bc <<< "scale=$CD;($VM*$TJ)")
fi
LinHzt
sleep 0.125
#ARREDONDA
VLCAR=$(bc <<< "$VLC+0.005")
#TIRA 3ª CASA DECIMAL
VLCDE=$(sed 's/.$//' <<< "$VLCAR")
VLCDEV=$(sed 's/\./\,/' <<< "$VLCDE")
printf ""$CT" Mês => %02d"$CF" %s\n" $X $VLCDEV;
done;LinHzt
}
ALERTA() {
echo -e " "$CE"\nPREENCHIMENTO OBRIGATÓRIO!"$CF"" ; HELP ; sleep 1.5 ; PERGUNTA
}
LinHzt() { printf '%*s' "$COLS" '' | sed "s/ /—/g" ;echo; }
HELP() {
printf "\n"$CH"$(LinHzt)\n Modo de USO:\n$(LinHzt)
"$CF""$CT"VM = Valor Mensal"$CF""$CH"\n FORMATO: 100 ou 100,00
"$CF""$CT"TJ = Taxa de Juros"$CF""$CH"\n FORMATO: 1, 1,00, 1.275.
"$CF""$CT"NM = Período/Meses"$CF""$CH"\n FORMATO: Número INTEIRO.
"$CF""$CT"CD = CASAS DECIMAIS"$CF""$CH" => NãO ALTERAR
Calcula com três casas, arredonda
e elimina a 3ª casa decimal.\n$(LinHzt)"$CF""$CE"
OBS.: A TJ e dividida por 100."$CH"
$(LinHzt)"$CF"\n"
}
INICIO
Script de backup para banco Firebird
[ResuLinux] Discador Claro 3G em dialog
Nenhum comentário foi encontrado.
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Abrir um arquivo URL pelo Clipper (8)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









