Você está aqui: Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
|
Como calcular a apótema de um polígono regular de N lados em JavaQuantidade de visualizações: 531 vezes |
|
Uma das formas mais comuns de se obter a área de um polígono regular é usando a seguinte fórmula: \[\text{A} = \frac{1}{2} \cdot \text{p} \cdot \text{a} \] Onde: p: Perímetro, ou seja, a soma dos comprimentos de todos os lados. a: Apótema, isto é, uma parte que une o centro do polígono ao meio de qualquer lado que esteja perpendicular. Agora que já estamos alinhados, saiba que calcular a apótema de um polígono regular "na mão" é fácil, já que só precisamos medir a distância de dois lados opostos e dividir por dois ou traçar linhas cruzadas e medir a distância de um dos lados até a interseção dessas linhas. No entanto, em programação a coisa já é um pouco mais complicada. Nesta dica mostrarei como podemos realizar esta tarefa em Java. Para isso usaremos alguns truques de trigonometria. Comece analisando a seguinte imagem: Note que temos um pentágono com cada lado medindo 4 metros. Recorde que um pentágono é um polígono regular de 5 lados. Para deixar a dica mais didática eu coloquei também uma linha azul representando a apótema do polígono e as linhas cruzadas. Veja agora o código Java que recebe a quantidade de lados do polígono, o comprimento dos lados e retorna a apótema: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos ler a quantidade de lados System.out.print("Informe a quantidade de lados: "); int lados = Integer.parseInt(entrada.nextLine()); // vamos ler o comprimento dos lados System.out.print("Informe o comprimento dos lados: "); int comprimento = Integer.parseInt(entrada.nextLine()); // e agora calculamos a apótema dos polígono double apotema = calcularApotema(lados, comprimento); // e mostramos o resultado System.out.println("A apótema do polígono é: " + apotema); } // função que calcula e retorna a apótema de um // polítono regular public static double calcularApotema(int lados, int comprimento){ // a quantidade de lados e o comprimento deles // não podem ser negativos if (lados < 0 || comprimento < 0){ return -1; } // calculamos a apótema return (comprimento / (2 * Math.tan((180 / lados) * Math.PI / 180))); } } Ao executar este código Java nós teremos o seguinte resultado: Informe a quantidade de lados: 5 Informe o comprimento dos lados: 4 A apótema do polígono é: 2.7527638409423476 |
|
Link para compartilhar na Internet ou com seus amigos: | |
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar o tipo de dados char da linguagem JavaQuantidade de visualizações: 25132 vezes |
O tipo de dados char é usado para representar um único caractere. Veja:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ char letra1 = 'A'; char letra2 = 'B'; System.out.println("As letras são: " + letra1 + " e " + letra2); System.exit(0); } } Observe que um literal string deve estar entre aspas duplas, enquanto que um literal do tipo caractere deve estar entre aspas simples. Desta forma, "H" é uma string e 'H' é um caractere. O tipo char é integral mas sem sinal. A faixa de uma variável deste tipo vai de 0 à 65536. Os caracteres em Java são codificados em Unicode, que é um codificação de 16 bits capaz de representar uma larga faixa de caracteres internacionais. Se os 9 bits mais significantes de um char forem todos 0, então a codificação será a mesma que o ASCII de 7 bits. É possível atribuir literais inteiros à uma variável do tipo char. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ char letra = 98; System.out.println("A letra é: " + letra); System.exit(0); } } Este código exibirá o caractere 'b'. Veja um exemplo no qual imprimimos todas as letras do alfabeto minúsculo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ for(char i = 97; i <= 122; i++){ System.out.print(i + " "); } System.exit(0); } } O tipo char pode ser convertido (sem a necessidade de cast) para os seguintes tipos: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- char -> int -> long -> float -> double Não é possível converter um char em um short ou byte. Caso isso seja realmente necessário, temos que fazer uma coerção (cast). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ char letra = 57; byte valor = (byte)(letra); System.exit(0); } } É fácil entender porque um char não pode ser convertido implicitamente em um byte. Um char possui 16 bits enquanto um byte possui apenas 8 bits. Mas, um short possui 16 bits. Assim, o que impede a conversão implicita de um char para um short? É simples. Como o tipo short possui sinal (aceita valores negativos) e o tipo char é sem sinal, o resultado é que o tipo short possui um bit a menos (reservado para o sinal) e portanto, não pode acomodar os 16 bits do tipo char. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Java - Como criar um conversor de moedas em Java - Um programa Java para converter de Real para Dólar e de Dólar para RealQuantidade de visualizações: 1838 vezes |
Pergunta/Tarefa: Escreva um programa Java para converter de Real para Dólar e vice-versa. Seu programa deverá ler o valor a ser convertido e a opção de conversão, ou seja, se o usuário quer converter de Real para Dólar ou se quer converter de Dólar para Real. Em seguida mostre o valor convertido. Você pode pedir também a cotação do Dólar ou já deixar definido no código. Na resolução eu fixei a cotação no código mesmo, tomando como base a cotação do Dólar na data 20/02/2023. Sua saída deverá ser parecida com: Valor a ser convertido: 7 1. Converter de Real para Dólar 2. Converter de Dólar para Real Sua opção: 1 O valor convertido para Dólar é: $ 1,28 Valor a ser convertido: 1 1. Converter de Real para Dólar 2. Converter de Dólar para Real Sua opção: 2 O valor convertido para Real é: R$ 5,46 Veja a resolução comentada deste exercício usando Java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos registrar aqui a cotaçao do dólar double cotacao_dolar = 5.4613; // 20/02/2023 // valor informado e valor convertido double valor, valor_convertido; // para ler a opção do usuário int opcao; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar o valor a ser convertido System.out.print("Valor a ser convertido: "); valor = Double.parseDouble(entrada.nextLine()); // vamos mostrar as opções de conversão System.out.println("\n1. Converter de Real para Dólar"); System.out.println("2. Converter de Dólar para Real"); System.out.print("Sua opção: "); opcao = Integer.parseInt(entrada.nextLine()); // vamos fazer a conversão entre as moedas switch(opcao){ case 1: // efetua a conversão de Real para Dólar valor_convertido = valor / cotacao_dolar; System.out.printf("\nO valor convertido para Dólar é: $ %.2f\n\n", valor_convertido); break; case 2: // efetua a conversão de Dólar para Real valor_convertido = valor * cotacao_dolar; System.out.printf("\nO valor convertido para Real é: R$ %.2f\n\n", valor_convertido); break; default: System.out.println("\nVocê informou uma opção inválida.\n\n"); } } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de Java - Um método Java chamado calcular(int a, int b) que recebe duas variáveis do tipo int e multiplica um valor pelo outro. Em seguidaQuantidade de visualizações: 619 vezes |
Pergunta/Tarefa: Escreva um método Java chamado calcular(int a, int b) que recebe duas variáveis do tipo int e multiplica um valor pelo outro. Em seguida o método deverá dividir o resultado, ou seja, o produto, por 2, e, finalmente, retornar o resto de uma divisão inteira desse resultado pelo número 7. Sua saída deverá ser parecida com: Informe o primeiro valor inteiro: 18 Informe o segundo valor inteiro: 19 O resultado é: 3 Veja a resolução comentada deste exercício usando Java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos{ public static void main(String args[]){ // vamos usar a classe Scanner para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar dois números inteiros System.out.print("Informe o primeiro valor inteiro: "); int a = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o segundo valor inteiro: "); int b = Integer.parseInt(entrada.nextLine()); // vamos obter o resultado de uma chamada à função calcular() int resultado = calcular(a, b); System.out.println("O resultado é: " + resultado); } public static int calcular(int a, int b){ // primeiro multiplicamos as duas variáveis int produto = a * b; // agora dividimos o produto por 2 int temp = produto / 2; // agora obtemos o módulo do resultado por 7 int resultado = temp % 7; // e retornamos o valor calculado return resultado; } } |
Vamos testar seus conhecimentos em Fundações |
Fundações diretas ou rasas A viga de fundação é também chamada de viga baldrame. É utilizada para conectar sapatas isoladas e distribuir melhor o peso da estrutura para as camadas do solo. A partir disso, projete uma viga de fundação para os pilares P1 e P2, indicados na figura, sendo a taxa no solo σs = 0,4. Considere: P1 = P2 = 1.800KN. Dimensões P1 e P2 = 25cmX100cm. A) a = 400cm e b = 280cm. B) a = 365cm e b = 250cm. C) a = 250cm e b = 365cm. D) a = 345cm e b = 230cm. E) a = 405cm e b = 315cm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
O aço no edifício A estrutura de estabilização da moldura estrutural da edificação da figura abaixo, que se caracteriza pelo fato de não possuir amarrações diagonais nem paredes de cisalhamento para assegurar a estabilidade lateral, pode ser chamada de: A) Estrutura contraventada. B) Moldura amarrada excentricamente. C) Moldura resistente a momentos. D) Paredes de cisalhamento. E) Nenhuma das alternativas anteriores. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Tipos de Escoamentos Um conduto cilíndrico interliga dois tanques de cerveja artesanal a uma velocidade constante e com diferença de 10 metros entre suas cotas. O fluido dentro dos tanques é mantido a uma pressão de 101.325 Pa e ocupa 95% da área do conduto quando transportado. Defina que tipo de escoamento ocorre nesse conduto e quais são os principais parâmetros que devem ser levados em consideração em seu cálculo de dimensionamento ou verificação. A) Ocorre escoamento em conduto forçado, pois o fluido está confinado sob uma pressão diferente da atmosférica. Os principais parâmetros para cálculo do conduto são a vazão que se deseja escoar e a energia total do escoamento. B) Ocorre escoamento à superfície livre, pois, mesmo tendo uma pressão diferente da atmosférica, o conduto não está completamente preenchido pelo fluido. Os principais parâmetros para cálculo do conduto são a vazão que se deseja escoar e a energia total do escoamento. C) Ocorre escoamento em conduto forçado, pois 95% preenchem praticamente toda a área do contorno sólido que confina a cerveja. Os principais parâmetros para cálculo do conduto são a vazão que se deseja escoar e a diferença de cota entre os tanques. D) Ocorre escoamento à superfície livre, pois 101.325 Pa é o valor médio da pressão atmosférica, além disso o conduto não está completamente preenchido pelo fluido. Os principais parâmetros para cálculo do conduto são a vazão que se deseja escoar e a energia total do escoamento. E) Ocorre escoamento à superfície livre, pois 101.325 Pa é o valor médio da pressão atmosférica, além disso o conduto não está completamente preenchido pelo fluido. Os principais parâmetros para cálculo do conduto são a vazão que se deseja escoar e a diferença de cota entre os tanques. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Ética, Legislação e Entidades que regulamentam a profissão São afirmativas corretas sobre a ética na profissão, exceto: A) A ética é a reflexão sobre a moral. É ético aquele que age de acordo com os padrões de conduta ou prática correta, especialmente os padrões profissionais. B) A engenharia, como profissão, deve contribuir para o bem-estar social, sendo o engenheiro responsável, através de suas ações e projetos, pelas consequências à sociedade que confia em sua competência profissional. C) O comportamento ético para o engenheiro é uma habilidade tão importante como as habilidades técnicas, matemáticas e científicas. D) Como engenheiro, você deve apoiar-se em seus princípios éticos pessoais, diferenciando pequenos desvios de ações de grande impacto à sociedade. Somente grandes ações configuram um problema ético. E) A ética está associada ao estudo fundamentado dos valores morais que orientam o comportamento humano em sociedade. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
O código de ética profissional: Concorrência No Brasil, a livre concorrência está subordinada ao artigo 173, § 4º, da Constituição Federal. Posteriormente, foi instituído o Conselho Administrativo de Defesa Econômica (Cade), cujo objetivo é ___________. Assinale a alternativa que completa a lacuna de forma correta. A) proteger os consumidores e o mercado internacional de ações desonestas, práticas ilícitas e antiéticas. B) proteger os consumidores, garantir a reserva de mercado para as commodities e combater ações desonestas, práticas ilícitas e antiéticas. C) liberar a fusão entre as empresas como forma de proteger os consumidores e o mercado econômico. D) proibir a entrada de produtos importados, visando à proteção da indústria nacional e dos consumidores. E) proteger os consumidores e o mercado econômico de ações desonestas, práticas ilícitas e antiéticas. Verificar Resposta Estudar Cards Todas as Questões |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |