![]() |
|||||
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como inverter a ordem dos elementos de um array usando apenas uma variável temporáriaQuantidade de visualizações: 9656 vezes |
Pergunta/Tarefa: Considere o seguinte trecho de código: // declara, constrói e inicializa um array de 10 inteiros int valores[] = {6, 3, 90, 1, 54, 7, 12, 32, 9, 4}; int temp; Ordem inicial: 6 3 90 1 54 7 12 32 9 4 Ordem invertida: 4 9 32 12 7 54 1 90 3 6 Veja a resolução comentada deste exercício usando Java console: package estudos; public class Estudos { public static void main(String[] args) { // declara, constrói e inicializa um array de 10 inteiros int valores[] = {6, 3, 90, 1, 54, 7, 12, 32, 9, 4}; int temp; // vamos mostar a ordem inicial dos elementos no vetor System.out.print("Ordem inicial: "); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } // vamos inverter a ordem dos elementos no array int inicio = 0, fim = valores.length - 1; while(inicio < fim){ temp = valores[inicio]; valores[inicio] = valores[fim]; valores[fim] = temp; // incrementa e decrementa as variáveis de controle inicio++; fim--; } // vamos mostar a ordem invertida dos elementos do vetor System.out.print("\nOrdem invertida: "); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } System.out.println(); } } |
JavaScript ::: Dicas & Truques ::: Data e Hora |
Como formatar datas em JavaScript de acordo com as configurações do computador do usuário usando a função toLocaleDateString()Quantidade de visualizações: 7511 vezes |
Nesta dica mostrarei como podemos usar a função toLocaleDateString() do objeto Date do JavaScript para formatar e exibir a data atual (ou uma data construída) usando as configurações regionais do computador do usuário. Veja a página HTML completa para o exemplo: <!doctype html> <html> <head> <title>Datas em JavaScript</title> </head> <body> <script type="text/javascript"> // vamos obter a data atual var data = new Date(); // formatamos a data var data_formatada = data.toLocaleDateString(); // e mostramos o resultado document.write("Hoje é: " + data_formatada); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: Hoje é: 04/02/2022 |
PHP ::: Dicas & Truques ::: Variáveis e Constantes |
PHP para iniciantes - Como testar se uma variável é do tipo string usando a função is_string() do PHPQuantidade de visualizações: 11198 vezes |
Em algumas situações podemos querer saber se o tipo de uma variável é string, ou seja, contém uma palavra, frase ou trecho de texto. Este teste pode ser feito com o auxílio da função is_string(). Esta função retorna um valor true ou false dependendendo do tipo de variável sendo testada. Veja o código PHP para este exemplo: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $nome = 'Osmar J. Silva'; if(is_string($nome)){ echo 'A variável $nome é do tipo string'; } else{ echo 'A variável $nome não é do tipo string'; } ?> </body> </html> Ao executar este código nós teremos o seguinte resultado: A variável $nome é do tipo string |
VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de VB.NET - Como testar se um ano é bissexto em VB.NET - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 676 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 VB.NET 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 VB.NET console: Imports System Module Program ' função principal do programa VB.NET Sub Main(args As String()) ' vamos solicitar que o usuário informe um ano Console.Write("Informe o ano: ") Dim ano As Integer = Int32.Parse(Console.ReadLine()) ' vamos verificar se o ano informado é bissexto If (((ano Mod 4 = 0) And (ano Mod 100 <> 0)) Or (ano Mod 400 = 0)) Then Console.WriteLine("O ano informado é bissexto.") Else Console.WriteLine("O ano informado não é bissexto.") End If Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Como testar se um número é positivo ou negativo em JavaQuantidade de visualizações: 13368 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro. Em seguida seu código deverá informar se o número informado é positivo, negativo ou neutro. O zero não é um número positivo nem negativo, já que não é maior nem menor que si mesmo. Por essa razão dizemos que ele é um número neutro. Sua saída deve ser parecida com: Informe um número inteiro: 3 O número 3 é positivo. Informe um número inteiro: -5 O número -5 é negativo. Informe um número inteiro: 0 O número 0 é neutro. Veja a solução comentada deste exercício usando a linguagem Java: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos ler o número System.out.print("Informe um número inteiro: "); int numero = Integer.parseInt(entrada.nextLine()); // o número é positivo? if(numero > 0){ System.out.println("O número " + numero + " é positivo."); } // o número é negativo? else if(numero < 0){ System.out.println("O número " + numero + " é negativo."); } else{ // o número é neutro System.out.println("O número " + numero + " é neutro."); } } } |
Java ::: Dicas & Truques ::: Internacionalização e Localização (Internationalization, i18n, Localization, l10n) |
Como obter a localização padrão da JVM usando o método getDefault() da classe Locale da linguagem JavaQuantidade de visualizações: 9069 vezes |
Em algumas situações precisamos fazer a internacionalização de nossas aplicações. Isso implica em usar um objeto da classe Locale para aplicar a formatação de datas, horas e valores de acordo com as configurações regionais do usuário. Porém, antes de alterar o Locale padrão da JVM, é importante sabermos mais sobre ele. Para isso temos o método estático getDefault() da classe Locale:public static Locale getDefault() Este método retorna um objeto da classe Locale que nos permitirá obter informações sobre a língua, o país e demais configurações do ambiente. Veja um trecho de código demonstrando seu uso: import java.util.*; public class Estudos{ public static void main(String args[]){ // obtém o Locale padrão da JVM Locale locale = Locale.getDefault(); // vamos exibir o código da linguagem e nome do // país para o Locale obtido System.out.println(locale.getLanguage() + " - " + locale.getDisplayCountry()); } } O resultado da execução deste código será algo como: pt - Brasil |
PHP ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em PHP dados dois pontos no plano cartesianoQuantidade de visualizações: 1327 vezes |
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x. Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano: ![]() Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é: \[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \] Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente. Veja agora o trecho de código na linguagem PHP que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos: <?php // x e y do primeiro ponto $x1 = 3; $y1 = 6; // x e y do segundo ponto $x2 = 9; $y2 = 10; $m = ($y2 - $y1) / ($x2 - $x1); // mostramos o resultado echo "O coeficiente angular é: " . $m; ?> Ao executar este código PHP nós teremos o seguinte resultado: O coeficiente angular é: 0.66666666666667 Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$): <?php // x e y do primeiro ponto $x1 = 3; $y1 = 6; // x e y do segundo ponto $x2 = 9; $y2 = 10; // vamos obter o comprimento do cateto oposto $cateto_oposto = $y2 - $y1; // e agora o cateto adjascente $cateto_adjascente = $x2 - $x1; // vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa // (em radianos, não se esqueça) $tetha = atan2($cateto_oposto, $cateto_adjascente); // e finalmente usamos a tangente desse ângulo para calcular // o coeficiente angular $tangente = tan($tetha); // mostramos o resultado echo "O coeficiente angular é: " . $tangente; ?> Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta: 1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0; 2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0; 3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0). 4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe. |
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing para iniciantes - Como usar o método getKeyCode() da classe KeyEvent para detectar qual tecla de direção (setas) foi pressionadaQuantidade de visualizações: 3407 vezes |
Em algumas situações nós precisamos detectar qual das teclas de direção (setas) o usuário pressionou. Para isso podemos usar o método getKeyCode() da classe KeyEvent e testar se o código equivale a uma das constantes KeyEvent.VK_UP, KeyEvent.VK_DOWN, KeyEvent.VK_RIGHT ou KeyEvent.VK_LEFT. Veja o exemplo: package estudos; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Janela extends JFrame implements KeyListener{ public Janela(){ super("Eventos do Teclado"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); // vamos adicionar o objeto listener addKeyListener(this); setSize(350, 250); setVisible(true); } @Override public void keyPressed(KeyEvent e){ switch(e.getKeyCode()){ // seta para cima case KeyEvent.VK_UP: JOptionPane.showMessageDialog(null, "A seta para cima foi pressionada"); break; // seta para baixo case KeyEvent.VK_DOWN: JOptionPane.showMessageDialog(null, "A seta para baixo foi pressionada"); break; // seta para a direita case KeyEvent.VK_RIGHT: JOptionPane.showMessageDialog(null, "A seta para a direita foi pressionada"); break; // seta para a esquerda case KeyEvent.VK_LEFT: JOptionPane.showMessageDialog(null, "A seta para a esquerda foi pressionada"); break; default: JOptionPane.showMessageDialog(null, "Nenhuma tecla de direção foi pressionada"); break; } } @Override public void keyReleased(KeyEvent e){ // sem implementação } @Override public void keyTyped(KeyEvent e){ // sem implementação } public static void main(String args[]){ Janela j = new Janela(); j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } É importante observar que as teclas de direção podem ser detectadas somente nos eventos keyPressed e keyReleased. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em JavaQuantidade de visualizações: 912 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10(). Sua saída deverá ser parecida com: Informe um número inteiro: 48763 A soma do primeiro e do último dígito é: 7 Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Scanner; public class Estudos{ public static void main(String args[]){ // vamos usar a classe Scanner para a leitura dos dados Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar um número inteiro System.out.print("Informe um número inteiro: "); int numero = Integer.parseInt(entrada.nextLine()); // vamos obter a quantidade (-1) de dígitos no número informado int quant = (int)Math.log10(numero); int primeiro_digito = (int)(numero / Math.pow(10, quant)); int ultimo_digito = numero % 10; // soma o primeiro e o último dígito int soma = primeiro_digito + ultimo_digito; // mostra o resultado System.out.println("A soma do primeiro e do último dígito é: " + soma); } } |
C# ::: Coleções (Collections) ::: List<T> |
Como pesquisar um elemento em uma lista do C# usando a função Find() e um PredicateQuantidade de visualizações: 15117 vezes |
Em algumas situações gostaríamos de pesquisar e retornar o primeiro elemento de uma List<T> que obedece a algum critério de busca. Assim, poderíamos, por exemplo, pesquisar um nome que começa com uma determinada palavra ou um preço de produto maior ou igual a um determinado valor. Para tais situações podemos usar o método Find(). Este método possui a seguinte assinatura: public T Find( Predicate<T> match ) Veja que o método pede um delegate do tipo Predicate<T> que define as condições para a pesquisa do elemento. Se o elemento for encontrado, este é retornado. Caso contrário, o valor padrão para T é retornado (null para referências). Veja um trecho de código no qual eu mostro como usar o método Find() em combinação com um método personalizado que permite usar um delegate anônimo. Desta forma conseguimos fornecer, em tempo de execução, o argumento para o parâmetro match do Predicate: static void Main(string[] args){ // vamos criar um objeto da classe List<T> List<string> nomes = new List<string>(); // vamos inserir quatro valores na lista nomes.Add("Osmar J. Silva"); nomes.Add("Salvador Miranda de Andrade"); nomes.Add("Dyego Fernandes de Souza"); nomes.Add("Marcos de Paula Rocha"); // vamos pesquisar um valor na lista usando um método personalizado // Neste exemplo vamos retornar o primeiro nome que contenha a palavra // "Dyego" string nome = encontrar(nomes, "Dyego"); // vamos verificar se o nome foi encontrado if(nome != null){ // foi encontrado....vamos retornar o resultado Console.WriteLine(nome); } else{ Console.WriteLine("Nenhum nome encontrado."); } // vamos pausar a execução Console.Write("\n\nPressione qualquer tecla para continuar..."); Console.ReadKey(); } // método auxiliar que permite encontrar um valor na lista usando // o método Find() da classe List<T> e um Predicate static string encontrar(List<string> lista, string texto){ string encontrado = null; // vamos pesquisar o valor na lista usando seu método Find() // Aqui o primeiro nome que passar no critério de busca será retornado encontrado = lista.Find(delegate(string valor){ return valor.Contains(texto); }); return encontrado; } O método Find() executa uma busca linear. Assim, este método é uma operação O(n), onde n é a quantidade de elementos na lista. |
Nossas 20 dicas & truques de programação mais populares |
Revit Python Shell - Como pedir para o usuário selecionar somente um elemento no Revit usando a função PickObject() do objeto Selection do Revit Python Shell JavaScript - Como construir uma determinada data e hora usando o construtor do objeto Date do JavaScript Java - Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) recursivo |
Você também poderá gostar das dicas e truques de programação abaixo |
Delphi - Como retornar o caractere a partir de um determinado código ASCII em Delphi usando a função Chr() JavaScript - Como calcular o comprimento da hipotenusa em JavaScript dadas as medidas do cateto oposto e do cateto adjascente |
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 |