![]() |
|||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
Java ::: Coleções (Collections) ::: Queue |
Como criar uma fila em Java usando a interface QueueQuantidade de visualizações: 1181 vezes |
Uma fila é uma estrutura de dados do tipo FIFO (First-in, First-out), ou seja, o primeiro elemento a entrar é o primeiro a sair. Podemos pensar em uma estrutura de dados do tipo fila como uma fila real de um banco ou supermercado. A linguagem Java não fornece uma classe pronta chamada Queue. Em vez disse nós temos uma interface Queue e suas implementações concretas, a saber, as classes java.util.LinkedList e java.util.PriorityQueue. É claro que existem outras implementações, mas estas duas são as que usamos com mais frequencia. Como nesta dica a nossa intenção é representar uma fila comum, nós vamos descartar a classe PriorityQueue (fila de prioridade) e nos ater à implementação de Queue fornecida pela classe LinkedList. Vamos começar com um exemplo bem simples. Veja um trecho de código no qual enfileiramos 5 valores inteiros em uma fila e os desenfileiramos em seguida: package estudos; import java.util.LinkedList; import java.util.Queue; public class Estudos{ public static void main(String[] args){ // vamos criar uma fila de inteiros e adicionar 5 inteiros Queue<Integer> fila = new LinkedList<>(); fila.add(76); fila.add(80); fila.add(11); fila.add(32); fila.add(45); // agora vamos desenfileirar todos os elementos System.out.println("Ordem de remoção dos elementos da fila:"); while(!fila.isEmpty()){ System.out.print(fila.poll() + " "); } } } Ao executar este código Java nós teremos o seguinte resultado: Ordem de remoção dos elementos da fila: 76 80 11 32 45 |
Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o ponto médio entre dois pontos no plano usando Java - Geometria com JavaQuantidade de visualizações: 3257 vezes |
Nesta dica mostrarei como é possível usar um trecho de código Java para obter o ponto médio entre dois pontos quaisquer no plano, ou seja, no R2. Em mais dicas dessa seção você aprenderá como isso pode ser feito no R3 (espaço) Comece analisando a figura abaixo, na qual temos dois pontos A e B, com suas coordenadas correspondentes, e o ponto médio M: ![]() Assim, dados dois pontos A = (2, 9) e B = (10, 2) no plano cartesiano R2, as coordenadas x e y do ponto médio são calculadas por meio da seguinte fórmula: \[x = \frac{x_1 + x_2}{2}\] \[y = \frac{y_1 + y_2}{2}\] Colocando na fórmula os valores que já temos: \[x = \frac{2 + 10}{2} = \frac{12}{2} = 6 \] \[y = \frac{9 + 2}{2} = \frac{11}{2} = 5.5 \] Assim, as coordenadas do ponto médio será (x = 6, y = 5.5). E agora veja o código Java completo para calcular as coordenadas do ponto médio a partir de dois pontos no plano cartesiano (plano 2D ou R2): package arquivodecodigos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ Scanner entrada = new Scanner(System.in); // x e y do primeiro ponto System.out.print("Coordenada x do primeiro ponto: "); float x1 = Float.parseFloat(entrada.nextLine()); System.out.print("Coordenada y do primeiro ponto: "); float y1 = Float.parseFloat(entrada.nextLine()); // x e y do segundo ponto System.out.print("Coordenada x do segundo ponto: "); float x2 = Float.parseFloat(entrada.nextLine()); System.out.print("Coordenada y do segundo ponto: "); float y2 = Float.parseFloat(entrada.nextLine()); // vamos calcular as coordenadas x e y do ponto médio float x = (x1 + x2) / 2; float y = (y1 + y2) / 2; // vamos mostrar o resultado System.out.println("As coordenadas do ponto médio são: (x = " + x + ", y = " + y + ")"); } } Ao executarmos este código Java nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 2 Coordenada y do primeiro ponto: 9 Coordenada x do segundo ponto: 10 Coordenada y do segundo ponto: 2 As coordenadas do ponto médio são: (x = 6.0, y = 5.5) |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de inteirosQuantidade de visualizações: 1940 vezes |
Pergunta/Tarefa: Escreva um método recursivo que conta quantas vezes um valor inteiro k ocorre em um vetor de 10 inteiros. Seu método deverá ter a seguinte assinatura: public static int quantRepeticoes(int indice, int valor, int[] vetor){ // sua implementação aqui } Informe o 1 valor: 2 Informe o 2 valor: 7 Informe o 3 valor: 4 Informe o 4 valor: 7 Informe o 5 valor: 1 Informe o valor a ser pesquisado no vetor: 7 O valor informado se repete 2 vezes. Veja a resolução comentada deste exercício usando Java console: package exercicio; import java.util.Scanner; public class Exercicio { public static void main(String[] args) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos declarar um vetor de 10 inteiros int valores[] = new int[5]; // vamos pedir ao usuário que informe os valores do vetor for(int i = 0; i < valores.length; i++){ System.out.print("Informe o " + (i + 1) + " valor: "); // efetua a leitura do valor informado para a posição atual do vetor valores[i] = Integer.parseInt(entrada.nextLine()); } // agora vamos pedir para informar o valor a ser pesquisado System.out.print("\nInforme o valor a ser pesquisado no vetor: "); int valor = Integer.parseInt(entrada.nextLine()); // e vamos ver a quantidade de repetições int repeticoes = quantRepeticoes(0, valor, valores); System.out.print("O valor informado se repete " + repeticoes + " vezes."); System.out.println("\n"); } // método recursivo que recebe um valor public static int quantRepeticoes(int indice, int valor, int[] vetor){ if(indice == vetor.length - 1){ // caso base...hora de parar a recursividade if(vetor[indice] == valor){ return 1; // mais um repetição foi encontrada } } else{ // dispara mais uma chamada recursiva if(vetor[indice] == valor){ // houve mais uma repetição return 1 + quantRepeticoes(indice + 1, valor, vetor); } else{ return 0 + quantRepeticoes(indice + 1, valor, vetor); // não repetiu } } return 0; // só para deixar o compilador satisfeito...esta linha nunca é executada } } |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como remover o primeiro elemento de um array em JavaScript - Como usar a função shift() do objeto Array do JavaScriptQuantidade de visualizações: 8787 vezes |
Neste dica mostrarei como usar o método shift() do objeto Array da linguagem JavaScript para remover e retornar o primeiro elemento de um vetor. A ação de remover o primeiro elemento, ou seja, o elemento do topo do vetor é muito usada na construção da estrutura de dados pilha. Veja o código completo, incluindo a página HTML que permite executar o exemplo: <html> <head> <meta charset="utf-8"> <title>Estudos JavaScript</title> </head> <body> <script language="javascript"> // vamos declarar e instanciar um vetor com 5 elementos var valores = new Array(1, 2, 3, 4, 5); document.write("Valores no vetor: " + valores + "<br>"); // vamos remover o primeiro elemento var primeiro = valores.shift(); document.write("Removendo o primeiro elemento: " + primeiro + "<br>"); document.write("Valores no vetor: " + valores); </script> </body> </html> Ao abrir esta página HTML nós teremos o seguinte resultado: Valores no vetor: 1,2,3,4,5 Removendo o primeiro elemento: 1 Valores no vetor: 2,3,4,5 |
JavaScript ::: Dicas & Truques ::: Mouse e Teclado |
Como obter o código da tecla pressionada em um elemento HTML usando o evento onkeypress do JavaScriptQuantidade de visualizações: 334 vezes |
Nesta dica eu mostrarei como é possível usar o evento onkeypress do HTML + JavaScript para obter o código da tecla pressionada pelo usuário. Note que usei a propriedade keyCode do objeto event para capturar o código da tecla. Veja o código JavaScript completo, incluindo a página HTML: <html> <head> <title>Estudando JavaScript</title> </head> <body> <p>Experimente pressionar qualquer tecla e uma mensagem mostrará o código da tecla pressionada.</p> <script type="text/javascript"> function tecla(){ window.alert("O código da tecla pressionada foi: " + event.keyCode); } document.body.onkeypress = tecla; </script> </body> </html> Abra esta página no seu navegador e experimente pressionar uma tecla. Se você presssionar, por exemplo, a tecla "a", teremos a seguinte mensagem: O código da tecla pressionada foi: 97 |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C# - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em C#Quantidade de visualizações: 424 vezes |
Pergunta/Tarefa: Escreva um programa C# que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado: // declara, constrói e inicializa um vetor de 10 inteiros int[] valores = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10}; Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes Veja a resolução comentada deste exercício usando C#: using System; namespace Estudos { class Principal { // função principal do programa C# static void Main(string[] args) { // declara, constrói e inicializa um vetor de 10 inteiros int[] valores = { 4, 21, 9, 8, 12, 21, 4, 4, 1, 10 }; // vamos ler um valor inteiro Console.Write("Informe um valor: "); int pesquisa = Int32.Parse(Console.ReadLine()); // vamos verificar quantas vezes o valor informado está // contido no vetor int repeticoes = 0; for (int i = 0; i < valores.Length; i++) { if (valores[i] == pesquisa) { repeticoes++; // encontrou? vamos contar esta ocorrência } } // vamos mostrar o resultado Console.WriteLine("O valor foi encontrado: " + repeticoes + " vezes"); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Dart - Como testar se um ano é bissexto em Dart - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 1068 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa Dart que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando Dart: // Vamos importar a biblioteca dart:io import "dart:io"; void main(){ // vamos solicitar que o usuário informe um ano stdout.write("Informe o ano: "); int ano = int.parse(stdin.readLineSync()); // vamos verificar se o ano informado é bissexto if(((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)){ print("O ano informado é bissexto."); } else{ print("O ano informado não é bissexto."); } } |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Como retornar o primeiro elemento de um vetor em CQuantidade de visualizações: 393 vezes |
Pergunta/Tarefa: Dado o vetor: [9, 5, 3, 2, 4, 8] Escreva um programa C que mostra como acessar e retornar o primeiro elemento de um vetor (array) em C. Sua saída deverá ser parecida com: O primeiro elemento do array é: 9 Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> // função principal do programa int main(int argc, char *argv[]){ // vamos criar um array de inteiros int valores[] = {9, 5, 3, 2, 4, 8}; // agora vamos retornar o primeiro elemento do vetor int primeiro = valores[0]; // e mostramos o resultado printf("O primeiro elemento do array é: %d", primeiro); printf("\n\n"); system("PAUSE"); return 0; } |
C++ ::: Win32 API (Windows API) ::: Arquivos e Diretórios |
Como renomear arquivos e diretórios em C++ usando a função MoveFile() da API do WindowsQuantidade de visualizações: 8819 vezes |
A função MoveFile() da API do Windows pode ser usada quando precisamos renomear um arquivo ou diretório. Veja seu protótipo:BOOL WINAPI MoveFile( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName ); Note que só precisamos fornecer o nome atual e o novo nome do arquivo ou diretório que queremos renomear. Se houver algum erro ao renomear o arquivo ou diretório, a função MoveFile() retornará o valor 0 (zero). Se a operação for efetuada com sucesso, um valor diferente de 0 (zero) será retornado. É sempre uma boa idéia usar a função GetLastError() para retornar o código do erro em caso de falha. Veja um trecho de código no qual renomeamos um arquivo: #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]){ // nome atual do arquivo CHAR nome_atual[] = "C:\\testes.txt"; // novo nome do arquivo CHAR nome_novo[] = "C:\\novo.txt"; // vamos renomear o arquivo if(MoveFile(nome_atual, nome_novo)){ cout << "Arquivo renomeado com sucesso." << endl; } else{ cout << "Erro ao renomear o arquivo: " << GetLastError() << endl; } system("PAUSE"); return EXIT_SUCCESS; } Aqui nós estamos alterando o nome do arquivo testes.txt para novo.txt. Os possíveis erros nesta operação são: a) ERROR_FILE_NOT_FOUND - Ocorre quando o arquivo fornecido como primeiro argumento para a função MoveFile() não existe. O código para este erro é 2 e a mensagem em português é "O sistema não pode encontrar o arquivo especificado (The system cannot find the file specified)". b) ERROR_ALREADY_EXISTS - Ocorre quando o arquivo fornecido como segundo argumento para a função MoveFile() já existe. O código para este erro é 183 e a mensagem em português é "Não é possível criar um arquivo já existente (Cannot create a file when that file already exists)". Veja agora um trecho de código no qual renomeamos um diretório: #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char *argv[]){ // nome atual do diretório CHAR nome_atual[] = "C:\\imagens"; // novo nome do diretório CHAR nome_novo[] = "C:\\imagens2"; // vamos renomear o diretório if(MoveFile(nome_atual, nome_novo)){ cout << "Diretório renomeado com sucesso." << endl; } else{ cout << "Erro ao renomear o diretório: " << GetLastError() << endl; } system("PAUSE"); return EXIT_SUCCESS; } |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como evitar a barra de rolagem horizontal em um JScrollPaneQuantidade de visualizações: 161 vezes |
Em algumas situações nós precisamos usar um JScrollPane para permitir as barras de rolagem em algum componente visual do Java Swing. Nesta dica eu mostro como isso pode ser feito, e mostro também como a barra de rolagem horizontal pode ser evitada. Este comportamento é o esperado quando estamos trabalhando com caixas de texto do tipo JTextArea. Veja um trecho de código no qual usamos a constante HORIZONTAL_SCROLLBAR_NEVER de ScrollPaneConstants para indicar que a barra horizontal não deverá ser exibida: textArea = new JTextArea(10, 20); JScrollPane scrollPane = new JScrollPane(textArea); // Evitar o aparecimento da barra de rolagem horizontal scrollPane.setHorizontalScrollBarPolicy( ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); |
Nossas 20 dicas & truques de programação mais populares |
Ruby - Como inserir uma substring em uma determinada posição de uma string em Ruby usando a função insert() Android Java - Como detectar um clique em um botão do Android usando setOnClickListener() e exibir uma mensagem AlertDialog VB.NET - Como inverter o conteúdo de uma string em VB.NET usando os métodos ToCharArray() e Reverse() |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Exercício Resolvido de Java - Usando um laço for para contar de 0 até 10 e somar todos os valores |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |