Você está aqui: Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como testar se um ponto está dentro de um círculo em Java - Desenvolvimento de Games com JavaQuantidade de visualizações: 852 vezes |
Quando estamos trabalhando com computação gráfica, geometria e trigonometria ou desenvolvimento de jogos em Java, é comum precisarmos verificar se um determinado ponto (uma coordenada x, y) está contido dentro de um círculo. Para melhor entendimento, veja a imagem a seguir: ![]() Veja que temos um círculo com raio igual a 115 e com centro nas coordenadas (x = 205; y = 166). Temos também dois pontos. O ponto vermelho está nas coordenadas (x = 140; y = 90) e o ponto azul está nas coordenadas (x = 330; y = 500. Como podemos ver na imagem, o ponto vermelho está dentro do círculo, enquanto o ponto azul está fora. E nosso intenção nesta dica é escrever o código Java que permite fazer essa verificação. Tenha em mente que está técnica é muito útil para o teste de colisões no desenvolvimento de games. Veja o código completo 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 estudos; // vamos declarar a classe Circulo class Circulo{ double xc; double yc; double raio; public Circulo(double xc, double yc, double raio){ this.xc = xc; // x do centro this.yc = yc; // y do centro this.raio = raio; // raio do círculo } } // agora vamos declarar a classe Ponto class Ponto{ double x; double y; public Ponto(double x, double y){ this.x = x; // coordenada x this.y = y; // coordenada y } } // classe principal da aplicação public class Estudos{ public static void main(String[] args){ // vamos criar um objeto Circulo Circulo c = new Circulo(205, 166, 115); // vamos criar um objeto Ponto Ponto p = new Ponto(140, 90); // vamos verificar se o ponto está dentro do // círculo double dx = p.x - c.xc; double dy = p.y - c.yc; if((Math.pow(dx, 2) + Math.pow(dy, 2)) < Math.pow(c.raio, 2)){ System.out.println("O ponto está dentro do círculo"); } else{ System.out.println("O ponto NÃO está dentro do círculo"); } } } Ao executar este código Java nós teremos o seguinte resultado: O ponto está dentro do círculo. Experimente com círculos de raios e coordenadas centrais diferentes e também com pontos em várias coordenadas e veja como os resultados são interessantes. |
![]() |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Geometria, Trigonometria e Figuras Geométricas |
Exercícios Resolvidos de Java - Como calcular o volume e a área de um cilindro em Java - Geometria Espacial em JavaQuantidade de visualizações: 914 vezes |
Pergunta/Tarefa: O Cilindro ou Cilindro Circular é um sólido geométrico alongado e arredondado que possui o mesmo diâmetro ao longo de todo o comprimento. Essa figura geométrica, que faz parte dos estudos de geometria espacial, apresenta dois círculos com raios de medidas equivalentes os quais estão situados em planos paralelos. Veja a imagem a seguir: ![]() Escreva um programa Java que pede para o usuário informar o raio e a altura de um cilindro e calcule e mostre o seu volume e sua área de superfície. Os valores informados pelo usuário deverão ser do tipo double e os resultados deverão também ser do tipo double. Para auxiliar nos cálculos, a fórmula do volume do cilindo é: \[ \text{V} = \pi \cdot r^2 \cdot \text{h} \] Já a fórmula da área do cilindro é: \[ \text{A} = \text{2} \cdot \pi \cdot r \cdot (r + h) \] Sua saída deve ser parecida com: Informe o raio do cilindro: 5 Informe a altura do cilindro: 8 O volume do cilindro é: 628.3185307179587 A área do cilindro é: 408.4070449666731 Veja a resolução comentada deste exercício usando 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 estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double raio, altura, volume, area; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos ler o raio e a altura do cilindro System.out.print("Informe o raio do cilindro: "); raio = Double.parseDouble(entrada.nextLine()); System.out.print("Informe a altura do cilindro: "); altura = Double.parseDouble(entrada.nextLine()); // vamos calcular o volume do cilindro volume = Math.PI * Math.pow(raio, 2) * altura; // agora vamos calcular a área do cilindro area = 2 * Math.PI * raio * (raio + altura); // e mostramos o resultado System.out.println("O volume do cilindro é: " + volume); System.out.println("A área do cilindro é: " + area); } } |
Java ::: Coleções (Collections) ::: HashSet |
Java Collections - Como usar a classe HashSet em seus programas JavaQuantidade de visualizações: 5155 vezes |
A classe HashSet, no pacote java.util, é uma classe concreta que implementa a interface Set. Na maioria das vezes nós usamos objetos desta classe para armazenar elementos não duplicados (ainda que o elemento null seja permitido). Veja sua posição na hierarquia de classes da plataforma Java:java.lang.Object java.util.AbstractCollection<E> java.util.AbstractSet<E> java.util.HashSet<E> Veja um trecho de código no qual inserimos cinco elementos do tipo String em um HashSet e os listamos em seguida: ---------------------------------------------------------------------- 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.HashSet; import java.util.Iterator; import java.util.Set; public class Estudos{ public static void main(String[] args) { // vamos criar uma instância da classe HashSet Set<String> conjunto = new HashSet<>(); // vamos inserir cinco Strings neste conjunto conjunto.add(null); // o elemento null é permitido conjunto.add("Marcos"); conjunto.add("Osmar"); conjunto.add("Osmar"); // elemento duplicado aqui conjunto.add("Fernanda"); // vamos exibir os elementos Iterator iterator = conjunto.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } } Ao executarmos este código teremos o seguinte resultado: null Fernanda Marcos Abel Osmar |
Java ::: Dicas & Truques ::: Mouse e Teclado |
Como ligar ou desligar a tecla Caps Lock do seu teclado usando JavaQuantidade de visualizações: 18021 vezes |
Nesta dica mostrarei como ligar ou desligar a tecla Caps Lock (tudo maiúsculo) do seu teclado usando o método setLockingKeyState() da classe Toolkit, do pacote java.awt. Note que passei o valor true para ligar o Caps Lock e false para desligar. Veja o código completo 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 ---------------------------------------------------------------------- import java.awt.Toolkit; import java.awt.event.*; public class Estudos{ public static void main(String[] args){ Toolkit tk = Toolkit.getDefaultToolkit(); // Liga a tecla Caps Lock tk.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true); // Para desligar basta usar: // tk.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, false); System.exit(0); } } Esta dica foi testada no Java 8 e Windows 10. |
Java ::: Aplicativos Completos ::: Fontes |
Como criar um visualizador de fontes em Java Swing - Código fonte completoQuantidade de visualizações: 10359 vezes |
Código completo Java: Como escrever um visualizador de fontes em Java Swing Nesta dica eu mostro o código completo para uma aplicação GUI usado Java Swing e que permite visualizar as fontes instaladas no sistema. Ao clicar em uma das fontes exibidas em uma JList, o texto da JLabel é formatado de acordo com a fonte escolhida. Note que montei toda a GUI em código mesmo, ou seja, sem usar o editor visual do Netbeans ou outra IDE. Esse é um bom exercício para entender os elementos que compõem interfaces gráficas do Java Swing. Eis o código completo 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; import java.awt.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; public class Estudos extends JFrame implements ListSelectionListener{ JLabel label = new JLabel("Observe este texto"); public Estudos(){ super("Visualizados de Fontes"); String[] fontNames; // nomes das fontes Toolkit toolkit = Toolkit.getDefaultToolkit(); fontNames = GraphicsEnvironment.getLocalGraphicsEnvironment(). getAvailableFontFamilyNames(); Vector fonts = new Vector(); for(int i = 0; i < fontNames.length; i++){ fonts.add(new Font(fontNames[i], Font.PLAIN, 16)); } JList fontList = new JList(fonts); fontList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); fontList.setCellRenderer(new FontCellRenderer()); JScrollPane scrollPane = new JScrollPane(fontList); JPanel p = new JPanel(); p.add(scrollPane); fontList.addListSelectionListener(this); getContentPane().add(p, "Center"); getContentPane().add(label, "South"); setSize(500, 250); setVisible(true); } @Override public void valueChanged(ListSelectionEvent evt){ JList source = (JList) evt.getSource(); Font font = (Font) source.getSelectedValue(); label.setFont(font); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } // Classe personalizada que implementa ListCellRenderer class FontCellRenderer implements ListCellRenderer{ @Override public Component getListCellRendererComponent( final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus){ return new JPanel(){ @Override public void paintComponent(Graphics g){ super.paintComponent(g); Font font = (Font) value; String text = font.getFamily(); FontMetrics fm = g.getFontMetrics(font); g.setColor(isSelected ? list.getSelectionBackground() : list.getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(isSelected ? list.getSelectionForeground() : list.getForeground()); g.setFont(font); g.drawString(text, 0, fm.getAscent()); } @Override public Dimension getPreferredSize() { Font font = (Font) value; String text = font.getFamily(); Graphics g = getGraphics(); FontMetrics fm = g.getFontMetrics(font); return new Dimension(fm.stringWidth(text), fm.getHeight()); } }; } } Ao executá-lo você terá um resultado parecido com: ![]() |
Java ::: Java Swing - Gerenciadores de Layout ::: GridBagLayout |
Como adicionar espaço entre o GridBagLayout do Java Swing e as bordas da janela JFrame usando o método setBorder()Quantidade de visualizações: 11274 vezes |
Se o GridBagLayout for o gerenciador de layout principal da janela, pode ser interessante adicionar algum espaço (padding) entre ele e as bordas da janela JFrame ou JDialog. Isso pode ser feito obtendo-se uma referência ao painel de conteúdo (ContentPane) da JFrame e adicionando uma borda EmptyBorder. Veja como isso é feito no trecho de 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; import javax.swing.*; import javax.swing.border.*; import java.awt.*; public class Estudos extends JFrame{ public Estudos(){ super("Como usar a classe GridBagLayout"); // define o layout setLayout(new GridBagLayout()); // define uma borda para aumentar o espaço // entre as bordas da janela e o gerenciador // de layout ((JComponent)getContentPane()).setBorder( new EmptyBorder(10, 10, 10, 10)); // cria o GridBagConstraints GridBagConstraints gbc = new GridBagConstraints(); // controla o espaço entre os componentes // e as linhas do GridBagLayout. // aqui nós definimos 5 pixels para os // lados de cima, esquerda, inferior e direita gbc.insets = new Insets(5, 5, 5, 5); // adiciona componentes à janela gbc.gridy = 0; // linha gbc.gridx = 0; // coluna add(new JButton("Botão 1"), gbc); gbc.gridy = 0; // linha gbc.gridx = 1; // coluna add(new JButton("Botão 2"), gbc); gbc.gridy = 0; // linha gbc.gridx = 2; // coluna add(new JButton("Botão 3"), gbc); gbc.gridy = 1; // linha gbc.gridx = 0; // coluna add(new JButton("Botão 4"), gbc); gbc.gridy = 1; // linha gbc.gridx = 1; // coluna add(new JButton("Botão 5"), gbc); gbc.gridy = 1; // linha gbc.gridx = 2; // coluna add(new JButton("Botão 6"), gbc); //setSize(350, 150); pack(); // ajusta o tamanho da janela ao // dos componentes setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar este código Java Swing nós teremos o seguinte resultado: ![]() |
Java ::: Coleções (Collections) ::: Vector |
Como usar o método add() para adicionar um elemento no início de um objeto da classe Vector da linguagem JavaQuantidade de visualizações: 10087 vezes |
Nesta dica mostrarei como é possível adicionar novos elementos no início de um Vector usando o método add() dessa classe. A assinatura que usaremos é:public void add(int index, E element) Veja que o método recebe o índice indicando a posição na qual o novo elemento será inserido e o elemento propriamente dito. Veja o código completo 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; import java.util.*; public class Estudos{ public static void main(String args[]){ // Cria um Vector Vector<Integer> valores = new Vector<Integer>(); // adiciona itens ao Vector valores.addElement(54); valores.addElement(87); valores.addElement(6); // Lista os itens do Vector System.out.println("Elementos no Vector: "); for(Enumeration e = valores.elements(); e.hasMoreElements();){ int valor = (Integer)e.nextElement(); System.out.print(valor + " "); } // Adiciona um elemento no início valores.add(0, 10); System.out.println(); // Lista os itens do Vector System.out.println("\nElementos no Vector: "); for(Enumeration e = valores.elements(); e.hasMoreElements();){ int valor = (Integer)e.nextElement(); System.out.print(valor + " "); } } } Ao executarmos este código nós teremos o seguinte resultado: Elementos no Vector: 54 87 6 Elementos no Vector: 10 54 87 6 É importante observar que as classes java.util.Vector e java.util.Hashtable foram marcadas como obsoletas a partir do JDK1.2 e provavelmente não serão usadas em novos desenvolvimentos. |
Java ::: Pacote java.awt ::: Graphics |
Como retornar a cor atual do contexto de desenho usando o método getColor() da classe Graphics do Java - Computação gráfica em JavaQuantidade de visualizações: 7884 vezes |
Antes de efetuar qualquer desenho na superfície de um componente, é importante saber qual cor está definida no momento, assim podemos alterá-la se necessário. Para isso podemos usar o método getColor() da classe Graphics. Este método retorna um objeto da classe Color. Veja um exemplo no qual obtemos a cor usada atualmente para desenhar na superfície de um JLabel: ---------------------------------------------------------------------- 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"); 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("Obter a cor do contexto"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ Graphics graphics = label.getGraphics(); // obtém a cor usada para desenhar no // contexto de desenho Color cor = graphics.getColor(); JOptionPane.showMessageDialog(null, "A cor usada atualmente é " + cor.toString()); } } ); // 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); } } Ao executar este código Java nós teremos o seguinte resultado: A cor usada atualmente é java.awt.Color[r=0,g=0,b=0] |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Escreva um programa (algorítmo) Java que usa o laço do...while para ler um número indeterminado de idades. A condição de parada do laço é o valor da idade igual a 0Quantidade de visualizações: 9011 vezes |
Pergunta/Tarefa: Escreva um programa (algorítmo) Java que usa o laço do...while para ler um número indeterminado de idades de algumas pessoas. A condição de parada do laço é o valor da idade igual a 0. Calcule a escreva a idade média deste grupo de pessoas. Sua saída deverá ser parecida com: Informe a idade: 19 Informe a idade: 30 Informe a idade: 21 Informe a idade: 45 Informe a idade: 0 A idade média é: 28.75 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 efetuar a leitura usando a classe Scanner Scanner entrada = new Scanner(System.in); int idade; // guarda a idade lida de cada indivíduo double idade_media; // a idade média calculada int soma = 0; // a soma das idades de cada indivíduo int contador = 0; // conta as idades lidas // laço do...while que repetirá até que o valor da idade seja 0 do{ System.out.print("Informe a idade: "); idade = Integer.parseInt(entrada.nextLine()); // a idade lida é diferente de 0? if(idade != 0){ soma = soma + idade; // soma mais esta idade contador++; // aumenta a quantidade de idades lidas } }while(idade != 0); // calcula a idade média // note que forcei contador para o tipo double antes da divisão // isso faz com que o resultado seja do tipo double idade_media = soma / (contador * 1.0); // finalmente mostramos o resultado System.out.println("A idade média é: " + idade_media); } } |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Instalação hidrossanitária: fundamentos e definições Sobre os critérios a serem atingidos pelas instalações prediais de água fria, assinale a alternativa correta. A) Proporcionar o escoamento para o sistema de tratamento de esgoto, garantir a higiene do usuário, garantir o fornecimento de água quente, funcionar de acordo com os limites da NBR 7198 e tornar a instalação econômica. B) Proporcionar conforto, garantir a higiene do usuário, atender aos padrões de potabilidade, funcionar de acordo com os limites de pressão e velocidade estabelecidos por norma e tornar a instalação econômica. C) Proporcionar o fornecimento de água fria sem interrupção, garantir a higiene do usuário, atender aos padrões de turbidez, funcionar de acordo com os limites de estabilidade e fluidez estabelecidos por norma e tornar a instalação durável. D) Proporcionar conforto, garantir a higiene do usuário, manter os padrões da água coletada nos mananciais e poços, funcionar de acordo com os limites de pressão e velocidade não estabelecidos por norma e utilizar os recursos possíveis para a execução da instalação. E) Proporcionar conforto, garantir a higiene do usuário, atender aos padrões de turbidez, funcionar de acordo com os limites de pressão e velocidade estabelecidos por legislação e utilizar os recursos possíveis para a execução da instalação. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?valor = 56.21 print("Valor: %.5d" % valor) A) Valor: 00056 B) Valor: 21 C) Valor: 00056.21 D) Valor: 56 E) Valor: 6.2100 Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Qual é a forma correta de adicionar comentários de uma linha em JavaScript? A) <!-- Este é um comentário --> B) // Este é um comentário C) ' Este é um comentário D) # Este é um comentário Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Tintas As tintas são misturas líquidas ou em pó utilizadas para colorir, proteger e embelezar superfícies diversas, como paredes, metais, plásticos, madeiras e muito mais. Elas são compostas de vários componentes que desempenham funções específicas para proporcionar as características desejadas. Associe os componentes das tintas utilizadas na construção civil e suas respectivas funções: I. Pigmentos II. Solventes III. Aglutinantes ( ) São também conhecidos como ligantes, e uma de suas funções é a capacidade de formar uma película sólida quando a tinta é aplicada. ( ) São responsáveis por conferir cor, opacidade e estabilidade à tinta. ( ) São usados para ajustar a viscosidade da tinta, tornando-a adequada para aplicação. Marque a ordem da associação correta. A) III, II, I. B) II, I, III. C) I, II, III. D) II, III, I. E) III, I, II. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Pilares centrais: dimensionamento e detalhes construtivos Em relação aos detalhes construtivos dos pilares centrais, pode-se afirmar que: A) não deve-se deixar vãos nas formas, pois pode ocorrer perda de nata. B) no mercado, existem apenas as formas metálicas para concretagem de pilares. C) quando o pilar não está no prumo, deve-se utilizar teodolito. D) As tensões de deformação em um material dúctil são lineares. E) O desmoldante não influencia a desmolagem dos pilares. 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |