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 escaleno

Quantidade 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
Resposta/Solução:

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 principal

Quantidade 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 Java

Quantidade 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 JavaScript

Quantidade 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 pressionada

Quantidade 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 ímpar

Quantidade 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
Resposta/Solução:

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 Decimal

Quantidade 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 for

Quantidade 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 Python

Quantidade 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.

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 36 usuários muito felizes estudando em nosso site.