Dúvidas, comentários e doaçoes: +55 62 9 8513 2505

Planilha de Dimensionamento de Tubulações Hidráulicas Água Fria e Água Quente Completa
Nossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes.

Você está aqui: Cards de Hidrostática
Card 1 de 7
O que é Empuxo na Hidrostática?

Empuxo é a força exercida pelos fluidos em corpos submersos, total ou parcialmente. Também conhecido como teorema de Arquimedes.

A pressão do fluido sobre o corpo produz uma força resultante com a direção do peso, mas com o sentido contrário, de baixo para cima.

Qual é a fórmula do Empuxo?

A fórmula do empuxo na Hidrostática pode ser definida como:

\[E = d_f \cdot V_f \cdot g \]

Onde:

E é o módulo do empuxo, medido em Newtons (N);

df é a densidade do fluido, medida em kg/m3;

Vf é o volume do fluido deslocado, medido em m3;

g é a aceleração da gravidade, medida em m/s2.

A intensidade do empuxo é igual a do peso do volume de fluido deslocado, e age no centro de gravidade desse volume.

O empuxo é o produto entre três valores: densidade do fluido, volume de fluido deslocado e aceleração da gravidade.

A densidade é uma característica própria do fluido. Existem tabelas que oferecem valores de densidade para vários fluidos.

Para água a 4°C, a densidade é 1 g/cm3 ou 1.000 kg/m3.
Para o ar, a 20°C e pressão de 1 atmosfera, a densidade é de 0,0012 g/cm3 ou 1,2 kg/m3.

O volume de fluido deslocado depende da geometria do corpo, e se ele está total ou parcialmente submerso. Quanto maior o volume do corpo, mais líquido ele descola, logo, maior será o empuxo.

A aceleração da gravidade é de, aproximadamente, 9,81 m/s2.

Filtrar Cards
Use esta opção para filtrar os cards pelos tópicos que mais lhe interessam.
Termos:
Aviso Importante: Nos esforçamos muito para que o conteúdo dos cards e dos testes e conhecimento seja o mais correto possível. No entanto, entendemos que erros podem ocorrer. Caso isso aconteça, pedimos desculpas e estamos à disposição para as devidas correções. Além disso, o conteúdo aqui apresentado é fruto de conhecimento nosso e de pesquisas na internet e livros. Caso você encontre algum conteúdo que não deveria estar aqui, por favor, nos comunique pelos e-mails exibidos nas opções de contato.
Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como verificar a existência de um diretório usando a função DirectoryExists() do Delphi

Quantidade de visualizações: 13502 vezes
Em algumas situações precisamos saber se um diretório já existe, talvez para evitar que nosso código tente criar um diretório com o mesmo caminho e nome. Em Delphi isso pode ser feito com o auxílio da função DirectoryExists() da unit SysUtils. Esta função recebe uma string contendo o nome do diretório a ser pesquisado e retorna true se o diretório existir e false em caso contrário. Veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  diretorio: string;
begin
  // diretório que queremos verificar a existência
  diretorio := 'C:\arquivo de codigos';

  // vamos verificar se o diretório existe
  if DirectoryExists(diretorio) then
    ShowMessage('O diretório existe')
  else
    ShowMessage('O diretório NÃO existe');
end;

Note que a unit FileCtrl também contém uma função chamada DirectoryExists(). Porém, esta função foi considerada ultrapassada. Dê preferência àquela da unit SysUtils.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular o determinante de uma matriz 3x3 usando a Método de Sarrus em Python - Python para Álgebra Linear

Quantidade de visualizações: 6187 vezes
Os estudos da Geometria Analítica e Álgebra Linear envolvem, em boa parte de seus cálculos, a magnitude de vetores, ou seja, o módulo, tamanho, comprimento ou intensidade dos vetores. E isso não é diferente em relação às matrizes.

Quando uma matriz é envolvida nos cálculos, com muita frequência precisamos obter o seu determinante, que nada mais é que um número real associado à todas as matrizes quadradas.

Nesta dica mostrarei como obter o determinante de uma matriz quadrada de ordem 3, ou seja, três linhas e três colunas, usando o Método de Sarrus (somente matrizes 3x3). Note que é possível obter o mesmo resultado com o Teorema de Laplace, que não está restrito às matrizes quadradas de ordem 3. Veja também que não considerei as propriedades do determinante, o que, em alguns casos, simplifica muito os cálculos.

Então, vamos supor a seguinte matriz 3x3:



O primeiro passo é copiarmos a primeira e a segunda colunas para o lado direito da matriz. Assim:



Agora dividimos a matriz em dois conjuntos: três linhas diagonais descendentes e três linhas diagonais ascendentes:



Agora é só efetuar cálculos. Multiplicamos e somamos os elementos de cada conjunto, subtraindo o segundo conjunto do primeiro. Veja:

(1 x 5 x 9 + 2 x 6 x 7 + 3 x 4 x 8) - (7 x 5 x 3 + 8 x 6 x 1 + 9 x 4 x 2) = 0

Como podemos ver, o determinante dessa matriz é 0.

E agora veja o código Python no qual declaramos e instanciamos uma matriz 3x3, em seguida, calculamos o seu determinante:

# importamos a bibliteca NumPy
import numpy as np

# função principal do programa
def main():
  # vamos criar uma matriz 3x3
  m = np.array([(1, 2, 3), (2, 5, 2), (1, 3, 1)])
  
  # calcula o determinante usando a Regra de Sarrus
  det = ((m[0][0] * m[1][1] * m[2][2]) + (m[0][1]  
    * m[1][2] * m[2][0]) + (m[0][2] * m[1][0] * m[2][1])) - ((m[2][0] 
    * m[1][1] * m[0][2]) + (m[2][1]  * m[1][2] * m[0][0]) + (m[2][2] 
    * m[1][0] * m[0][1]))
    
  # mostramos o resultado
  print("O determinante da matriz é: %f" % det)
  
if __name__== "__main__":
  main()

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

O determinante da matriz é: 2.0

É possível também obter o determinante de uma matriz (não restrita à dimensão 3x3) usando o método linalg.det() da biblioteca NumPy do Python. Veja o código a seguir:

# importamos a bibliteca NumPy
import numpy as np

# função principal do programa
def main():
  # vamos criar uma matriz 3x3
  m = np.array([(1, 2, 3), (2, 5, 2), (1, 3, 1)])
  
  # calcula o determinante usando apenas NumPy
  det = np.linalg.det(m)
    
  # mostramos o resultado
  print("O determinante da matriz é: %f" % det)
  
if __name__== "__main__":
  main()

Veja que usei a mesma matriz e, usando apenas o método linalg.det() nós obtemos o mesmo resultado.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercício Resolvido de Java - Usando um laço for para contar de 0 até 10 e somar todos os valores

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

Escreva um programa Java que usa o laço for para contar de 0 até 10 e somar todos estes valores, ou seja, 0 + 1 + 2 + 3 + etc. Como resultado seu programa deverá exibir o valor 55.

Resposta/Solução:

A primeira providência para a realização deste exercício é declarar uma variável soma do tipo int e atribuir a ela o valor inicial 0:

// variável int que gardará a soma dos valores
int soma = 0;

Em seguida faremos um laço for repetir de 0 até 10 e, a cada repetição, nós obtemos o valor da variável de controle e a somamos ao valor atual da variável soma. Veja:

public static void main(String[] args){
  // laço for que conta de 0 até 10 e soma todos os valores
  
  // variável int que gardará a soma dos valores
  int soma = 0;  
    
  for(int i = 0; i <= 10; i++){
    // vamos somar mais este valor
    soma = soma + i;

    // poderia também ser
    // soma += i;
  }

  // vamos exibir a soma dos valores
  System.out.println("A soma dos valores de 0 a 10 é: " + soma);
}



Java ::: Dicas & Truques ::: Timers

Java Swing Exemplo completo: Como usar um timer para atualizar a hora atual em uma JLabel

Quantidade de visualizações: 17671 vezes
Este exemplo mostra como criar uma janela JFrame contendo dois botões JButton, um label JLabel e um timer (java.awt.Timer). Quando o timer dispara, o texto da label é atualizado para refletir a hora atual.

Veja o resultado na imagem abaixo:



E aqui está o código Java Swing completo para o exemplo:

package arquivodecodigos;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Calendar;
import java.text.DecimalFormat;
 
public class Estudos extends JFrame{
  JLabel hora;  
  Timer timer; 
  DecimalFormat formato;
 
  public Estudos() {
    super("Usando timers em Java");
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
 
    formato = new DecimalFormat("00"); 
 
    // Cria o timer
    timer = new Timer(1000, new ActionListener(){
      @Override
      public void actionPerformed(ActionEvent e){
        atualizarHoras();
      }
    });
 
    // Cria um botão com o texto "Iniciar"
    JButton iniciar = new JButton("Iniciar");
    iniciar.addActionListener(
      new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
          timer.start(); // inicia o timer
        }
      }
    );    
 
    // Cria um botão com o texto "Parar"
    JButton parar = new JButton("Parar");
    parar.addActionListener(
      new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
          timer.stop(); // pára o timer
        }
      }
    );
     
    // JLabel que exibirá a hora atual
    hora = new JLabel("00:00:00");
 
    // Adiciona os botões à janela
    c.add(iniciar);
    c.add(parar);
 
    // adiciona o label à janela
    c.add(hora);  
 
    setSize(350, 250);
    setVisible(true);
  }
   
  private void atualizarHoras(){
    // Cria uma instância de Calendar
    Calendar agora = Calendar.getInstance();    
 
    // horas, minutos e segundos
    int horas = agora.get(Calendar.HOUR);  
    int minutos = agora.get(Calendar.MINUTE);
    int segundos = agora.get(Calendar.SECOND);
    hora.setText(formato.format(horas) + ":" + 
      formato.format(minutos) + ":" + 
      formato.format(segundos));
  }
 
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet

Como usar o método FindField para pesquisar um campo no TClientDataSet do Delphi e retornar um objeto da classe TField

Quantidade de visualizações: 14611 vezes
O método FindField pode ser usado quando queremos pesquisar um campo no TClientDataSet e retornar um objeto da classe TField. Este método possui a seguinte assinatura:

function FindField(const FieldName: string): TField;
Se o campo for encontrado, um objeto da classe TField é retornado. Em caso contrário, o valor nil é retornado.

Veja um trecho de código no qual eu mostro como encontrar um campo chamado "autor" em um ClientDataSet e retornar seu valor no registro atual:

procedure TForm3.Button3Click(Sender: TObject);
var
  campo: TField;
begin
  // vamos obter o campo com o nome "autor" no ClientDataSet
  campo := ClientDataSet1.FindField('autor');

  // este campo existe no dataset?
  if campo <> nil then
    ShowMessage('O campo existe e seu valor no registro atual é: ' +
      campo.AsString)
  else // o campo não existe no dataset
    ShowMessage('O campo não existe no dataset');
end;

Se o campo existir no dataset, veremos uma mensagem parecida com:

"O campo existe e seu valor no registro atual é: M. D. Deitel".

Em geral usamos o método FindField para determinar se um determinado componente field existe no dataset. O argumento para o método é o nome do campo que queremos pesquisar. Este nome pode ser o nome de um campo simples, o nome de um sub-campo de um objeto field que tenha sido qualificado pelo nome do campo pai ou o nome de um campo agregado.

O comportamento do método FindField é o mesmo do método FieldByName. A diferença é que FindField retorna o valor nil se o campo não existir, enquanto FieldByName lança uma exceção do tipo EDatabaseError com a mensagem "Field not found".

Esta dica foi escrita e testada no Delphi 2009.


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

E-Books em PDF

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

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


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


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