![]() |
|||||
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Um laço for que pede que o usuário informe 10 valores inteiros e mostra a quantidade de valores pares informadosQuantidade de visualizações: 10825 vezes |
Pergunta/Tarefa: Escreva um programa Java console que usa o laço for para solicitar que o usuário digite 10 valores inteiros. Em seguida seu programa deverá contar quantos valores pares foram informados. Dica: Use um objeto da classe Scanner para obter a entrada do usuário. Resposta/Solução: A resolução deste exercício envolve a criação de uma variável contador, do tipo int, e que deverá ser inicializada com o valor 0. Veja: int contador = 0; // guardará a quantidade de valores pares lidos public static void main(String[] args){ // para este exercício você deverá importar a classe // Scanner. Ela está no pacote java.util.*; // vamos construir um objeto da classe Scanner para ler a // entrada do usuário Scanner entrada = new Scanner(System.in); int valor; // guarda o valor lido int contador = 0; // guardará a quantidade de valores pares lidos // vamos pedir ao usuário que informe 10 valores inteiros for(int i = 0; i < 10; i++){ System.out.print("Informe o " + (i + 1) + "º valor: "); valor = Integer.parseInt(entrada.nextLine()); // vamos verificar se o valor lido é par if(valor % 2 == 0){ contador++; } } // vamos exibir a quantidade de números pares lidos System.out.println("\nVocê informou " + contador + " valores pares.\n"); } |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma string é null ou vazia em C# usando a função IsNullOrEmpty() da classe StringQuantidade de visualizações: 23609 vezes |
Em algumas situações nós queremos verificar se uma variável do tipo string está null ou vazia (não contém nem mesmo o caractere de espaço ou quebra de linha). Para isso nós podemos usar o método IsNullOrEmpty() da classe String da linguagem C#. Veja um trecho de código no qual temos uma string nula e uma string vazia. Observe os resultados retornados pela função: using System; namespace Estudos { class Program { static void Main(string[] args) { string palavra1 = null; string palavra2 = ""; if (String.IsNullOrEmpty(palavra1)) { Console.WriteLine("palavra1 é null ou vazia"); } if (String.IsNullOrEmpty(palavra2)) { Console.WriteLine("palavra2 é null ou vazia"); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: palavra1 é null ou vazia palavra2 é null ou vazia |
JavaScript ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em JavaScript dados dois pontos pertencentes à retaQuantidade de visualizações: 803 vezes |
Nesta dica de JavaScript veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: ![]() Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código JavaScript completo para esta tarefa: <!doctype html> <html> <head> <title>Equação da Reta em JavaScript</title> </head> <body> <script type="text/javascript"> // vamos ler as coordenadas do primeiro ponto var x1 = parseFloat( window.prompt("Coordenada x do primeiro ponto: ")); var y1 = parseFloat( window.prompt("Coordenada y do primeiro ponto: ")); // vamos ler as coordenadas do segundo ponto var x2 = parseFloat( window.prompt("Coordenada x do primeiro ponto: ")); var y2 = parseFloat( window.prompt("Coordenada y do primeiro ponto: ")); var sinal = "+"; // vamos calcular o coeficiente angular da reta var m = (y2 - y1) / (x2 - x1); // vamos calcular o coeficiente linear var n = y1 - (m * x1); // coeficiente linear menor que zero? O sinal será negativo if (n < 0){ sinal = "-"; n = n * -1; } // mostra a equação reduzida da reta document.write("Equação reduzida: y = " + m + "x" + " " + sinal + " " + n); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Delphi ::: Dicas & Truques ::: Imagens e Processamento de Imagens |
Como capturar um screenshot da área de trabalho e salvá-lo como um Bitmap usando DelphiQuantidade de visualizações: 13705 vezes |
Em algumas situações precisamos capturar um screenshot da área de trabalho (Windows Desktop) e salvá-lo como um Bitmap. Esta dica mostra como isso pode ser feito. Note que aqui estamos salvando o bitmap gerado no mesmo diretório do executável. Caso queira salvar o resultado em outra pasta ou diretório, consulte minhas dicas sobre a manipulação de arquivos e diretórios usando Delphi. Veja o código (coloquei no evento OnClick de um botão: procedure TForm2.Button1Click(Sender: TObject); var DCDesk: HDC; bmp: TBitmap; begin // vamos criar o Bitmap bmp := TBitmap.Create; // vamos definir o tamanho do bitmap bmp.Height := Screen.Height; bmp.Width := Screen.Width; // aqui nós obtemos um handle para o contexto de dispositivo // de exibição do Desktop DCDesk := GetWindowDC(GetDesktopWindow); // vamos copiar a imagem do desktop para o bitmap criado // anteriormente BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DCDesk, 0, 0, SRCCOPY); // salvamos o bitmap bmp.SaveToFile('screenshot.bmp'); // liberamos o handle do desktop ReleaseDC(GetDesktopWindow, DCDesk); // e finalmente liberamos o bitmap bmp.Free; ShowMessage('Screenshot criado com sucesso.'); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
jQuery ::: Dicas & Truques ::: Atributos ou Propriedades HTML |
jQuery para iniciantes - Como ocultar e exibir um elemento HTML usando o método toggleClass() do jQueryQuantidade de visualizações: 13768 vezes |
O método toggleClass() do jQuery nos fornece uma forma bem simples de ocultar ou exibir um elemento HTML. Veja como isso é feito mais abaixo. Comece analisando o trecho de estilos CSS: <style type="text/css"> body, td {font: 70% Verdana} .oculta {display: none} </style> O truque aqui é adicionar a classe "oculta" ao elemento que queremos ocultar e removê-la quando queremos que o elemento seja exibido novamente. Veja o elemento DIV que usaremos para ilustrar o efeito: <div id="div_1">Sou um DIV</div> E finalmente uma função JavaScript (na parte <head></head> da página) que poderá ser chamada a partir de um botão: <script type="text/javascript"> <!-- function ocultarExibir(){ $("#div_1").toggleClass("oculta"); } //--> </script> |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes) |
Como multiplicar um vetor ou uma matriz por um escalar no NumPy do Python - Python NumPy para EngenhariaQuantidade de visualizações: 4413 vezes |
Esta dica de Python e NumPy é direcionada, principalmente, aos estudantes de Engenharia Civil, que se deparam, logo no início do curso, com o estudo da Geometria Analítica e gostariam de entender melhor a multiplicação de vetores por um escalar. Lembre-se de que um escalar é um valor único, enquanto vetores e matrizes são estruturas que guardam vários valores ao mesmo tempo. Nosso primeiro exemplo será feito em cima de um vetor com os seguintes valores: [3, -5, 4, 1, 9]. O escalar usado será o valor 2, ou seja, temos que multiplicar cada valor no vetor pelo valor 2 e, dessa forma, obtermos um novo vetor. Veja como a linguagem Python facilita esta operação: # importamos a bibliteca NumPy import numpy as np def main(): # declara e cria o vetor vetor = np.array([3, -5, 4, 1, 9]) # agora vamos multiplicar este vetor pelo escalar 2 escalar = 2 novoVetor = vetor * escalar # vamos exibir o resultado print("Vetor inicial: ", vetor) print("Valor do escalar: ", escalar) print("Novo vetor: ", novoVetor) if __name__== "__main__": main() Este código Python vai gerar o seguinte resultado: Vetor inicial: [3 -5 4 1 9] Valor do escalar: 2 Novo vetor: [6 -10 8 2 18] Veja agora como podemos efetuar a mesma operação em uma matriz de 2 linhas e 3 colunas (recorde que, em Python, uma matriz nada mais é que um vetor de vetores, ou seja, cada elemento do vetor contém outro vetor): # importamos a bibliteca NumPy import numpy as np def main(): # declara e cria a matriz matriz = np.array([(4, 12, 50), (5, 3, 1), (11, 9, 7)]) # agora vamos multiplicar esta matriz pelo escalar 2 escalar = 2 novaMatriz = matriz * escalar # vamos exibir o resultado print("Matriz inicial: ", matriz) print("Valor do escalar: ", escalar) print("Nova matriz: ", novaMatriz) if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: Matriz inicial: [[4 12 50] [5 3 1] [11 9 7]] Valor do escalar: 2 Nova matriz: [[8 24 100] [10 6 2] [22 18 14]] |
Python ::: wxPython ::: Controles Visuais Básicos do wxPython |
Como usar a função GetDefaultSize() para obter o tamanho padrão dos botões wx.Button em uma determinada plataforma e um determinado tamanho de fonteQuantidade de visualizações: 6550 vezes |
Quando estamos escrevendo interfaces wxPython para múltiplas plataformas, é interessante usar o método GetDefaultSize() para obter as dimensões padrão dos botões. Isso permite que o próprio sistema determine o tamanho dos botões baseado no tamanho da fonte usada. Este método retorna um objeto da classe wx.Size e as dimensões podem ser obtidas com o auxílio das propriedades width (largura) e height (altura). Veja um exemplo wxPython completo: # vamos importar a biblioteca wxPython import wx class Janela(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, "Usando wx.Button", size=(350, 200)) # Cria um painel panel = wx.Panel(self) # Cria um botão e o adiciona no painel self.btn = wx.Button(panel, label="Clique Aqui", pos=(10, 10), size=(100, 25)) # Anexa um evento ao botão self.Bind(wx.EVT_BUTTON, self.OnBtnClick, self.btn) # Método que será chamado ao clicar o botão def OnBtnClick(self, event): # obtém o tamanho padrão dos botões # nesta plataforma dimensoes = self.btn.GetDefaultSize() dlg = wx.MessageDialog(None, u"A largura padrão é: " + str(dimensoes.width) + u" pixels e a altura " + u"padrão é: " + str(dimensoes.height) + " pixels", "Usando wx.Button", wx.OK | wx.ICON_INFORMATION) result = dlg.ShowModal() dlg.Destroy() if __name__ == "__main__": app = wx.App() janela = Janela() janela.Show(True) app.MainLoop() |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Escreva um programa Java que efetue a soma dos elementos da diagonal principal de uma matrizQuantidade de visualizações: 1691 vezes |
Pergunta/Tarefa: Em álgebra linear, a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito (conforme mostrado na saída do problema proposto abaixo). Escreva um programa Java que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal principal. Sua saída deverá ser parecida com a imagem abaixo: ![]() Resposta/Solução: Veja a resolução comentada deste exercício em 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); int matriz[][] = new int[3][3]; // uma matriz de três linhas e três colunas 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 < 3; i++){ // linhas for(int j = 0; j < 3; j++){ // colunas System.out.print("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("\nValores na matriz\n"); for(int i = 0; i < 3; i++){ for(int j = 0; j < 3; 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 < 3; i++){ for(int j = 0; j < 3; j++){ if(i == j){ soma_diagonal = soma_diagonal + matriz[i][j]; } } } System.out.println("\nA soma dos elementos da diagonal principal é: " + soma_diagonal); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Uma locadora de charretes cobra R$ 10,00 de taxa para cada 3 horas de uso destasQuantidade de visualizações: 6059 vezes |
Exercício Resolvido de Java - Uma locadora de charretes cobra R$ 10,00 de taxa para cada 3 horas de uso destas Pergunta/Tarefa: Uma locadora de charretes cobra R$ 10,00 de taxa para cada 3 horas de uso destas e R$ 5,00 para cada 1 hora abaixo destas 3 horas. Faça um programa (algorítmo) Java que leia a quantidade de horas que a charrete foi usada, calcule e escreva o valor a ser pago pelo cliente. Sua saída deverá ser parecida com: Quantidade de horas que a charrete foi usada: 7 Valor total a ser pago: R$ 25,00 Veja a resolução comentada deste exercício usando Java console: package exercicio; import java.text.NumberFormat; import java.util.Scanner; public class Exercicio { public static void main(String[] args) { // vamos fazer a leitura usando a classe Scanner Scanner entrada = new Scanner(System.in); // vamos ler a quantidade de horas que a charrete foi usada System.out.print("Quantidade de horas que a charrete foi usada: "); int horas = Integer.parseInt(entrada.nextLine()); // vamos calcular o valor por 3 horas exatas int valor = horas / 3; // valor a ser pago para cada hora abaixo de 3 int restante = horas % 3; // finalmente calculamos o valor total a ser pago double valor_total = (valor * 10.0) + (restante * 5); // e exibimos o resultado NumberFormat formato = NumberFormat.getCurrencyInstance(); System.out.println("Valor total a ser pago: " + formato.format(valor_total)); } } |
HTML5 ::: HTML5 + JavaScript ::: Canvas |
Como usar o método arc() do objeto Canvas do HTML5 para desenhar arcos, curvas e círculosQuantidade de visualizações: 4300 vezes |
O método arc() do objeto Canvas do HTML5 nos permite criar figuras tais como arcos, curvas e círculos. Para isso é importante entender os seus parâmetros:arc(x, y, radius, ang1, ang2, direction); Os parâmetros x e y indicam as coordenadas do centro do círculo. O parâmetro radius indica o raio do círculo. Os parâmetros ang1 e ang2 indicam o ângulo inicial e o ângulo final. O parâmetro direction indica a direção do desenho. Se o valor true for informado, a direção será anti-horário. Se for false, o desenho será no sentido horário. É importante observar que os ângulos são medidos em radianos, não em graus. Assim, o ângulo 0 representa a posição 3 horas no relógio. A posição de 9 horas é (1 * PI), 12 horas é (1.5 * PI) e 6 horas é (0.5 * PI). Portanto, se você quiser desenhar um círculo completo, deverá sair do ângulo 0 e ir até (2 * PI). Veja um trecho de código que desenha um arco equivalente a um quarto de uma pizza, ou seja, 25%, saindo do ângulo 90º (em graus) e indo até 180º (graus): <html> <head> <meta charset="utf-8"> <title>Estudos HTML5</title> </head> <body> <Canvas id="canvas1" width="500" height="350"></Canvas> <script type="text/javascript"> // obtemos uma referência ao elemento Canvas var canvas = document.getElementById("canvas1"); // obtemos o contexto de desenho var contexto = canvas.getContext("2d"); // vamos desenhar um arco sem preenchimento com raio de 80 contexto.beginPath(); // início um novo caminho // o arco começa no x = 100, y = 100, começa no ângulo 90 (em graus) // e vai até o ânculo 180 (graus) // as medidas na função arc() são em radianos, não em graus contexto.arc(100, 100, 80, Math.PI, 1.5 * Math.PI, false); contexto.lineWidth = 2; // largura da linha contexto.strokeStyle = '#990000'; // cor da linha contexto.stroke(); // realiza o desenho </script> </body> </html> Execute este código e veja que o arco realmente foi desenhado. Seu resultado deverá ser parecido com: ![]() No entanto, para parecer um pedação de pizza, ou seja, o ponto de partida para um gráfico de pizza, é preciso que tenhamos duas linhas ligado esse arco ao centro do círculo. Veja a modificação que fiz: <html> <head> <meta charset="utf-8"> <title>Estudos HTML5</title> </head> <body> <Canvas id="canvas1" width="500" height="350"></Canvas> <script type="text/javascript"> // obtemos uma referência ao elemento Canvas var canvas = document.getElementById("canvas1"); // obtemos o contexto de desenho var contexto = canvas.getContext("2d"); // vamos desenhar um arco sem preenchimento com raio de 80 contexto.beginPath(); // início um novo caminho // primeiro movemos a caneta de desenho para o centro do círculo contexto.moveTo(100, 100); // o arco começa no x = 100, y = 100, começa no ângulo 90 (em graus) // e vai até o ânculo 180 (graus) // as medidas na função arc() são em radianos, não em graus contexto.arc(100, 100, 80, Math.PI, 1.5 * Math.PI, false); contexto.lineWidth = 2; // largura da linha contexto.strokeStyle = '#990000'; // cor da linha // agora desenhamos uma linha de volta para o arco contexto.lineTo(100, 100); contexto.stroke(); // realiza o desenho </script> </body> </html> Execute novamente e veja que agora o efeito ficou bem melhor. Seu resultado deverá ser parecido com: ![]() Para finalizar, vamos colorir o pedação de pizza. Veja a nova versão (com o código completo): <!doctype html> <html> <head> <title>O objeto Canvas do HTML5</title> </head> <body> <Canvas id="canvas1" width="500" height="350"></Canvas> <script type="text/javascript"> // obtemos uma referência ao elemento Canvas var canvas = document.getElementById("canvas1"); // obtemos o contexto de desenho var contexto = canvas.getContext("2d"); // vamos desenhar um arco sem preenchimento com raio de 80 contexto.beginPath(); // início um novo caminho // primeiro movemos a caneta de desenho para o centro do círculo contexto.moveTo(100, 100); // o arco começa no x = 100, y = 100, começa no ângulo 90 (em graus) // e vai até o ânculo 180 (graus) // as medidas na função arc() são em radianos, não em graus contexto.arc(100, 100, 80, Math.PI, 1.5 * Math.PI, false); contexto.lineWidth = 2; // largura da linha contexto.strokeStyle = '#990000'; // cor da linha // agora desenhamos uma linha de volta para o arco contexto.lineTo(100, 100); // vamos preencher o gráfico contexto.fillStyle = "#CCCCCC"; // cor do preenchimento contexto.fill(); // preenche de fato contexto.stroke(); // realiza o desenho </script> </body> </html> Agora o resultado será: ![]() |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
C - Como verificar a existência de uma substring em uma string usando a função strstr() da linguagem C |
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 |