Cálculo da Aplicação Financeira
Publicado por Marcelo Oliver (última atualização em 18/02/2016)
[ Hits: 2.903 ]
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
Shell Script para Guia Foca Linux
Script para atualizar o Debian 13
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
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Lançamento do Brutal DOOM test 6
Consertando o erro no Brave de webgl
Solução para ter de volta as bordas e barra de títulos das janelas em zenity no Debian 13.x
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)









