Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
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 Apenas R$ 19,90
Delphi ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em Delphi

Quantidade de visualizações: 2860 vezes
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem Delphi.

Comece observando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos que fazer é mudar a fórmula para:

\[a^2 = c^2 - b^2\]

Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem Delphi:

procedure TForm2.Button1Click(Sender: TObject);
var
  a, b, c: Real;
begin
  c := 36.056; // medida da hipotenusa
  b := 30; // medida do cateto adjascente

  // agora vamos calcular o comprimento da cateto oposto
  a := sqrt(sqr(c) - sqr(b));

  // e mostramos o resultado
  Edit1.Text := 'A medida do cateto oposto é: ' +
    FloatToStr(a);
end;

Veja que o cálculo é feito a partir do evento Click de um botão Button1 e o resultado é apresentado na propriedade Text de uma caixa de texto Edit1.

Ao executar este código Delphi nós teremos o seguinte resultado:

A medida do cateto oposto é: 20,0008783807112

Como podemos ver, o resultado retornado com o código Delphi confere com os valores da imagem apresentada.


Java ::: Dicas & Truques ::: Threads

Threads em Java - Como definir as prioridades das threads Java

Quantidade de visualizações: 12687 vezes
Quando estamos trabalhando com threads em Java, precisamos estar cientes de que cada thread possui uma prioridade de execução. É por meio da prioridade de cada uma que o gerenciador de threads decidirá qual thread deverá ser executada primeiro.

Por padrão, todas as threads possuem prioridade NORM_PRIORITY. Esta é uma constante que possui o valor 5 e está declarada na classe Thread. Além disso, cada thread herda automaticamente a prioridade da thread que a criou.

As constantes MAX_PRIORITY (prioridade máxima), MIN_PRIORITY (prioridade mínima) e NORM_PRIORITY (prioridade normal) são usadas para definir as prioridades das threads Java. Veja um exemplo no qual temos duas threads. A primeira possui a prioridade máxima enquanto a segunda possui a prioridade mínima:

// criamos uma classe que servirá como thread
class MinhaThread extends Thread{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);
    }
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar duas threads
    MinhaThread t1 = new MinhaThread("Thread 1");
    t1.setPriority(Thread.MAX_PRIORITY); // prioridade máxima
    t1.start();    

    MinhaThread t2 = new MinhaThread("Thread 2");
    t2.setPriority(Thread.MIN_PRIORITY); // prioridade mínima
    t2.start();
  }
}

Execute este exemplo e veja como a segunda thread só é executada quando a primeira finaliza. Remova as linhas que definem a prioridade e note como o tempo de cada thread é novamente fracionado. É importante ter em mente que aqui estamos falando de um ambiente de processador único. Em ambientes de múltiplos processadores o comportamento pode ser diferente do abordado na dica.

Não devemos confiar em prioridades de threads quando o objetivo é aguardar a finalização de uma thread e só então permitir o processamento das instruções contidas no método run() de outra thread. Para estes casos o recomendável é usar alguma forma para sinalizar as demais threads de que a thread atual concluiu sua tarefa.


Python ::: wxPython ::: Eventos e Tratadores de Eventos

Como tratar o evento wx.EVT_MOVE em suas aplicações wxPython - Interfaces gráficas no Python

Quantidade de visualizações: 243 vezes
Em algumas situações nós precisamos reagir ao evento wx.EVT_MOVE em nossas aplicações wxPython. Este evento é gerado todas as vezes que movemos uma janela para uma nova posição.

Veja o código completo para uma aplicação wxPython na qual interceptamos e tratamos o evento wx.EVT_MOVE na janela principal do programa. Note o uso da função e.GetPosition() para recuperarmos as coordenadas x e y do evento e mostrarmos o resultado em controles wx.StaticText.

# vamos importar o framework wxPython 
import wx

# classe que representará a janela principal da
# aplicação wxPython
class JanelaPrincipal(wx.Frame):
  # o método construtor
  def __init__(self, *args, **kw):
    # chama o construtor da classe wx.Frame
    super(JanelaPrincipal, self).__init__(*args, **kw)

    # chama a função que inicializa a GUI
    self.InicializarGUI()

  # método usado para gerenciar o evento Move
  def OnMove(self, e):
    # obtemos a posição do evento e guardamos nas variáveis x e y
    x, y = e.GetPosition()
    # mostramos os valores nas labels
    self.st1.SetLabel(str(x))
    self.st2.SetLabel(str(y))

  # função que inicializa a GUI do programa
  def InicializarGUI(self):
    # criamos dois controles StaticText com os labels já definindos 
    wx.StaticText(self, label='x:', pos=(10,10))
    wx.StaticText(self, label='y:', pos=(10,30))

    # criamos mais dois controles StaticText para escrevermos neles
    self.st1 = wx.StaticText(self, label='', pos=(30, 10))
    self.st2 = wx.StaticText(self, label='', pos=(30, 30))

    # fazemos um binding o evento wx.EVT_MOVE para a
    # função OnMove que criamos
    self.Bind(wx.EVT_MOVE, self.OnMove)

    # definimos o tamanho da janela
    self.SetSize((450, 350))
    # define a cor de fundo da janela (Windows 10)
    self.SetBackgroundColour((150, 250, 100, 255))
    # definimos o título da janela
    self.SetTitle('O evento Move')
    # e centralizamos a janela
    self.Centre()

# função principal do programa Python
def main():
  # vamos criar a aplicação wxPython
  app = wx.App()
  janela_principal = JanelaPrincipal(None)
  janela_principal.Show()
  app.MainLoop()

if __name__ == "__main__":
  main()



VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar a instrução Continue para abandonar a iteração atual de um laço em VB.NET

Quantidade de visualizações: 8101 vezes
A instrução Continue pode ser usada com os laços do VB.NET para abandonar a iteração atual do laço. Veja como isso funciona no trecho de código abaixo:

For valor As Integer = 1 To 10 Step 1
  If valor Mod 2 = 0 Then
    Continue For
  End If

  Console.WriteLine(valor)
Next

Este trecho de código exibirá os números ímpares de 1 a 10. Os números exibidos serão: 1, 3, 5, 7 e 9. Isso aconteceu porque temos uma instrução If que testa se o valor da variável de controle é par. Se o teste resultar verdadeiro, a instrução Continue é executada e a iteração atual é abandonada, fazendo com que o valor atual não seja exibido na tela.

Veja mais um exemplo:

Dim valor As Integer = 0

While valor < 10
  valor += 1
  If valor = 5 Then
    Continue While
  End If

  Console.WriteLine(valor)
End While

Este trecho de código conta de 1 a 10, mas pula o número 5. Analise-o cuidadosamente e tente descobrir o porquê.


Java ::: Fundamentos da Linguagem ::: Comentários

Java para iniciantes - Como inserir comentários em seus códigos Java

Quantidade de visualizações: 13465 vezes
Comentários em Java, assim como em outras linguagens, são ignorados pelo compilador. Em Java, podemos usar dois estilos de comentários:

1) Comentário de uma única linha:

// obtém o resultado do cálculo
int res = 4 + 5; // aqui também pode

2) Comentários de múltiplas linhas:

/*
 Este exemplo mostra como verificar se
 um número é par ou ímpar.  
*/



Python ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como testar de uma matriz é uma matriz identidade usando Python

Quantidade de visualizações: 1317 vezes
Seja M uma matriz quadrada de ordem n. A matriz M é chamada de Matriz Identidade de ordem n (indicada por In) quando os elementos da diagonal principal são todos iguais a 1 e os elementos restantes são iguais a zero.

Para melhor entendimento, veja a imagem de uma matriz identidade de ordem 3, ou seja, três linhas e três colunas:



Veja um código Python completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz identidade ou não:

# método principal
def main():
  n = 3; # ordem da matriz quadrada
  matriz = [[0 for x in range(n)] for y in range(n)] # matriz quadrada
  identidade = True

  # vamos pedir para o usuário informar os elementos da matriz
  for i in range(n):
    for j in range(n):
      matriz[i][j] = int(input("Elemento na linha {0} e coluna {0}: ".format(
        (i + 1), (j + 1))))
  
  # agora verificamos se a matriz é uma matriz identidade
  for linha in range(n):
    for coluna in range(n):
      if (matriz[linha][coluna] != 1) and (matriz[coluna][linha] != 0):
        identidade = False
        break
     
  # agora mostramos a matriz lida
  print()
  for i in range(n):
    for j in range(n):
      print(matriz[i][j], end='  ')
    print()

  if identidade:
    print("\nA matriz informada é uma matriz identidade.")
  else:
    print("\nA matriz informada não é uma matriz identidade.")
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Elemento na linha 1 e coluna 1: 1
Elemento na linha 1 e coluna 2: 0
Elemento na linha 1 e coluna 3: 0
Elemento na linha 2 e coluna 1: 0
Elemento na linha 2 e coluna 2: 1
Elemento na linha 2 e coluna 3: 0
Elemento na linha 3 e coluna 1: 0
Elemento na linha 3 e coluna 2: 0
Elemento na linha 3 e coluna 3: 1

1 0 0 
0 1 0 
0 0 1 

A matriz informada é uma matriz identidade.



JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como adicionar um ou mais elementos ao início de um vetor JavaScript usando o método unshift() do objeto Array - [Revisado]

Quantidade de visualizações: 7240 vezes
O método unshift(), presente no JavaScript desde sua versão 1.2, é usado quando queremos adicionar um ou mais elementos no início de um vetor (array). Veja:

<script type="text/javascript">
  var valores = new Array(1, 2, 3, 4, 5);
  document.write("Valores no vetor: " + valores + "<br>");
  valores.unshift(6);
  document.write("Novos valores no vetor: " + valores);
</script>

Aqui nós adicionamos o valor 6 no início do vetor. Veja agora como adicionar três valores no início do vetor:

<script type="text/javascript">
  var valores = new Array(1, 2, 3, 4, 5);
  window.alert("Valores no vetor: " + valores);
  valores.unshift(6, 7, 8);
  window.alert("Novos valores no vetor: " + valores);
</script>

É importante observar que a função unshift() modifica o vetor original, e seu retorno é a nova quantidade de elementos no vetor.


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de Python - Como percorrer todos os elementos de um vetor de inteiros e exibir a soma de seus valores

Quantidade de visualizações: 933 vezes
Pergunta/Tarefa:

Considere o seguinte vetor de inteiros:

// um vetor de inteiros contendo sete elementos
valores = [4, 5, 1, 8, 2, 2, 10]
Escreva um programa Python console ou GUI que usa um laço for para percorrer todos os elementos deste vetor e exibir a soma de seus valores. Seu programa deverá exibir uma saída com a mensagem:

A soma dos valores do vetor é: 32

Resposta/Solução:

# método principal
def main():
  # um vetor de inteiros contendo sete elementos
  valores = [4, 5, 1, 8, 2, 2, 10]
    
  # o primeiro passo é criar uma variável que vai receber a soma
  # dos valores dos elementos
  soma = 0

  # agora vamos usar uma laço for para percorrer todos os elementos
  # do vetor, obter o valor do elemento atual e adicionar ao valor atual
  # da variável soma
  for valor in valores:
    soma = soma + valor
  
  # vamos exibir a soma dos valores do vetor
  print("A soma dos valores do vetor é: {0}".format(soma))
    
if __name__== "__main__":
  main()



PostgreSQL ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados)

Como excluir uma tabela no PostgreSQL usando o comando DDL DROP TABLE

Quantidade de visualizações: 8025 vezes
Em algumas situações precisamos excluir uma tabela em uma base de dados PostgreSQL. Isso pode ser feito por meio do comando DDL DROP TABLE. Este comando remove a tabela da base de dados completamente, incluindo índices, regras (rules), triggers e restrições (constraints). Para disparar um comando DROP TABLE, você precisa ser um super usuário ou possuir privilégios sobre a tabela e o schema na qual ela reside.

Em geral excluímos tabelas usando a ferramenta pgAdmin. No entanto, é importante conhecer e dominar este comando de forma a conseguirmos excluir tabelas a partir da janela de Query do pgAdmin, do SQL Shell (psql) ou usando uma linguagem de programação.

Veja um comando DDL DROP TABLE usado para excluir uma tabela chamada produtos:

DROP TABLE produtos;

Se o comando for executado com sucesso, o PostgreSQL nos exibirá a seguinte mensagem:

Query returned successfully with no result in 31 ms.
Se tentarmos excluir uma tabela que não existe na base de dados, o PostgreSQL abortará a operação com a seguinte mensagem de erro:

ERRO:  tabela "produtos" não existe

********** Error **********

ERRO: tabela "produtos" não existe
SQL state: 42P01
Por este motivo, é interessante usar a cláusula IF EXISTS em conjunto com o comando DROP TABLE. Veja:

DROP TABLE IF EXISTS produtos;

Agora o PostgreSQL trocará a mensagem de erro por uma mensagem de advertência:

NOTA:  tabela "produtos" não existe, ignorando

Query returned successfully with no result in 14 ms.



PHP ::: Dicas & Truques ::: Data e Hora

Como construir uma data usando a função mktime() do PHP

Quantidade de visualizações: 109 vezes
A forma mais comum de se construir uma data e hora no PHP é por meio da função mktime(). Esta função recebe as horas e a data na sequência horas, minutos, segundos, mês, dia, ano e retorna um timestamp Unix, que é a quantidade de segundos desde 31/12/1969 - 21:00:00 (fuso horário brasileiro).

Veja um trecho de código que constrói a data 13/05/2020 à meia-noite:

<html>
<head>
  <title>Estudos PHP</title>
</head>
 
<body>

<?php
  // construir a data 13/05/2020
  // se quiser fornecer as horas o formato é: 
  // hora, minuto, segundo
 
  $timestamp = mktime(0, 0, 0, 05, 13, 2020);
  echo "A data é: " . date('d/m/Y', $timestamp);
?>
 
</body>
</html>

Ao executar este código nós teremos o seguinte resultado:

A data é: 13/05/2020

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.