Pular para o conteúdo

Juros compostos usando bc

um scriptzinho bem simples para o cálculo de juros usando o comando linguagem bc,...

sintese:         M=C(1+T)^i
              jrcomp.Ah <M> <C> <T> <i>
              entre com os valores conhecidos e x para o valor a ser cálculado,...
     No próprio script tem + info,...

  bjunda a tds,.
Augusto enki1
Hits: 9.143 Categoria: Shell Script Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

um scriptzinho bem simples para o cálculo de juros usando o comando linguagem bc,...

sintese:         M=C(1+T)^i
              jrcomp.Ah <M> <C> <T> <i>
              entre com os valores conhecidos e x para o valor a ser cálculado,...
     No próprio script tem + info,...

  bjunda a tds,.
Download jrcomp.Ah Enviar nova versão

Esconder código-fonte

#!/bin/bash
# cálculo de juros composto usando bc


# Cálculo do Montante

# M = C (1+T)^i

# Cálculo do Capital

# C = M / (1+T)^i

# Cálculo da Taxa

# Acompanhe o raciocínio

# M = C (1+T)^i
# M/C = (1+T)^i
# ln(M/C) = ln((1+T)^i)
# ln(M/C) = i ln(1+T) # Eq (I)
# ln(M/C)/i = ln(1+T)
# ln(1+T) = ln(M/C)/i
# 1+T = e^(ln(M/C)/i)

# T = e^(ln(M/C)/i) - 1

# Cálculo do índice

# da Eq (I) temos:
# ln(M/C) = i ln(1+T) de onde teremos:
# i ln(1+T) = ln(M/C)
# i = ln(M/C)/ln(1+T)

# função

Sintase-f () {
        echo "Sintase jrcomp.Ah <M>  <C>  <T>  <i>"
        echo "onde: M = C (1+T)^i"
        echo "coloque todos os três valores conhecidos e x para o valor a ser calculado."
        echo Formato
        echo "M e C XX.XX - valor de moeda"
        echo "T XX - em percentual com ponto como divisor decimal"
        echo "i XX - número natural"
        echo
}


# setando as váriáveis caso os valores existam.

M=$1
C=$2
T=$3
i=$4

if [ -z $1 ]  # -z indica que $1 é nulo
    then
        Sintase-f
        echo "por favor informe o montante(M)"
        read M
fi

if [ -z $2 ]
    then
        Sintase-f
        echo "M=$M"
        echo
        echo "por favor informe o capital(C)"
        read C
fi

if [ -z $3 ]
    then
        Sintase-f
        echo "M=$M"
        echo "C=$C"
        echo
        echo "por favor informe a taxa(T)"
        read T
        echo
fi

if [ -z $4 ]
    then
        Sintase-f
        echo "M=$M"
        echo "C=$C"
        echo "T=$T"
        echo
        echo "por favor informe o índice(i)"
        read i
fi

if [ $M = x ]
    then
        # calcula o montante com a equação M = C (1+T)^i
        R=`bc -l << fim  # R recebe o resultado para podermos acertar o número de casas decimais logo abaixo,. usamos 50 casas decimais para fazermos um bom calculo.

scale=50

$C*(1+$T/100)^$i

fim`

CS=2  # retorna resultado com 2 casas decimais.

    elif [ $C = x ]
        then
       # calcula o capital com a equação C = M / (1+T)^i
         R=`bc -l << fim # R recebe o resultado para podermos acertar o número de casas decimais logo abaixo,. usamos 50 casas decimais para fazermos um bom calculo.
scale=50

$M/(1+$T/100)^$i

fim`

CS=2

    elif [ $T = x ]
        then
        # calcula a taxa com a equação T = e^(ln(M/C)/i) - 1
        R=`bc -l << fim  # R recebe o resultado para podermos acertar o número de casas decimais logo abaixo,. usamos 50 casas decimais para fazermos um bom calculo.

scale=50

100*(e(l($M/$C)/$i)-1)

fim`

CS=2

    elif [ $i = x ]
        then
        R=`bc -l << fim  # R recebe o resultado para podermos acertar o número de casas decimais logo abaixo,. usamos 50 casas decimais para fazermos um bom calculo.

scale=50

l($M/$C)/l(1+$T/100)

fim`

CS=0

fi


bc -l << fim  #esta parte é apenas para acertar o número de casas decimais a multiplicação e divisão por 100 serve apenas para enganar o bc.

scale=$CS

100*$R/100

fim

Instalador do plugin Flash 64 bits para Linux e UNIX/UNIX-like

Atualizador do Ubuntu

Menu Horario de Verão

Limpar pacotes com versões antigas do cache do apt

Conversor de vídeo com opção de legenda

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.