Java ::: Dicas & Truques ::: Matemática e Estatística

Como calcular juros compostos e montante usando a linguagem Java - Fórmula de juros compostos em Java - Revisado

Quantidade de visualizações: 20920 vezes
O regime de juros compostos é o mais comum no sistema financeiro e, portanto, o mais útil para cálculos de problemas do dia-a-dia. Os juros gerados a cada período são incorporados ao principal para o cálculo dos juros do período seguinte.

Chamamos de capitalização o momento em que os juros são incorporados ao principal. Assim, após três meses de capitalização, temos:

1º mês: M = P .(1 + i)
2º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i)
3º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i) x (1 + i)

Simplificando, obtemos a fórmula:

M = P . (1 + i)^n

Importante: a taxa i tem que ser expressa na mesma medida de tempo de n, ou seja, taxa de juros ao mês para n meses.

Para calcularmos apenas os juros basta diminuir o principal do montante ao final do período:

J = M - P

Vejamos um exemplo:

Considerando que uma pessoa empresta a outra a quantia de R$ 2.000,00, a juros compostos, pelo prazo de 3 meses, à taxa de 3% ao mês. Quanto deverá ser pago de juros?

Veja o código Java para a resolução:

public class Estudos{
  public static void main(String args[]){
    double principal = 2000.00;
    double taxa = 0.03;
    int meses = 3;
   
    double montante = principal * Math.pow((1 + taxa), meses);  
    double juros = montante - principal;
 
    System.out.println("O total de juros a ser pago é: " 
      + juros);
    System.out.println("O montante a ser pago é: " 
      + montante);
 
    System.exit(0);
  }
}

Ao executarmos este código nós teremos o seguinte resultado:

O total de juros a ser pago é: 185.45400000000018
O montante a ser pago é: 2185.454

É claro que uma formatação para moeda deixaria os valores mais bonitos.

Uma outra aplicação interessante é mostrar mês a mês a evolução dos juros.

Veja o código a seguir:

public class Estudos{
  public static void main(String args[]){
    double principal = 2000.00;
    double taxa = 0.03;
    int meses = 3;
    double anterior = 0.0;  
 
    for(int i = 1; i <= meses; i++){
      double montante = principal * Math.pow((1 + taxa), i);
      double juros = montante - principal - anterior;
       
      anterior += juros;
 
      System.out.println("Mês: " + i + " - Montante: " 
        + montante + " - Juros: " + juros);
    }     
 
    System.exit(0);
  }
}

Ao executarmos este código nós teremos o seguinte resultado:

Mês: 1 - Montante: 2060.0 - Juros: 60.0
Mês: 2 - Montante: 2121.7999999999997 - Juros: 61.79999999999973
Mês: 3 - Montante: 2185.454 - Juros: 63.65400000000045

Esta dica foi revisada e testada no Java 8.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Java - Como testar se um array possui valores repetidos em Java

Quantidade de visualizações: 1927 vezes
Pergunta/Tarefa:

Escreva um programa Java que declara, constrói um vetor de 10 posições e pede ao usuário para informar os valores de seus elementos. Em seguida, varra o vetor e informe a existência ou não de valores repetidos.

Sua saída deverá ser parecida com:

Informe o valor para o índice 0: 3
Informe o valor para o índice 1: 6
Informe o valor para o índice 2: 8
Informe o valor para o índice 3: 10
Informe o valor para o índice 4: 2
Informe o valor para o índice 5: 4
Informe o valor para o índice 6: 6
Informe o valor para o índice 7: 10
Informe o valor para o índice 8: 3
Informe o valor para o índice 9: 30
Há valores repetidos no vetor
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
      
    // vamos declarar e construir um vetor de 10 elementos
    int valores[] = new int[10];
    
    // vamos pedir que o usuário informe os valores
    for(int i = 0; i < valores.length; i++){
      System.out.print("Informe o valor para o índice " + i + ": ");
      valores[i] = Integer.parseInt(entrada.nextLine());
    }
    
    // agora vamos verificar se o vetor possui valores repetidos
    boolean repetidos = false;
    // percorremos todos os elementos do vetor
    for(int i = 0; i < valores.length; i++){
      // para cada elemento em i nos verificamos os que estão nos indices seguintes
      for(int j = i + 1; j < valores.length; j++){
        // encontramos algum repetido?
        if(valores[j] == valores[i]){
          repetidos = true;
          break; // saímos do laço
        }
      }  
    }
    
    if(repetidos){
      System.out.println("Há valores repetidos no vetor");  
    }
    else{
      System.out.println("Nao há valores repetidos no vetor");  
    }
    
    System.out.println("\n");
  }
}



Java ::: Dicas & Truques ::: Data e Hora

Como construir uma data em Java usando o método set() da classe Calendar - Apostila Java Básico

Quantidade de visualizações: 181 vezes
Nesta dica mostrarei como é possível usar o método set() da classe Calendar, do pacote java.util, para construir uma data e hora em Java.

Veja o exemplo completo (fique atento à ordem do ano, mês, dia, horas, minutos e segundos):

package arquivodecodigos;

import java.util.Calendar;
 
public class Estudos{
  public static void main(String args[]){
    Calendar agora = Calendar.getInstance();
        
    // ano, mês, dia, hora, minuto, segundo
    // mês começa a partir de 0
    agora.set(2005, 10, 23, 5, 29, 53);
         
    // mostra o resultado
    System.out.println(agora.getTime().toString());    
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

Wed Nov 23 05:29:53 BRST 2005


Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como obter o arco-seno de um ângulo em radianos usando o método asin() da classe Math da linguagem Java

Quantidade de visualizações: 14009 vezes
Nesta dica eu mostrarei como podemos obter o arco seno (ou arco-seno) de um determinado ângulo (em radianos, não em graus). De acordo com a seguinte definição:

Se seno(x) = y, então arcoseno(y) = x

O arco-seno (geralmente abreviado como arcsen, ou arcsin) é parte das funções trigonométricas inversas, ou seja, ele é o inverso do seno. Dessa forma, se o seno é a relação entre o cateto oposto ao ângulo e a hipotenusa, o arcoseno parte dessa relação para encontrar o valor do ângulo.

A classe Math, do pacote java.lang, possui o seguinte método:

public static double asin(double a)


Este método recebe um valor double e retorna também um valor double, na faixa (-PI / 2) <= x <= (PI / 2), onde x é o valor forcecido para o método.

Veja o código para o exemplo:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    double angulo = 0.5;
    System.out.println("O arco seno de " +
      angulo + " é " + Math.asin(angulo));
  }
}

Ao executarmos este código nós teremos o seguinte resultado:

O arco seno de 0.5 é 0.5235987755982989

Não se esqueça de que o resultado será em radianos. Assim, se efetuarmos o cálculo abaixo:

Graus = Radianos * (180 / PI)
Graus = 0.5235987755982989 * (180 / 3.14)

Teremos o valor aproximado de 30.015216435571276 para o ângulo em graus.


Delphi ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em Delphi dados dois pontos no plano cartesiano

Quantidade de visualizações: 1375 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem Delphi que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

procedure TForm4.Button2Click(Sender: TObject);
var
  x1, y1, x2, y2, m: Double;
begin
  // x e y do primeiro ponto
  x1 := 3;
  y1 := 6;

  // x e y do segundo ponto
  x2 := 9;
  y2 := 10;

  // agora vamos calcular o coeficiente angular
  m := (y2 - y1) / (x2 - x1);

  // e mostramos o resultado
  Memo1.Lines.Add('O coeficiente angular é: ' +
    FloatToStr(m));
end;

Ao executar este código em linguagem Delphi nós teremos o seguinte resultado:

O coeficiente angular é: 0,666666666666667

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

procedure TForm4.Button2Click(Sender: TObject);
var
  x1, y1, x2, y2, tangente: Double;
  cateto_oposto, cateto_adjascente, tetha: Double;
begin
  // incluir a unit Math

  // x e y do primeiro ponto
  x1 := 3;
  y1 := 6;

  // x e y do segundo ponto
  x2 := 9;
  y2 := 10;

  // vamos obter o comprimento do cateto oposto
  cateto_oposto := y2 - y1;
  // e agora o cateto adjascente
  cateto_adjascente := x2 - x1;
  // vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
  // (em radianos, não se esqueça)
  tetha := ArcTan2(cateto_oposto, cateto_adjascente);
  // e finalmente usamos a tangente desse ângulo para calcular
  // o coeficiente angular
  tangente := Tan(tetha);

  // e mostramos o resultado
  Memo1.Lines.Add('O coeficiente angular é: ' +
    FloatToStr(tangente));
end;

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


PHP ::: Dicas & Truques ::: Arquivos e Diretórios

Como verificar se um arquivo existe usando a função file_exists() do PHP

Quantidade de visualizações: 12854 vezes
Em algumas situações nós precisamos verificar a existência de um arquivo ou diretório no sistema de arquivos de um determinado site. Para isso nós podemos usar a função file_exists() da linguagem PHP.

Esta função retorna um valor true se o arquivo ou diretório existir no caminho especificado, e false em caso contrário.

Veja um exemplo completo de seu uso:

<?php
// pesquisa no diretório atual
$arquivo = "testes.txt";

if(file_exists($arquivo)){
  echo "O arquivo já existe.";
}
else{
  echo "O arquivo não existe ainda.";
}
?>

Ao executar este código PHP nós teremos o seguinte resultado:

O arquivo já existe.


C# ::: Coleções (Collections) ::: List<T>

Como retornar a quantidade de elementos que podem ser armazenados na List do C# sem redimensioná-la

Quantidade de visualizações: 7429 vezes
O objeto List do C# possui uma propriedade Capacity que nos retorna a quantidade de elementos que podem ser inseridos na lista antes que ela tenha que redimensionar o seu array interno. Quando o tamanho da lista excede essa capacidade, automaticamente o array interno é redimensionado de forma a acomodar esses novos itens.

Nessa dica eu mostro como podemos retornar o valor dessa propriedade. Veja:

using System;
using System.Collections.Generic;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      List<int> valores = new List<int>();

      // insere valores na lista
      valores.Add(4);
      valores.Add(2);
      valores.Add(87);
      valores.Add(23);
      valores.Add(100);

      // obtém a capacidade da lista
      // NOTA: Capacity é o número de elementos que a lista
      // pode armazenar antes de ser preciso redimensioná-la.
      int capac = valores.Capacity;
      Console.WriteLine("A capacidade da lista é de "
         + capac + " elementos.");

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

A capacidade da lista é de 8 elementos.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Como calcular lucro mensal de uma empresa em Java - O lucro de uma empresa é dado por L(x) = 10x - 5000, onde x é a quantidade

Quantidade de visualizações: 751 vezes
Pergunta/Tarefa:

O lucro de uma empresa é dado por L(x) = 10x - 5000, onde x é a quantidade de produtos vendidos num determinado mês e 5000 são os custos de execução do trabalho da empresa. Escreva um programa Java que leia a quantidade de produtos vendidos como um número inteiro e calcule e mostre o lucro mensal dessa empresa.

Sua saída deverá ser parecida com:

Informe a quantidade de produtos vendidos: 950
O lucro da empresa foi: R$ 4500.0
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // variáveis usadas na resolução do problema
    int quant_produtos_vendidos;
    double lucro;
    
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir a quantidade de produtos vendidos
    System.out.print("Informe a quantidade de produtos vendidos: ");
    quant_produtos_vendidos = Integer.parseInt(entrada.nextLine());
    
    // vamos calcular o lucro da empresa
    lucro = (10 * quant_produtos_vendidos) - 5000;
    
    // e mostramos o resultado
    System.out.println("O lucro da empresa foi: R$ " + lucro);
  }
}



Java ::: Coleções (Collections) ::: ArrayList

Como passar uma ArrayList para um método Java - Como escrever um método Java que recebe uma ArrayList

Quantidade de visualizações: 12205 vezes
Em algumas situações precisamos passar um objeto da classe ArrayList para um método Java. Esta dica mostra como isso pode ser feito:

package estudos_java;

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    // vamos criar um ArrayList, adicionar alguns elementos
    // e passá-lo para um método
    ArrayList<String> nomes = new ArrayList<>();
    nomes.add("Osmar J. Silva");    
    nomes.add("Fernanda de Castro");
    nomes.add("José de Oliveira");

    // vamos passar o ArrayList para o método
    imprimir(nomes);

    System.exit(0);
  }

  // um método que recebe um ArrayList e exibe o
  // o valor de seus elementos
  public static void imprimir(ArrayList<String> lista){
    for(int i = 0; i < lista.size(); i++){
      System.out.println(lista.get(i));
    }
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

Osmar J. Silva
Fernanda de Castro
José de Oliveira


Java ::: Dicas & Truques ::: Internacionalização e Localização (Internationalization, i18n, Localization, l10n)

Como obter a localização padrão da JVM usando o método getDefault() da classe Locale da linguagem Java

Quantidade de visualizações: 9030 vezes
Em algumas situações precisamos fazer a internacionalização de nossas aplicações. Isso implica em usar um objeto da classe Locale para aplicar a formatação de datas, horas e valores de acordo com as configurações regionais do usuário. Porém, antes de alterar o Locale padrão da JVM, é importante sabermos mais sobre ele. Para isso temos o método estático getDefault() da classe Locale:

public static Locale getDefault()


Este método retorna um objeto da classe Locale que nos permitirá obter informações sobre a língua, o país e demais configurações do ambiente. Veja um trecho de código demonstrando seu uso:

import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // obtém o Locale padrão da JVM
    Locale locale = Locale.getDefault();
    
    // vamos exibir o código da linguagem e nome do
    // país para o Locale obtido
    System.out.println(locale.getLanguage() + " - "
      + locale.getDisplayCountry()); 
  } 
}

O resultado da execução deste código será algo como:

pt - Brasil


Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 32 usuários muito felizes estudando em nosso site.