Você está aqui: Java ::: Dicas & Truques ::: Matemática e Estatística |
Como elevar uma base a um determinado expoente usando o método pow() da classe Math do JavaQuantidade de visualizações: 5897 vezes |
Em algumas situações nós precisamos efetuar cálculos de potenciação em Java, ou seja, elevar um número (uma base) a um determinado expoente e obter sua potência. Veja a figura a seguir:![]() Veja que aqui o valor 5 foi elevado ao cubo, ou seja, ao expoente 3 e obtemos como resultado sua potência: 125. A linguagem Java nos fornece a função pow(), um método estático da classe Math, que recebe como argumentos a base e o expoente e nos retorna a potência (como um valor double). Veja um exemplo de seu uso no código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String[] args){ int base = 4; int expoente = 5; double potencia = Math.pow(4, 5); System.out.println("A base " + base + " elevada ao expoente " + expoente + " é igual à potência " + potencia); System.exit(0); } } Ao executarmos este código Java nós teremos o seguinte resultado: A base 4 elevada ao expoente 5 é igual à potência 1024.0 Note que o método Math.pow() da linguagem Java retorna um valor double. |
![]() |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios e Algorítmos Resolvidos de Java - Programa Java para somar os elementos da diagonal secundária de uma matrizQuantidade de visualizações: 9341 vezes |
Pergunta/Tarefa: Em álgebra linear, a diagonal secundária de uma matriz A é a coleção das entradas Aij em que i + j é igual a n + 1 (onde n é a ordem da matriz). A diagonal secundária de uma matriz quadrada une o seu canto inferior esquerdo ao canto superior direito (conforme mostrado na saída do problema proposto abaixo). Escreva um programa (algorítmo) Java que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal secundária. Sua saída deverá ser parecida com a imagem abaixo: Informe o valor para a linha 0 e coluna 0: 5 Informe o valor para a linha 0 e coluna 1: 2 Informe o valor para a linha 0 e coluna 2: 7 Informe o valor para a linha 1 e coluna 0: 5 Informe o valor para a linha 1 e coluna 1: 3 Informe o valor para a linha 1 e coluna 2: 12 Informe o valor para a linha 2 e coluna 0: 4 Informe o valor para a linha 2 e coluna 1: 10 Informe o valor para a linha 2 e coluna 2: 1 5 2 7 5 3 12 4 10 1 A soma dos elementos da diagonal secundária é: 14 Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package exercicios; import java.util.Scanner; public class Exercicios { public static void main(String[] args) { // vamos fazer a leitura usando a classe Scanner Scanner entrada = new Scanner(System.in); // vamos declarar e construir uma matriz de três linhas e // três colunas int matriz[][] = new int[3][3]; int soma_diagonal = 0; // guarda a soma dos elementos na // diagonal secundária // vamos ler os valores para os elementos da matriz for(int i = 0; i < matriz.length; i++){ // linhas for(int j = 0; j < matriz[0].length; j++){ // colunas System.out.print("Informe o valor para a linha " + i + " e coluna " + j + ": "); matriz[i][j] = Integer.parseInt(entrada.nextLine()); } } // vamos mostrar a matriz da forma que ela foi informada System.out.println(); for(int i = 0; i < matriz.length; i++){ // percorre as linhas for(int j = 0; j < matriz[0].length; j++){ // percorre as colunas System.out.printf("%5d ", matriz[i][j]); } // passa para a próxima linha da matriz System.out.println(); } // vamos calcular a soma dos elementos da diagonal secundária int ordem = 3; // ordem da matriz for(int i = 1; i <= matriz.length; i++){ for(int j = 1; j <= matriz[0].length; j++){ if((i + j) == (ordem + 1)){ soma_diagonal = soma_diagonal + matriz[i - 1][j - 1]; } } } // finalmente mostramos a soma da diagonal secundária System.out.println("\nA soma dos elementos da diagonal secundária é: " + soma_diagonal); } } |
Java ::: Dicas & Truques ::: Data e Hora |
Como usar a classe Calendar do Java em suas aplicações - Java para iniciantesQuantidade de visualizações: 21319 vezes |
[Baseado na documentação Java] - A classe Calendar (pacote java.util) é uma classe abstrata (que não pode ser instanciada usando new) que fornece métodos para efetuar a conversão entre um momento específico no tempo e um conjunto de campos de calendário, tais como YEAR, MONTH, DAY_OF_MONTH, HOUR e assim por diante, e para manipular tais campos, por exemplo, obter a data da próxima semana. Um momento no tempo pode ser representado por um valor de milisegundos que é a diferença entre a data atual e a zero hora do dia 01/01/1970 (Epoch, January 1, 1970 00:00:00.000 GMT (Gregorian)). Veja a posição desta classe na hierarquia de classes Java: java.lang.Object java.util.Calendar Esta classe também fornece campos e métodos adicionais para a implementação de um sistema concreto de calendário fora do pacote java.util. Estes campos e métodos são definidos como protected. Assim como as demais classes sensitivas à localização (locale-sensitive), a classe Calendar fornece um método de classe chamado getInstance() que nos permite obter um objeto desta classe. Este método retorna um objeto Calendar cujos campos de calendário são inicializados com a data e hora atual. Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import java.util.*; public class Estudos{ public static void main(String args[]){ Calendar agora = Calendar.getInstance(); System.out.println(agora.toString()); } } Experimente executar este programa e terá um resultado parecido com: java.util.GregorianCalendar[time=1228937781807, areFieldsSet=true,areAllFieldsSet =true,lenient=true,zone=sun.util.calendar.ZoneInfo [id="America/Sao_Paulo",offset =-10800000,dstSavings=3600000,useDaylight=true, transitions=129,lastRule=java.uti l.SimpleTimeZone[id=America/Sao_Paulo,offset= -10800000,dstSavings=3600000,useDay light=true,startYear=0,startMode=3,startMonth=9, startDay=15,startDayOfWeek=1,sta rtTime=0,startTimeMode=0,endMode=3,endMonth=1, endDay=15,endDayOfWeek=1,endTime=0 ,endTimeMode=0]],firstDayOfWeek=2, minimalDaysInFirstWeek=1,ERA=1,YEAR=2008,MONTH =11,WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH= 10,DAY_OF_YEAR=345,DAY_OF_WEEK= 4,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=5,HOUR_OF_DAY =17,MINUTE=36,SECOND=21,MILLI SECOND=807,ZONE_OFFSET=-10800000,DST_OFFSET=3600000] Como podemos ver, todas as informações relativas à data e hora que poderemos precisar estão contidas neste resultado. Um objeto Calendar pode produzir todos os valores de todos os campos de calendário necessários para implementar a formatação de data e hora para uma determinada língua e estilo de calendário (por exemplo, Japanese-Gregorian, Japanese-Traditional). A classe Calendar define a faixa de valores retornados por determinados campos de calendário, assim como seus significados. Por exemplo, o primeiro mês do sistema de calendário tem o valor MONTH == JANUARY para todos os calendários. Outros valores são definidos por subclasses concretas, tais como ERA. |
Java ::: Pacote java.awt ::: Graphics |
Como desenhar linhas em determinados ângulos usando o método drawLine() da classe Graphics - Computação Gráfica em JavaQuantidade de visualizações: 13730 vezes |
É possível usar o método drawLine() da classe Graphics para desenhar linhas em determinados ângulos. Observe atentamente a assinatura deste método:public abstract void drawLine(int x1, int y1, int x2, int y2) Aqui x1 e x2 representam as coordenadas iniciais da linha e x2 e y2 representam as coordenadas finais. Assim, vamos analisar a fórmula matemática que permite definir o ângulo de desenho. Comece definindo os valores para as coordenadas iniciais x1 e y1, o ângulo desejado e o comprimento da linha: int x1 = 30; int y1 = 50; int ang = 0; int comp = 100; Vamos começar obtendo a coordenada x final, que chamaremos de x2. Já sabemos que o ângulo é 0, então obteremos uma linha horizontal para a direita. Vamos ao cálculo: int x2 = (int)(x1 + Math.cos(ang / 180.0 * Math.PI) * comp); Já sabemos que o valor de x2 é igual a 0 pois (pode testar na barra de endereços de seu browser): javascript:alert(0 / 180.0 * Math.PI) resulta em 0 e: javascript:alert(Math.cos(0)) resulta em 1. Assim: x1 + (1 * 100) = 130. Para que nosso código esteja correto, o valor de y2 deverá ser igual a y1. Vejamos: int y2 = (int)(y1 - Math.sin(ang / 180.0 * Math.PI) * comp); Já sabemos que (ang / 180.0 * Math.PI) resulta em 0 e que o seno de 0 é 0. Assim: y1 - (0 * 100) = 50. Veja o código completo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JLabel label; public Estudos() { super("Desenhando em um JLabel"); Container c = getContentPane(); c.setLayout(new BorderLayout()); // Cria um JLabel label = new JLabel(); c.add(label, BorderLayout.CENTER); // Cria um botão JButton btn = new JButton("Desenhar uma linha (ângulo)"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ // Desenha uma string no JLabel int x1 = 30; // coordenada inicial x int y1 = 50; // coordenada inicial y int ang = 0; // ângulo int comp = 100; // comprimento // coordenada x final int x2 = (int)(x1 + Math.cos(ang / 180.0 * Math.PI) * comp); // coordenada y final int y2 = (int)(y1 - Math.sin(ang / 180.0 * Math.PI) * comp); Graphics graphics = label.getGraphics(); graphics.drawLine(x1, y1, x2, y2); } } ); // Adiciona o botão à janela c.add(btn, BorderLayout.SOUTH); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Experimente agora fornecer ângulos diferentes, por exemplo, 45 (uma linha diagonal para a direita e para cima), 90 (uma linha vertical para cima), 135 (uma linha diagonal para a esquerda e para cima), 180 (uma linha horizontal para a esquerda), 225 (uma linha diagonal para a esquerda e para baixo), 270 (uma linha vertical para baixo), 315 (uma linha diagonal para a direita e para baixo) e 360 (uma linha horizontal para a direita). Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Percorrer todos os elementos de um array, exibir a soma dos valores positivos e a quantidade de valores negativosQuantidade de visualizações: 12547 vezes |
Pergunta/Tarefa: Considere o seguinte vetor de inteiros: // um array de inteiros contendo sete elementos int valores[] = {-3, 9, 12, -34, -2, 20, 10}; Seu programa deverá exibir uma saída com a mensagem: A soma dos valores positivos é: 51 A quantidade de valores negativos é: 3 Resposta/Solução: Veja a resolução comentada deste exercício em Java: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public static void main(String[] args){ // um array de inteiros contendo sete elementos int valores[] = {-3, 9, 12, -34, -2, 20, 10}; // o primeiro passo é criar uma variável que vai receber a soma // dos valores positivos int soma_positivos = 0; // agora uma variável para receber a quantidade de valores negativos int quant_negativos = 0; // agora vamos usar uma laço for para percorrer todos os elementos // do array for(int i = 0; i < valores.length; i++){ // vamos verificar se o valor do elemento atual é negativo if(valores[i] < 0){ quant_negativos++; } else{ // o valor é positivo soma_positivos = soma_positivos + valores[i]; } } // vamos exibir a soma dos valores positivos System.out.println("A soma dos valores positivos é: " + soma_positivos); // vamos exibir a quantidade de valores negativos System.out.println("A quantidade de valores negativos é: " + quant_negativos); } |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como comparar duas strings em Java usando o método equals() da classe StringQuantidade de visualizações: 147 vezes |
Nesta dica mostrarei como usar o método equals() da classe String da linguagem Java para comparar duas palavras, frases ou texto. Este método retorna um valor true se as duas string forem iguais e false em caso contrário. Veja o código para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String[] args){ String s1 = "Gosto de Java"; String s2 = "Gosto de Java"; if(s1.equals(s2)){ System.out.println("As duas strings sao iguais"); } else{ System.out.println("As duas strings não sao iguais"); } System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: As duas strings sao iguais |
Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Como tratar o erro StringIndexOutOfBoundsException em seus programas Java - A exceção StringIndexOutOfBoundsException da linguagem JavaQuantidade de visualizações: 11758 vezes |
A exceção StringIndexOutOfBoundsException é uma exceção (erro) que acontece quando fornecemos um índice fora dos limites permitidos para o acesso de caracteres individuais em uma string, geralmente usando o método charAt. Lembre-se de que os índices dos caracteres em uma string Java começam em 0 e vão até o tamanho da string menos 1. Antes de vermos os exemplos, observe a posição da classe pública StringIndexOutOfBoundsException na hierarquia de classes da plataforma Java: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException java.lang.IndexOutOfBoundsException java.lang.StringIndexOutOfBoundsException Esta classe implementa a interface Serializable. Veja um trecho de código no qual fornecemos um índice de caractere inválido para o método charAt da classe String: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ String nome = "Java"; // vamos fornecer um índice inválido System.out.println(nome.charAt(4)); System.exit(0); } } Compile este código e execute-o. Você verá a seguinte mensagem de erro: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4 at java.lang.String.charAt(Unknown Source) at Estudos.main(Estudos.java:6) Experimente trocar a linha: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- System.out.println(nome.charAt(4)); por: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- System.out.println(nome.charAt(3)); Compile novamente e execute. Você verá que a mensagem de erro desapareceu. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Um laço for que conta de 0 até 10Quantidade de visualizações: 13553 vezes |
Pergunta/Tarefa: Escreva uma aplicação console Java que usa o laço for para contar de 0 até 10. Faça dois exemplos. No primeiro você deverá escrever os valores na horizontal e no segundo você deverá escrever os valores na vertical: Resposta/Solução: Este exercício é um dos primeiros sobre o uso de laços nos cursos de Java e você pode fazer usando o Bloco de Notas, Netbeans, Eclipse ou sua IDE favorita. Veja o código que usa o laço for para contar de 0 até 10 e exibir os valores na horizontal: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public static void main(String[] args){ // laço for que conta de 0 até 10 e exibe os valores na horizontal for(int i = 0; i <= 10; i++){ System.out.print(i + " "); } } Quando você executar este código, os valores deverão ser impressos da seguinte forma: 0 1 2 3 4 5 6 7 8 9 10 Agora, veja como uma pequena modificação faz com que os valores sejam impressos na vertical: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public static void main(String[] args){ // laço for que conta de 0 até 10 e exibe os valores na vertical for(int i = 0; i <= 10; i++){ System.out.println(i + " "); } } Agora os valores serão exibidos da seguinte forma: 0 1 2 3 4 5 6 7 8 9 10 |
Java ::: Fundamentos da Linguagem ::: Modificadores |
Regras importantes sobre o uso de modificadores na linguagem JavaQuantidade de visualizações: 7586 vezes |
1) Uma declaração de método ou variável pode conter somente um destes modificadores de acesso: public, protected ou private. Na ausência de um destes, o acesso será de pacote. 2) Classes não podem ser declaradas abstract e final simultâneamente. 3) Métodos abstratos não podem ser declarados private, static, final, native, strictfp ou synchronized. 4) Métodos não podem ser declarados native e strictfp ao mesmo tempo. 5) Métodos abstract e native não possuem corpo. Ex: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- abstract void inserir(); native void obterDados(); 6) Uma classe que contenha métodos abstratos deve ser declarada como abstrata. 7) Membros final não podem ser volatile. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |