Cálculo da Aplicação Financeira
Publicado por Marcelo Oliver (última atualização em 18/02/2016)
[ Hits: 2.836 ]
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
Baixa, instala, configura e executa o NO-IP.
Mudando a resolução de arquivos JPG
Dicas e explicações de comandos do Linux - rápidos e reeditáveis
Visualizar os processos que mais consomem memória
Nenhum comentário foi encontrado.
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
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
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)









