Cálculo da Aplicação Financeira

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

[ Hits: 2.526 ]

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

Um kill diferente

Script para proteção de pastas ou arquivos

Script "go" v.2 - Inicia Sessoes SSH e Terminal Service

CheckUpdate Slackware

Restaurar base de dados PostgreSQL


  

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