![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa 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 Engenharia Civil - Fundações |
||
|
||
|
|
||
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Fenômenos dos Transportes, Hidráulica e Drenagem |
Exercício Resolvido de Python - Como calcular o Número de Reynolds em Python - Leite integral a 293 K, massa específica de 1030 kg/m3 e viscosidade de 2,12.10-3 N.s/m2 está escoando a uma razãoQuantidade de visualizações: 471 vezes |
|
Pergunta/Tarefa: O Número de Reynolds é uma quantidade adimensional usada na mecânica dos fluidos para prever padrões de fluxo em diferentes situações de escoamento de fluidos. É definido como a razão entre forças inerciais e forças viscosas dentro de um fluido. 1) Leite integral a 293 K, massa específica de 1030 kg/m3 e viscosidade de 2,12.10-3 N.s/m2 está escoando a uma razão de 0,605 kg/s em uma tubulação de 63,5 mm de diâmetro. a) Calcule o número de Reynolds. O escoamento é laminar ou turbulento? b) Calcule a vazão em m3/s para um número de Reynolds de 2100 e a velocidade em m/s. Sua saída deverá ser parecida com: Informe a Massa Específica do fluido (kg/m3): 1030 Informe a Viscosidade Dinâmica do fluido (N.s/m2): 2.12e-3 Informe a Vazão Mássica (kg/s): 0.605 Informe o Diâmetro da Tubulação (mm): 63.5 A área da tubulação é: 0.003166921744359361 m2 A vazão volumétrica do fluido é: 0.000587378640776699 m3/s A velocidade de escoamento do fluido é: 0.18547305181218499 m/s O Número de Reynolds é: 5722.106110271679 Informe o novo Número de Reynolds: 2100 A nova velocidade de escoamento do fluido é: 0.06806819050531304 m/s A nova vazão volumétrica do fluido é: 0.0002155666326104713 m3/s O primeiro passo para a resolução deste exercício é nos lembrarmos da Fórmula do Número de Reynolds: \[R_e = \frac{\rho \cdot v \cdot D}{\mu} \] Onde: [[rho]] é a massa específica do fluido medida em kg/m3; v = velocidade média do fluido em m/s; D = diâmetro para o fluxo do tubo em metros (m); [[mu]] é a viscosidade dinâmica do fluido em N.s/m2. Obs.: No código eu mostro como fazer as conversões de unidades necessárias. Veja a resolução completa para o exercício em Python, comentada linha a linha:
# vamos importar a biblioteca Math
import math
# método principal
def main():
# vamos ler a massa específica da água
massa_especifica = float(input("Informe a Massa Específica (kg/m3): "))
# vamos ler a viscosidade dinâmica do fluido
viscosidade_dinamica = float(input("Informe a Viscosidade (N.s/m2): "))
# vamos ler a vazão mássica
vazao_massica = float(input("Informe a Vazão Mássica (kg/s): "))
# vamos ler o diâmetro da tubulação
diametro = float(input("Informe o Diâmetro da Tubulação (mm): "))
# o primeiro passo é calcular a área da seção transversal da tubulação
# a) convertemos milímetros para metros
diametro = diametro / 1000.0
# b) calculamos a área em metros quadrados
area = (math.pi * math.pow(diametro, 2) / 4)
# vamos converter a vazão mássica em vazão volumétrica
vazao = vazao_massica / massa_especifica
# vamos obter a velocidade de escoamento do fluido
velocidade = vazao / area
# e finalmente calculamos o Número de Reynolds
numero_reynolds = (massa_especifica * velocidade * diametro) / viscosidade_dinamica
# mostramos os resultados
print("\nA área da tubulação é: {0} m2".format(area))
print("A vazão volumétrica do fluido é: {0} m3/s".format(vazao))
print("A velocidade de escoamento do fluido é: {0} m/s".format(velocidade))
print("O Número de Reynolds é: {0}".format(numero_reynolds))
# vamos ler o novo Número de Reynolds
novo_numero_reynolds = float(input("\nInforme o novo Número de Reynolds: "))
# vamos calcular a velocidade para o novo Reynolds
nova_velocidade = ((viscosidade_dinamica * novo_numero_reynolds)
/ (massa_especifica * diametro))
print("A nova velocidade de escoamento do fluido é: {0} m/s".format(nova_velocidade))
# vamos calcular a nova vazão volumétrica
nova_vazao = area * nova_velocidade
print("A nova vazão volumétrica do fluido é: {0} m3/s".format(nova_vazao))
if __name__== "__main__":
main()
O primeiro Número de Reynolds, ou seja, 5722.1061, caracteriza o escoamento como turbulento, pois é maior que 2400. Já o Número de Reynolds 2100 caracteriza o escoamento como escoamento de transição (saindo do escoamento laminar e indo para o escoamento turbulento), já que é maior que 2000 e menor que 2400. |
Ruby ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Ruby - Escreva um programa Ruby para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 1495 vezes |
|
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: # vamos declarar e construir um vetor de 8 inteiros valores = [0, 3, 0, 5, 7, 4, 0, 9] Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando Ruby:
# vamos declarar e construir um vetor de 8 inteiros
valores = [0, 3, 0, 5, 7, 4, 0, 9]
# vamos mostrar o vetor na ordem original
print("Vetor na ordem original:\n")
for i in (0..valores.length - 1)
printf("%d ", valores[i])
end
# vamos inicializar j como 0 para que ele aponte para
# o primeiro elemento do vetor
j = 0
# agora o laço for percorre todos os elementos do vetor,
# incrementanto a variável i e deixando o j em 0
for i in (0..valores.length - 1)
# encontramos um valor que não é 0
if(valores[i] != 0)
# fazemos a troca entre os elementos nos índices
# i e j
temp = valores[i]
valores[i] = valores[j]
valores[j] = temp
# e avançamos o j para o elemento seguinte
j = j + 1
end
end
# agora mostramos o resultado
print("\n\nVetor com os zeros deslocados para o final:\n")
for i in (0..valores.length - 1)
printf("%d ", valores[i])
end
Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
Delphi ::: Dicas & Truques ::: Matemática e Estatística |
Apostila Delphi - Como obter o menor entre dois valores usando a função Min() do DelphiQuantidade de visualizações: 13259 vezes |
A função Min(), presente na unit Math é útil quando precisamos retornar o menor entre dois valores fornecidos. Veja um exemplo:
procedure TForm2.Button1Click(Sender: TObject);
var
a, b, menor: Integer;
begin
// uses Math
a := 34;
b := 17;
menor := Min(a, b);
// exibe o resultado
ShowMessage('O menor valor é: ' + IntToStr(menor));
end;
Note que a função Min() é uma função sobrecarregada, ou seja, os valores fornecidos e o retorno da função podem ser do tipo Integer, Int64, Single, Double ou Extended. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Pacote java.lang ::: String |
Java para iniciantes - Como verificar se duas strings são iguais ou diferentes usando os métodos equals() e equalsIgnoreCase() da classe StringQuantidade de visualizações: 4822 vezes |
Podemos verificar se duas strings são iguais ou diferentes em Java usando os métodos equals() e equalsIgnoreCase(). O método equals() recebe um objeto do tipo String e o compara com o String atual. Veja sua assinatura:public boolean equals(Object anObject) O resultado será true se as duas strings forem iguais e false em caso contrário. Note que equals() diferencia letras maiúsculas e letras minúsculas. Veja um exemplo:
package estudos;
public class Estudos{
public static void main(String[] args) {
String palavra1 = "Java";
String palavra2 = "java";
// vamos verificar se as duas strings são iguais
if(palavra1.equals(palavra2)){
System.out.println("As duas strings são iguais");
}
else{
System.out.println("As duas strings são diferentes");
}
}
}
Ao executar este código nós teremos o seguinte resultado: As duas strings são diferentes O método equalsIgnoreCase(), por sua vez, não diferencia letras maiúsculas de letras minúsculas. Veja o exemplo anterior usando o método equalsIgnoreCase():
package estudos;
public class Estudos{
public static void main(String[] args) {
String palavra1 = "Java";
String palavra2 = "java";
// vamos verificar se as duas strings são iguais
if(palavra1.equalsIgnoreCase(palavra2)){
System.out.println("As duas strings são iguais");
}
else{
System.out.println("As duas strings são diferentes");
}
}
}
Ao executarmos este código o resultado será: As duas strings são iguais |
C++ ::: Dicas & Truques ::: Arquivos e Diretórios |
Como criar diretórios em C++ usando a função mkdir()Quantidade de visualizações: 10887 vezes |
Em algumas situações nossos códigos C++ precisam criar diretórios. Isso pode ser feito com o auxílio da função mkdir(), disponível no header direct.h (trazido da linguagem C). Veja a assinatura desta função:int _mkdir(const char *pathname); Veja um trecho de código C++ no qual criamos um diretório no mesmo diretório do executável.
#include <iostream>
#include <direct.h>
using namespace std;
int main(int argc, char *argv[]){
// vamos criar o diretório
char diretorio[] = "estudos";
// vamos testar se houve erro na criação do diretório
if(mkdir(diretorio) == -1){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Diretório criado com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
É possível usar a versão Unicode de mkdir(), ou _mkdir(). O método _wmkdir(), também presente em direct.h é útil quando precisamos internacionalizar nossas aplicações. Veja o exemplo:
#include <iostream>
#include <direct.h>
using namespace std;
int main(int argc, char *argv[]){
// vamos criar o diretório
wchar_t diretorio[] = L"C:\\Dev-Cpp\\estudos";
// vamos testar se houve erro na criação do diretório
if(_wmkdir(diretorio) == -1){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Diretório criado com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Note que agora eu troquei o tipo char por wchar_t e usei o sinalizado L antes da atribuição da string. |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




