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:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Física - Mecânica - Movimento Retilíneo Uniforme (MRU)

Exercícios Resolvidos de Física usando Java - Dois automóveis, A e B, movem-se em movimento uniforme e no mesmo sentido. Suas velocidades escalares têm módulos respectivamente iguais a...

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

Dois automóveis, A e B, movem-se em movimento uniforme e no mesmo sentido. Suas velocidades escalares têm módulos respectivamente iguais a 15 m/s e 10 m/s. No instante t = 0, os automóveis encontram-se nas posições indicadas abaixo:



Determine:

a) o instante em que A alcança B;
b) a que distância da posição inicial de A ocorre o encontro.

Resposta/Solução:

Este é um dos exemplos clássicos que encontramos nos livros de Física Mecânica, nos capítulos dedicados ao Movimento Retilíneo Uniforme (MRU). Em geral, tais exemplos são vistos como parte dos estudos de encontro e ultrapassagem de partículas.

Por se tratar de Movimento Retilíneo Uniforme (MRU), as grandezas envolvidas nesse problema são: posição (deslocamento), velocidade e tempo. Assim, já sabemos de antemão que o veículo B está 100 metros à frente do veículo A. Podemos então começar calculando a posição atual na qual cada um dos veículos se encontra. Isso é feito por meio da Função Horária da Posição ou Deslocamento em Movimento Retilíneo Uniforme - MRU.

Veja o código Java que nos retorna a posição inicial (em metros) dos dois veículos:

package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    // valocidade do veículo A
    double vA = 15; // em metros por segundo    
    // valocidade do veículo B
    double vB = 10; // em metros por segundo
    
    // posição inicial dos dois veículos
    double sInicialA = 0;
    double sInicialB = 100;
    
    // tempo inicial em segundos
    double tempo_inicial = 0;
    
    // calcula a posição atual dos dois veículos
    double sA = sInicialA + (vA * tempo_inicial);
    double sB = sInicialB + (vB * tempo_inicial);
    
    // mostra os resultados
    System.out.println("A posição do veículo A é: " + sA + " metros");
    System.out.println("A posição do veículo B é: " + sB + " metros");
  }
} 

Ao executar esta primeira parte do código Java nós teremos o seguinte resultado:

A posição do veículo A é: 0.0 metros
A posição do veículo B é: 100.0 metros

Agora que já temos o código que calcula a posição de cada veículo, já podemos calcular o tempo no qual o veículo A alcança o veículo B. Para isso vamos pensar direito. Se o veículo A vai alcançar o veículo B, então já sabemos que a velocidade do veículo A é maior que a velocidade do veículo B.

Sabemos também que a posição do veículo B é maior que a posição do veículo A. Só temos que aplicar a fórmula do tempo, que é a variação da posição dividida pela variação da velocidade. Veja o código Java que efetua este cálculo:

package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    // valocidade do veículo A
    double vA = 15; // em metros por segundo    
    // valocidade do veículo B
    double vB = 10; // em metros por segundo
    
    // posição inicial dos dois veículos
    double sInicialA = 0;
    double sInicialB = 100;
    
    // tempo inicial em segundos
    double tempo_inicial = 0;
    
    // calcula a posição atual dos dois veículos
    double sA = sInicialA + (vA * tempo_inicial);
    double sB = sInicialB + (vB * tempo_inicial);
    
    // calculamos o tempo no qual o veículo A alcança o veículo B
    double tempo = (sB - sA) / (vA - vB);
    
    // mostra os resultados
    System.out.println("A posição do veículo A é: " + sA + " metros");
    System.out.println("A posição do veículo B é: " + sB + " metros");
    System.out.println("O veículo A alcança o veículo B em " + tempo + 
      " segundos");
  }
} 

Ao executar esta modificação do código Java nós teremos o seguinte resultado:

A posição do veículo A é: 0.0 metros
A posição do veículo B é: 100.0 metros
O veículo A alcança o veículo B em 20.0 segundos

O item b pede para indicarmos a que distância da posição inicial de A ocorre o encontro entre os dois veículos. Agora que já sabemos o tempo do encontro, fica muito fácil. Basta multiplicarmos a velocidade do veículo A pelo tempo do encontro. Veja:

package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    // valocidade do veículo A
    double vA = 15; // em metros por segundo    
    // valocidade do veículo B
    double vB = 10; // em metros por segundo
    
    // posição inicial dos dois veículos
    double sInicialA = 0;
    double sInicialB = 100;
    
    // tempo inicial em segundos
    double tempo_inicial = 0;
    
    // calcula a posição atual dos dois veículos
    double sA = sInicialA + (vA * tempo_inicial);
    double sB = sInicialB + (vB * tempo_inicial);
    
    // calculamos o tempo no qual o veículo A alcança o veículo B
    double tempo = (sB - sA) / (vA - vB);
    
    // a que distância da posição inicial de A ocorre o encontro
    double distancia_encontro = vA * tempo;
    
    // mostra os resultados
    System.out.println("A posição do veículo A é: " + sA + " metros");
    System.out.println("A posição do veículo B é: " + sB + " metros");
    System.out.println("O veículo A alcança o veículo B em " + tempo + 
      " segundos");
    System.out.println("O encontro ocorreu a " + distancia_encontro + 
      " metros da distância inicial do veículo A");
  }
} 

Agora o código Java completo nos mostra o seguinte resultado:

A posição do veículo A é: 0.0 metros
A posição do veículo B é: 100.0 metros
O veículo A alcança o veículo B em 20.0 segundos
O encontro ocorreu a 300.0 metros da distância inicial do veículo A

Para demonstrar a importância de se saber calcular a Função Horária da Posição ou Deslocamento em Movimento Retilíneo Uniforme (MRU), experimente indicar que o veículo A saiu da posição 20 metros, e defina a posição inicial do veículo B para 120 metros, de modo que ainda conservem a distância de 100 metros entre eles.

Você verá que o tempo do encontro e a distância do encontro em relação à posição inicial do veículo A continuam os mesmos. Agora experimente mais alterações nas posições iniciais, na distância e também nas velocidades dos dois veículos para entender melhor os conceitos que envolvem o Movimento Retilíneo Uniforme (MRU).


Java ::: Dicas & Truques ::: Data e Hora

Como construir uma data no passado ou futuro em Java usando a classe GregorianCalendar

Quantidade de visualizações: 8590 vezes
Esta dica mostra como construir uma data no passado ou futuro na linguagem Java usando a classe GregorianCalendar, que é uma classe derivada e concreta da classe Calendar. Veja a linha na qual informamos a data a ser criada:

Calendar data = new GregorianCalendar(2008, 11, 13);

Aqui nós estamos usando o construtor da classe GregorianCalendar que requer três valores inteiros. O ano, o mês e o dia. O mês é informado como um valor inteiro na faixa de 0 a 11, ou seja, 0 para janeiro, 1 para fevereiro e assim por diante. Veja o exemplo:

package arquivodecodigos;

import java.util.*;
import java.text.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // vamos construir a data "13/12/2008"
    Calendar data = new GregorianCalendar(2008, 11, 13); 

    // vamos exibir o resultado
    Format formato = new SimpleDateFormat(
      "EEEE, dd 'de' MMMM 'de' yyyy");
    System.out.println(formato.format(data.getTime()));
  } 
}

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

Sábado, 13 de Dezembro de 2008


C# ::: Dicas & Truques ::: Programação Orientada a Objetos

Como criar sua primeira classe em C# - Programação Orientada a Objetos em C#

Quantidade de visualizações: 35354 vezes
O estudo da programação orientada a objeto em C# passa obrigatoriamente pela criação de sua primeira classe. E esta não é uma tarefa fácil para os iniciantes. Esta dica o guiará passo-a-passo pelas caminhos iniciais.

Esta dica assume que você já sabe criar uma aplicação console ou Windows Forms no Visual C# 2005 ou 2008. Sendo assim, crie uma nova aplicação console e vamos criar o esqueleto da classe. Em Visual C# 2005 ou 2008, a forma mais comum de adicionar uma classe ao seu projeto é clicando com o botão direito no namespace do projeto (o primeiro filho do solution explorer) e escolhendo a opção Add -> Class. Em seguida dê o nome "Pessoa.cs" para a classe e clique o botão Add. Imediatamente o código inicial para a classe será exibido, contendo o namespace e alguns using padrões. Agora faça sua classe Pessoa parecida com o código abaixo (não altere nada em relação ao namespace):

class Pessoa{
  // varíáveis privadas para o nome
  // e idade da pessoa
  private string nome;
  private int idade;

  // método que permite definir o nome
  // da pessoa
  public void setNome(string nome){
    this.nome = nome;
  }

  // método que permite definir a idade
  // da pessoa
  public void setIdade(int idade){
    this.idade = idade;
  }

  // método que permite obter o nome
  // da pessoa
  public string getNome(){
    return this.nome;
  }

  // método que permite obter a idade
  // da pessoa
  public int getIdade(){
    return this.idade;
  }
}

Hora de testar a classe. Volte à classe principal da aplicação (aquela que contém o método Main) e faça as seguintes alterações:

static void Main(string[] args){
  // Cria uma instância da classe Pessoa
  Pessoa p = new Pessoa();

  // Define um nome e idade para a pessoa
  p.setNome("Osmar J. Silva");
  p.setIdade(37);

  // Obtém o nome e idade da pessoa
  string nome = p.getNome();
  int idade = p.getIdade();
  Console.WriteLine("Nome: " + nome + " - Idade: " +
    idade);

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

Funcionou? Agora tente refazer todo o processo, desta vez usando Windows Forms.


C++ ::: STL (Standard Template Library) ::: Vector C++

Como usar a classe/contêiner vector da STL em seus programas C++

Quantidade de visualizações: 9406 vezes
O vetor, ou vector, é uma das classes contêineres mais simples da STL - Standard Template Library do C++. Um vector se comporta como um vetor, ou seja, uma matriz de uma linha e várias colunas, ou seja, seus elementos estão dispostos em posições contiguas na memória. O que diferencia um vector de um array comum é que o tamanho de um vector pode ser modificado dinamicamente.

A especificação do template da classe vector é:

template <class T, class Allocator = allocator<T>> class vector


Aqui T é o tipo de dados sendo armazenado (já ouvir falar em genéricos, não?) e Allocator define o modelo de alocação de armazenagem. Por padrão, o template da classe allocator para o tipo T é usado, o que define o modelo de alocação de memória mais simples e independente de valores.

Objetos da classe vector são úteis nas seguintes situações:

a) Acessar os elementos individualmente usando seus índices (tempo constante);
b) Percorrer os elementos em qualquer ordem (tempo linear);
b) Adicionar ou remover elementos no final do contêiner (tempo constante amortizado).

Para usarmos um vector em nossos programas C++ temos que incluir este contêiner da seguinte forma:

#include <vector>


Veja um trecho de código no qual criamos um vector, inserimos três inteiros e finalmente usamos um iterador para percorrer os elementos e imprimir seus valores:

#include <cstdlib>
#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos percorrer o vector e exibir os elementos
  vector<int>::iterator it;
  for(it = valores.begin(); it < valores.end(); it++){
    cout << *it << endl;
  }

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executarmos este código C++ nós teremos o seguinte resultado:

54
13
87


Revit C# ::: Dicas & Truques ::: Colunas e Pilares

Como listar os tipos de colunas e pilares disponíveis no Revit usando a Revit C# API

Quantidade de visualizações: 564 vezes
Nesta dica mostrarei como podemos obter e retorna uma lista com as colunas e pilares disponíveis na sua instalação do Revit. Esse passo é muito importante quando precisamos informar o id do símbolo de família, ou seja, o tipo de coluna ou pilar que queremos criar, em um determinado momento, via programação Revit C# API.

O primeiro passo é acessar o documento atual do Revit usando uma chamada à this.ActiveUIDocument.Document. Em seguida nós obtemos um objeto FilteredElementCollector para filtrar e retornar os símbolos de família que se enquadrem na categoria OST_StructuralColumns. Para finalizar, nós convertemos os elementos Element em FamilySymbol.

Veja o código completo para o exemplo:

using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using Autodesk.Revit.DB.Architecture;
using System.Linq;
 
namespace Estudos {
  [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.
    TransactionMode.Manual)]
  [Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")]
  public partial class ThisApplication {
    private void Module_Startup(object sender, EventArgs e) {
      // vamos obter uma referência ao Document ativo
      Document doc = this.ActiveUIDocument.Document;
       
      // vamos obter um FilteredElementCollector contendo apenas
      // elementos que sejam ElementType e pertençam à categoria
      // OST_StructuralColumns
      try {
      FilteredElementCollector elementos = new FilteredElementCollector(doc)
        .WhereElementIsElementType().OfCategory(BuiltInCategory.OST_StructuralColumns);
  
      String lista = "";
      // vamos percorrer os elementos retornados
      foreach(Element elemento in elementos) {
        // vamos converter o Element em FamilySymbol
        FamilySymbol coluna = elemento as FamilySymbol;
        // agora montamos a lista de colunas (ou pilares)
        lista = lista + "Id: " + elemento.Id.IntegerValue + "; Nome: "
            + elemento.Name + "; Tipo: " + elemento.Category.Name +
            "; Família: " + coluna.Family.Name + "\n";
      }
   
      // mostramos o resultado
      TaskDialog.Show("Aviso", lista);
      }
      catch (Exception ex) {
        TaskDialog.Show("Aviso", "Erro: " + ex.Message);
      }
    }
      
    private void Module_Shutdown(object sender, EventArgs e) {
      // para fazer alguma limpeza de memória ou algo assim
    }
 
    #region Revit Macros generated code
    private void InternalStartup() {
      this.Startup += new System.EventHandler(Module_Startup);
      this.Shutdown += new System.EventHandler(Module_Shutdown);
    }
    #endregion
  }
}

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

Id: 12190; Nome: UC305x305x97; Tipo: Pilares estruturais; Família: UC-Universal Columns-Column
Id: 355634; Nome: 80 x 50; Tipo: Pilares estruturais; Família: Pila de Concreto - Retangular
Id: 355636; Nome: 50 x 50; Tipo: Pilares estruturais; Família: Pila de Concreto - Retangular


Veja mais Dicas e truques de Revit C#

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á 35 usuários muito felizes estudando em nosso site.