Cálculo da Aplicação Financeira

Publicado por Marcelo Oliver (última atualização em 18/02/2016)

[ Hits: 2.494 ]

Download JUROS_03.sh




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.

  



Esconder código-fonte

#!/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

Scripts recomendados

Manutenção de rede

KDE 4.1.1 no Slackware Linux 12.1

tirinha.sh

Somar e exibir resultados gerados pelo monitoramento do DNS

Monitorar capacidade das partições


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts