VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de VisuAlg - Um algoritmo em VisuAlg que testa se um triângulo é equilátero, isósceles ou escalenoQuantidade de visualizações: 1153 vezes |
Pergunta/Tarefa: Escreva um algoritmo que lê três valores para os lados de um triângulo. O algoritmo deve verificar se o triângulo é equilátero (todos os lados iguais), isósceles (dois lados iguais) ou escaleno (todos os lados diferentes). Sua saída deverá ser parecida com: Informe o lado 1 do triângulo: 6 Informe o lado 2 do triângulo: 8 Informe o lado 3 do triângulo: 2 O triângulo é escaleno Veja a resolução deste algoritmo em VisuAlg: Algoritmo "Testa se um triângulo é equilátero, escaleno ou isósceles" Var // variáveis usadas na resolução do problema lado1, lado2, lado3: real Inicio // vamos ler os lados do triângulo escreva("Informe o lado 1 do triângulo: ") leia(lado1) escreva("Informe o lado 2 do triângulo: ") leia(lado2) escreva("Informe o lado 3 do triângulo: ") leia(lado3) // vamos testar se o triângulo é equilátero // os três lados iguais se (lado1 = lado2) e (lado2 = lado3) entao escreval("O triângulo é equilátaro.") senao // vamos testar se o triângulo é escaleno // os três lados diferentes se (lado1 <> lado2) e (lado1 <> lado3) e (lado2 <> lado3) entao escreval("O triângulo é escaleno") senao // vamos testar se o triângulo é isósceles // dois lados iguais e um diferente se (lado1 = lado2) ou (lado1 = lado3) ou (lado2 = lado3) entao escreval("O triângulo é isósceles") fimse fimse fimse Fimalgoritmo |
C# ::: Windows Forms ::: Formulários e Janelas |
Como abrir outros formulários de sua aplicação C# Windows Forms a partir do formulário principalQuantidade de visualizações: 33022 vezes |
Esta é, sem dúvida, uma das perguntas mais frequentes de meus visitantes. Sendo assim, vou detalhar passo-a-passo como você poderá abrir outros formulários a partir do formulário principal da aplicação. Assumindo que você já tenha criado o formulário principal, siga estes passos para criar um novo formulário (Visual C# 2005 ou 2008): a) Vá no menu Project -> Add Windows Form. O novo Form já aparecerá selecionado. Dê um nome a ele, por exemplo, "NovoForm.cs" e clique o botão Add; b) Coloque os controles que desejar no novo formulário e salve tudo; c) Volte no formulário principal e adicione o código abaixo no evento Click de um botão: private void button1_Click(object sender, EventArgs e){ // vamos criar o novo formulário e exibí-lo NovoForm nf = new NovoForm(); nf.Show(); } Execute e veja o resultado. Note, contudo, que se clicarmos no formulário principal com o segundo formulário ainda aberto, veremos que o primeiro sobrepõe o segundo. Isso acontece porque abrimos o novo formulário como não modal. Em algumas aplicações este pode não ser o comportamento esperado. Continue seguindo minhas dicas para aprender a diferença entre formulários modais e não modais em Windows Forms e C#. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Exemplos Java Strings - Como remover um caractere de uma string usando o método deleteCharAt() da classe StringBuffer do JavaQuantidade de visualizações: 170 vezes |
Neste exemplo mostrarei como podemos usar o método deleteCharAt() da classe StringBuffer para remover um determinado caractere de uma palavra, frase ou texto. Observe que a string original é modificada após uma chamada a este método. Veja o código completo para o exemplo: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ StringBuffer frase = new StringBuffer("Java"); System.out.println("Original: " + frase); frase.deleteCharAt(1); // exclui a primeira letra "a" System.out.println("Depois da remoção: " + frase); System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Original: Java Depois da remoção: Jva |
JavaScript ::: Dicas & Truques ::: Data e Hora |
Como retornar a diferença em dias entre duas datas usando JavaScriptQuantidade de visualizações: 18690 vezes |
Nesta dica mostrarei como podemos usar a linguagem JavaScript para calcular a quantidade de dias, ou seja, a diferença de dias entre duas datas. Note que o truque é subtrair um objeto Date de outro objeto Date. Veja o código JavaScript completo para o exemplo: <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Estudos JavaScript</title> </head> <body> <script type="text/javascript"> function diferencaDias(data1, data2){ var dif = Date.UTC(data1.getYear(),data1.getMonth(),data1.getDate(),0,0,0) - Date.UTC(data2.getYear(),data2.getMonth(),data2.getDate(),0,0,0); return Math.abs((dif / 1000 / 60 / 60 / 24)); } // datas no formato ano/mês/dia document.write("A diferença de dias é: " + diferencaDias(new Date(2007, 0, 10), new Date(2007, 0, 20)) + " dias."); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: A diferença de dias é: 10 dias. |
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: 3400 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. |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: VisuAlg Básico |
Exercício Resolvido de VisuAlg - Escreva um programa VisuAlg que leia um número inteiro e informe se ele é par ou ímparQuantidade de visualizações: 1027 vezes |
Pergunta/Tarefa: Escreva um algorítmo em VisuAlg que pede para o usuário informar um número inteiro. Depois da leitura do número digitado, informe se ele é par ou ímpar. Sua saída deverá ser parecida com: Informe um número: 14 O número é par Veja a resolução comentada deste exercício usando VisuAlg: Algoritmo "Um algorítmo para tstar se um número é par ou ímpar" Var // variáveis usadas na resolução do problema numero: inteiro Inicio // vamos pedir para o usuário informar o número escreva("Informe um número: ") leia(numero) // vamos testar se o número é par ou ímpar se numero mod 2 = 0 entao escreval("O número é par") senao escreval("O número é ímpar") fimse Fimalgoritmo Na versão 3.0.7.0 do VisuAlg nós podemos usar "mod" ou "%" para representar o operador de módulo. Por favor, verifique qual o operador suportado pela sua versão. |
Python ::: Dicas & Truques ::: Data e Hora |
Datas e horas em Python - Como obter a hora como um decimal no intervalo 00-12 (formato 12 horas)Quantidade de visualizações: 7530 vezes |
Este exemplo mostra como obter a hora como um decimal no intervalo 00-12 (formato 12 horas) usando o método strftime() da classe datetime com o sinalizador "%I". Veja o código completo para a dica: from datetime import datetime def main(): # Obtém um datetime da data e hora atual hoje = datetime.today() # Exibe a hora atual como um decimal print(hoje.strftime("A hora é: %I")) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: A hora é: 10 |
C# ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter um tipo string para um tipo decimal em C# usando o método Parse() da classe DecimalQuantidade de visualizações: 12679 vezes |
Este exemplo mostra como converter uma string em um valor do tipo decimal. Para isso nós vamos usar o método Parse() da classe Decimal da linguagem C#. No entanto, é preciso termos cuidado, pois este método pode lançar três tipos de exceções: ArgumentNullException, FormatException e OverflowException. Veja o trecho de código a seguir: using System; namespace Estudos { class Program { static void Main(string[] args) { string valor_string = "530,54"; // experimente com os valores "23,5", "arquivo" e // "659" // tenta efetuar a conversão de string para decimal try { decimal valor_decimal = decimal.Parse(valor_string); // exibe o resultado Console.WriteLine("Valor convertido com sucesso: " + valor_decimal); } catch (FormatException e) { // exibe a informações sobre a exceção // Input string was not in a correct format. Console.WriteLine(e.Message); } Console.WriteLine("\n\nPressione qualquer tecla para sair..."); // pausa o programa Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Valor convertido com sucesso: 530,54 Se tentarmos atribuir um valor string a um tipo decimal, sem efetuar a conversão, teremos o seguinte erro de compilação: Cannot implicitly convert type string to decimal |
C# ::: Coleções (Collections) ::: List<T> |
Como percorrer os itens de uma List do C# usando o laço forQuantidade de visualizações: 578 vezes |
Em várias ocasiões nós precisamos percorrer os elementos de uma lista do C#. Para isso nós podemos usar o laço for e, dentro deste laço, acessar os elementos da lista individualmente usando o operador [] e o índice desejado. Veja o código C# completo para o exemplo: using System; using System.Collections.Generic; namespace Estudos { class Principal { static void Main(string[] args) { List<int> valores = new List<int>(); // insere valores na lista valores.Add(4); valores.Add(2); valores.Add(87); valores.Add(23); valores.Add(100); // agora vamos usar o laço for para percorrer os // itens da lista Console.WriteLine("Os itens da lista são:"); for(int i = 0; i < valores.Count; i++) { Console.Write(valores[i] + ", "); } Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Os itens da lista são: 4, 2, 87, 23, 100, |
Python ::: Dicas & Truques ::: Matemática e Estatística |
Como obter a série de Fibonacci recursivamente usando Python - Como calcular a sequência de Fibonacci em PythonQuantidade de visualizações: 16537 vezes |
Na matemática, os números de Fibonacci são uma sequência ou sucessão definida como recursiva pela fórmula: Fn = Fn - 1 + Fn - 2 Os primeiros números de Fibonacci são: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, ... Esta sequência foi descrita primeiramente por Leonardo de Pisa, também conhecido como Fibonacci, para descrever o crescimento de uma população de coelhos. Veja um techo de código que mostra como calcular e mostrar a sequência de Fibonacci de forma recursiva: # método recursivo para calcular o Fibonacci de um # número def fibonacci(num): if num < 0: print("Não é possível obter o fibonacci de um numero negativo.") if ((num == 0) or (num == 1)): return num else: return fibonacci(num - 1) + fibonacci(num - 2) def main(): # vamos ler a entrada do usuário numero = int(input("Informe um inteiro: ")) # vamos obter o resultado res = fibonacci(numero) print("Fibonacci(%d) = %d" % (numero, res)) if __name__== "__main__": main() Ao executarmos este código nós teremos um resultado parecido com: Informe um inteiro: 7 Fibonacci(7) = 13 E agora saindo um pouco de Python: Leonardo Pisa (1175-1240) publicou a sequência de Fibonacci no seu livro Liber Abaci (Livro do Ábaco, em português), o qual data de 1202. Porém, comenta-se que os indianos já haviam descrito essa série antes dele. Se pegarmos um número da série de Fibonacci e o dividirmos pelo seu antecessor (por exemplo: 55 dividido por 34), teremos quase sempre o valor 1,618. Este valor é aplicado com muita frequência em análises financeiras e na informática. Leonardo Da Vinci, que chamou essa sequência de Divina Proporção, a usou para fazer desenhos perfeitos. De fato, se observarmos atentamente, perceberemos a sequência de Fibonacci também na natureza. São exemplos disso as folhas das árvores, as pétalas das rosas, os frutos, como o abacaxi, as conchas espiraladas dos caracóis ou as galáxias. |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
VB.NET - Como comparar strings em VB.NET usando o método Compare() da classe String do .NET Framework |
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 |