Você está aqui: Java ::: Classes e Componentes ::: JTable |
Exibir uma JTable em um JScrollPaneQuantidade de visualizações: 11662 vezes |
JScrollPane scrollPane = new JScrollPane(table); table.setPreferredScrollableViewportSize(new Dimension(500, 70)); - table é uma referência a um objeto JTable - O método setPreferredScrollableViewportSize é usado para definir a área da tabela que será visível sem o uso das barras de rolagem |
![]() |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como somar os elementos da diagonal principal de uma matriz em JavaQuantidade de visualizações: 2896 vezes |
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas. Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas. Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja: ![]() Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando Java. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código Java. Veja um trecho de código Java completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior: ---------------------------------------------------------------------- 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; import java.util.Scanner; public class Estudos{ 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 principal // 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(); // percorre as linhas for(int i = 0; i < matriz.length; i++){ // percorre as colunas for(int j = 0; j < matriz[0].length; j++){ 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 // principal for(int i = 0; i < matriz.length; i++){ for(int j = 0; j < matriz[0].length; j++){ if(i == j){ soma_diagonal = soma_diagonal + matriz[i][j]; } } } // finalmente mostramos a soma da diagonal principal System.out.println("\nA soma dos elementos da diagonal principal é: " + soma_diagonal); } } Ao executar este código Java nós teremos o seguinte resultado: Informe o valor para a linha 0 e coluna 0: 3 Informe o valor para a linha 0 e coluna 1: 7 Informe o valor para a linha 0 e coluna 2: 9 Informe o valor para a linha 1 e coluna 0: 2 Informe o valor para a linha 1 e coluna 1: 4 Informe o valor para a linha 1 e coluna 2: 1 Informe o valor para a linha 2 e coluna 0: 5 Informe o valor para a linha 2 e coluna 1: 6 Informe o valor para a linha 2 e coluna 2: 8 3 7 9 2 4 1 5 6 8 A soma dos elementos da diagonal principal é: 15 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Operadores de Manipulação de Bits (Bitwise Operators) |
Exercícios Resolvidos de Java - Como converter de decimal para binário usando os operadores de bits em JavaQuantidade de visualizações: 927 vezes |
Este exercício faz parte da nossa lista de desafios de programação em Java. Pergunta/Tarefa: Escreva um programa Java para pede para o usuário informar um número decimal e faça a conversão para binário usando os operadores de bits. Sua saída deverá ser parecida com: Informe um número decimal: 9 O número binário é: 00000000000000000000000000001001 Veja a resolução completa para o exercício em Java, comentada linha 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 ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { // vamos definir o tamanho do vetor para guardar // os dígitos do número binário final static int TAM_INT = Integer.BYTES * 8; public static void main(String[] args){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // variáveis para ajudar a resolver o problema int decimal, indice, i; // vetor para guardar o número binário int binario[] = new int[TAM_INT]; // vamos pedir para o usuário informar um decimal inteiro System.out.print("Informe um número decimal: "); decimal = Integer.parseInt(entrada.nextLine()); // ajustamos índice para o último elemento do vetor indice = TAM_INT - 1; // enquanto índice for maior ou igual a 0 while(indice >= 0){ // vamos guardar o bit menos significativo LSB binario[indice] = decimal & 1; // diminuímos o índice 100010 indice--; // desloca bits para a direita uma posição decimal = decimal >> 1; } // agora vamos exibir o número binário System.out.print("O número binário é: "); for(i = 0; i < TAM_INT; i++){ System.out.print(binario[i]); } System.out.println("\n\n"); } } |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como adicionar mais texto a um JTextArea usando o método append()Quantidade de visualizações: 1 vezes |
Nesta dica mostrarei como é possível usar o método append() da classe JTextArea para adicionar mais conteúdo a esse controle. Esta é uma técnica muito importante no desenvolvimento de aplicações Java Swing. Segue um exemplo completo (note que fiz toda a aplicação Java Swing na mão mesmo, ou seja, não usei o editor visual do NetBeans ou semelhantes): ---------------------------------------------------------------------- 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; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Estudos extends JFrame { JTextArea textArea; JTextField texto; JButton btn; public Estudos() { super("Como adicionar texto a um JTextArea"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); textArea = new JTextArea(10, 20); texto = new JTextField(10); btn = new JButton("Adicionar Texto"); btn.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { textArea.append(texto.getText()); } } ); c.add(textArea); c.add(texto); c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]) { Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Veja que neste exemplo, mais conteúdo é adicionado ao controle JTextArea sem provocar uma quebra de linha. Em outras dicas e truques dessa seção você aprenderá como isso pode ser feito. |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Como criar diretórios em Java usando o método mkdir() da classe FileQuantidade de visualizações: 2 vezes |
Em algumas ocasiões nossos programas precisam criar diretórios. Na linguagem Java isso pode ser feito com o auxílio do método mkdir() da classe File, do pacote java.io. Este método não recebe nenhum parâmetro e atua em cima de uma instância da classe File. Além disso, ele retorna um boolean indicando o sucesso ou não da operação. Veja o código completo para um 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; // precisamos importar o pacote java.io import java.io.*; public class Estudos{ public static void main(String[] args){ // nome e caminho do diretório que será criado File diretorio = new File("c:\\estudos_java\\imagens"); // o diretório foi criado com sucesso? if(diretorio.mkdir()){ System.out.println("Diretório criado com sucesso"); } else{ System.out.println("Nao foi possível criar o diretório"); } } } Se o diretório puder ser criado, você verá uma mensagem: Diretório criado com sucesso Observe que este método pode disparar uma exceção do tipo SecurityException se você não tiver permissão para criar diretórios nos locais especificados. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Data e Hora |
Exercícios Resolvidos de Java - Datas e horas - Escreva um programa Java que mostre a hora atual no formato HH:MM:SSQuantidade de visualizações: 3055 vezes |
Exercício Resolvido de Java - Datas e horas - Escreva um programa Java que mostre a hora atual no formato HH:MM:SS Pergunta/Tarefa: Escreva um programa Java console que mostre a hora atual no formato HH:MM:SS, ou seja, algo parecido com 23:43:15. Dica: Você pode usar várias classes Java para obter a hora atual. Não precisa se prender à classe que usei na resolução do exercício. Sua saída deverá ser parecida com: ![]() Resposta/Solução: ---------------------------------------------------------------------- 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; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class Estudos{ public static void main(String[] args){ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss"); LocalDateTime agora = LocalDateTime.now(); System.out.println("A hora atual é: " + dtf.format(agora)); } } |
Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter radianos em graus na linguagem JavaQuantidade de visualizações: 3287 vezes |
Todas os métodos e funções trigonométricas em Java recebem seus argumentos em radianos, em vez de graus. Um exemplo disso é a função sin() da classe Math. Esta função recebe o ângulo em radianos e retorna o seu seno. No entanto, há momentos nos quais precisamos retornar alguns valores como graus. Para isso é importante sabermos fazer a conversão de radianos para graus. Veja a fórmula abaixo: \[Graus = Radianos \times \frac{180}{\pi}\] Agora veja como esta fórmula pode ser escrita em código 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 ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String[] args){ double radianos = 1.5; double graus = radianos * (180 / Math.PI); System.out.println(radianos + " radianos convertidos para " + "graus é " + graus); System.exit(0); } } Ao executarmos este código Java nós teremos o seguinte resultado: 1.5 radianos convertidos para graus é 85.94366926962348 Para fins de memorização, 1 radiano equivale a 57,2957795 graus. |
Java ::: Java para Engenharia ::: Física - Hidrodinâmica |
Como representar a Equação da Continuidade em Java - Java para HidrodinâmicaQuantidade de visualizações: 288 vezes |
O que é a Equação da Continuidade? A Hidrodinâmica é a parte da Física que estuda os fluidos em movimento, enquanto a Equação da Continuidade, que é parte da Hidrodinâmica, determina o fluxo de um fluido através de uma área. Esta equação está muito presente quando o assunto é Dinâmica dos Fluidos ou Mecânica dos Fluidos. A Equação da Continuidade é uma consequência direta da Lei da Conservação da Massa. Por meio dessa propriedade, podemos dizer que a quantidade de massa de fluido que atravessa o tubo é a mesma na entrada e na saída. Para melhor entendimento veja a seguinte figura: ![]() Sabendo que a quantidade de água que entra na mangueira deve ser igual à mesma quantidade que sai, ao colocarmos o dedo na saída da mangueira, nós estamos estreitando a área da vazão, o que, consequentemente, aumenta a velocidade da água. Qual é a Fórmula da Equação da Continuidade? Antes de passarmos ao código Java, vamos revisar a Fórmula da Equação da Continuidade. Veja: \[ A_1 \cdot \text{v}_1 = A_2 \cdot \text{v}_2 \] Por meio dessa equação nós entramos com três valores e obtemos um quarto valor. Não se esqueça de que as velocidades são dadas em metros por segundo e as áreas são dadas em metros quadrados (de acordo com o SI - Sistema Internacional de Medidas). Tenha a certeza de efetuar as devidas conversões para não obter resultados incorretos. Vamos escrever código Java agora? A Equação da Continuidade em código Java Para exemplificar como podemos representar a Equação da Continuidade em Java, vamos resolver o seguinte problema? 1) Um fluido escoa a 2 m/s em um tubo de área transversal igual a 200 mm2. Qual é a velocidade desse fluido ao sair pelo outro lado do tubo, cuja área é de 100 mm2? a) 20 m/s b) 4 m/s c) 0,25 m/s d) 1,4 m/s e) 0,2 m/s Note que a velocidade já está em metros por segundo, mas as áreas foram dadas em milímetros quadrados. Por essa razão nós deveremos converter milímetros quadrados em metros quadrados. Veja o código Java completo para a resolução deste exercício de Equação da Continuidade: ---------------------------------------------------------------------- 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 estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos solicitar os dados de entrada System.out.print("Velocidade de entrada (m/s): "); double v1 = Double.parseDouble(entrada.nextLine()); System.out.print("Área de entrada (milímetros quadrados): "); double a1 = Double.parseDouble(entrada.nextLine()); System.out.print("Área de saída (milímetros quadrados): "); double a2 = Double.parseDouble(entrada.nextLine()); // vamos converter as áreas em milímetros quadrados // para metros quadrados a1 = a1 / 1000000; a2 = a2 / 1000000; // agora calculamos a velocidade de saída double v2 = (a1 * v1) / a2; // e mostramos o resultado System.out.println("A velocidade de saída é: " + v2 + " m/s"); System.out.println("\n"); } } Ao executar este código Java nós teremos o seguinte resultado: Velocidade de entrada (m/s): 2 Área de entrada (milímetros quadrados): 200 Área de saída (milímetros quadrados): 100 A velocidade de saída é: 4.0 m/s Portanto, a velocidade do fluido na saída do tubo é de 4 m/s. |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como obter o nó com maior valor em uma árvore binária de busca usando JavaQuantidade de visualizações: 2482 vezes |
Em exemplos dessa seção nós vimos como criar árvores binárias e árvores binárias de busca em Java e como pesquisar ou fazer a sua travessia, visitando cada um dos nós. Nesta dica mostrarei como obter o nó com o maior valor em uma árvore binária. O truque aqui é descer o lado direito da árvore até o último nó. 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 ---------------------------------------------------------------------- // método que permite retornar o maior nó de uma árvore // binária de busca public No retornarMaiorElemento(){ // chama a versão recursiva do método return retornarMaiorElemento(raiz); } public No retornarMaiorElemento(No no){ if((no == null) || (no.getDireito() == null)){ return no; // ponto de parada } else{ // vamos continuar descendo do lado direito return retornarMaiorElemento(no.getDireito()); } } Este método faz parte da classe ArvoreBinariaBusca.java. Veja agora como chamá-lo a partir da classe principal, ou seja, a classe de teste: ---------------------------------------------------------------------- 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 arvore_binaria; import java.util.Scanner; public class ArvoreBinariaTeste { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos criar um novo objeto da classe ArvoreBinariaBusca ArvoreBinariaBusca arvore = new ArvoreBinariaBusca(); // vamos inserir 5 valores na árvore for(int i = 0; i < 5; i++){ System.out.print("Informe um valor inteiro: "); int valor = Integer.parseInt(entrada.nextLine()); // vamos inserir o nó e verificar o sucesso da operação if(!arvore.inserir(valor)){ System.out.println("Não foi possível inserir." + " Um elemento já contém este valor."); } } // vamos obter o maior elemento na árvore binária de busca System.out.println("\nO maior nó é: " + arvore.retornarMaiorElemento().getValor()); System.out.println("\n"); } } Ao executar este código teremos o seguinte resultado: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- Informe um valor inteiro: 6 Informe um valor inteiro: 13 Informe um valor inteiro: 64 Informe um valor inteiro: 21 Informe um valor inteiro: 3 O maior nó é: 64 |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
O exercício do direito à propriedade O direito de passagem é um direito de vizinhança reconhecido por lei no caso de terreno encravado e de passagem de cabos, tubulações e dutos na propriedade do vizinho. Assinale a alternativa correta sobre o direito de passagem enquanto direito de vizinhança e a ação de passagem forçada: A) É possível condenar judicialmente o vizinho a conceder passagem forçada mesmo que haja acesso à via pública, mas que o acesso se dê de forma mais cômoda e facilitada se passar pela propriedade dele. B) A ação de passagem forçada é possível no caso de terreno encravado sem acesso à via pública e para passagem de cabos, tubulações e dutos para serviços essenciais. C) Se o proprietário vendeu parte do terreno que lhe pertencia, e ficou sem acesso à via pública, pode, depois, pleitear direito de passagem forçada pelo terreno do vizinho. D) O vizinho que ganha do outro o direito à passagem forçada não será obrigado a indenizá-lo, pois esse direito decorre de lei. E) Se ocorrer concessão de direito de passagem de cabos e tubulações na propriedade do vizinho e esses apresentarem risco, fica por conta dele as obras de segurança, pois ele é o proprietário e a quem foi atribuído o dever de passagem. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Alvenaria: Técnicas construtivas Durante o levantamento, devemos aferir o nivelamento e o prumo de uma parede em blocos cerâmicos: A) Somente se houver um embarrigamento ou desnivelamento visível. B) Ao levantar 1,0 m a parede. C) Somente na última fiada. D) A cada fiada executada. E) A cada 3 fiadas executadas. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fundações |
Fundações profundas A grande vantagem das estacas moldadas in solo em relação às pré-moldadas é permitir que o comprimento estritamente necessário seja concretado. O tipo de fundação profunda constituída por concreto, moldada in loco e executada por meio de trado contínuo e injeção de concreto pela própria haste do trado, é a: A) estaca escavada mecanicamente. B) estaca injetada. C) estaca hélice contínua. D) estaca Franki. E) estaca-raiz. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Vantagens e Desvantagens do Concreto Armado O concreto armado é composto pelo concreto simples e por barras de aço estrategicamente posicionadas no interior do concreto. O trabalho conjunto é garantido pela aderência entre os materiais que o compõem e, com isso, o concreto armado une a resistência à compressão do concreto com a resistência à tração do aço. Com relação às características do concreto armado, assinale a alternativa correta: A) O concreto armado tem elevada resistência à compressão e baixa resistência à tração. B) As armaduras colocadas na parte inferior de vigas de concreto absorvem os esforços de tração de uma peça sujeita à flexão e controlam o aparecimento de fissuras. C) As armaduras de peças de concreto armado se limitam a absorver os esforços gerados por solicitações normais de tração. D) É preciso ter cuidado ao utilizar o concreto e o aço em conjunto, já que são materiais distintos. E) O concreto armado surgiu apenas no século XX, quando passou a ser utilizado também no Brasil. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Água Fria: Reservatórios Sobre o projeto de reservatórios de água fria, assinale a alternativa correta: A) O volume mínimo do reservatório para uso doméstico, salvo o volume do combate a incêndio, deve ser, no mínimo, o necessário para 3 dias de consumo. B) O reservatório de água potável não deve ser enterrado em hipótese alguma, devido à possibilidade de contaminação proveniente do solo. C) No caso de residência de pequeno porte, é recomendado que a reserva mínima seja de 1000 L. D) Reservatórios de maior capacidade devem ser divididos em dois ou mais compartimentos para permitir operações de manutenção sem haver interrupção na distribuição de água. E) A extremidade da tomada d'água no reservatório (saída para o barrilete de distribuição) deve estar no mesmo nível do fundo desse reservatório. Verificar Resposta Estudar Cards Todas as Questões |
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 |