Juros compostos usando bc

Publicado por Augusto 05/02/2006

[ Hits: 8.543 ]

Download jrcomp.Ah




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,.

  



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

Scripts recomendados

Firewall

Alce - Alternativa ao Cowsay

wget com progressbar no kde

Mostrar o IP externo

Uebevert - All in One [version 3]


  

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