Cálculo da Aplicação Financeira

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

[ Hits: 2.508 ]

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

Atualizar status do MSN via shell script

Codecs DVD no Ubuntu

sys_info - exibe o status do sistema

Reduzir mp3 para celular

Criando uma lixeira p/ o usuário


  

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