![]() |
|
|
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 Hidrostática |
||
|
||
|
|
||
Python ::: Dicas & Truques ::: HTTP Web Server |
Como criar um servidor web em Python usando as classes BaseHTTPRequestHandler e HTTPServerQuantidade de visualizações: 1089 vezes |
|
Nesta dica mostrarei como criar um web server em Python, ou seja, o nosso próprio servidor web. Para isso nós vamos criar uma classe ServidorWeb que herda de BaseHTTPRequestHandler, que nos fornece todos os métodos necessários para tratar requisições HTTP, tais como GET e POST. Note que definir o nome do host como "localhost" e a porta como "8080". Veja o código completo para o nosso web server em Python:
# precisamos importar os objetos BaseHTTPRequestHandler e HTTPServer
# do módulo http.server
from http.server import BaseHTTPRequestHandler, HTTPServer
# precisamos também do módulo time
import time
# vamos criar a classe ServidorWeb, que herda de
# BaseHTTPRequestHandler
class ServidorWeb(BaseHTTPRequestHandler):
# vamos implementar o método que responde às requisições GET
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write(bytes("<html><head><title>Meu Servidor Web</title></head>",
"utf-8"))
self.wfile.write(bytes("<p>Requsição: %s</p>" % self.path,
"utf-8"))
self.wfile.write(bytes("<body>", "utf-8"))
self.wfile.write(bytes("<p>Exemplo de Web Server em Python</p>",
"utf-8"))
self.wfile.write(bytes("</body></html>", "utf-8"))
# função principal do programa
def main():
# agora criamos um objeto HTTPServer
host = "localhost"
porta = 8080
servidorWeb = HTTPServer((host, porta), ServidorWeb)
print("Servidor iniciado em http://%s:%s" % (host, porta))
# tentamos levantar o servidor
try:
servidorWeb.serve_forever()
except KeyboardInterrupt:
pass
# liberamos o servidor web
servidorWeb.server_close()
print("O servidor web foi parado.")
if __name__== "__main__":
main()
Ao executar este código você verá a seguinte mensagem: Servidor iniciado em http://localhost:8080 A partir daí você pode abrir o seu navegador neste endereço e já verá a página web que definimos no corpo do método do_GET() da classe ServidorWeb. Agora é só explorar as dicas dessa seção para aprender ainda mais sobre redes, soquetes e servidores web usando a linguagem Python. |
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular a Posição da Linha Neutra em vigas de concreto armado usando Python - Python para Engenharia Civil - Cálculo EstruturalQuantidade de visualizações: 744 vezes |
|
O concreto possui excelente resistência à compressão, porém, sua resistência à tração é muito pequena, chegando em torno de 10% da sua resistência à compressão. O aço, por sua vez, apresenta alta resistência à tração. Por esta razão a combinação destes dois materiais resulta no que conhecemos por concreto armado, no qual o concreto, no caso das vigas, resiste às solicitações de compressão (em geral na parte superior da viga) e o aço se encarrega da tração (na parte inferior da viga). Entre as forças de compressão e tração da viga de concreto armado existe uma região na qual as tensões são nulas, ou seja, não há nem tração nem compressão. Essa região é conhecida como linha neutra da viga e é usada, entre outras coisas, para verificarmos se a viga se encontra nas condições mínimas de dutibilidade exigidas pela ABNT NBR 6118/2014. Outra característica muito importante da linha neutra é que ela nos permite indicar em qual domínio de deformação as nossas vigas de concreto armado estão trabalhando. A posição da linha neutra em vigas de concreto armado pode ser calculada por meio da seguinte fórmula: \[x = 1,25 \cdot d \cdot \left(1 - \sqrt{1 - \frac{M_d}{0,425 \cdot b_w \cdot d^2 \cdot f_\text{cd}}}\right)\] Onde: x é a posição da linha neutra a partir da fibra mais comprimida da viga, em metros (que depois convertemos para cm); d é a altura útil da viga em metros; Md é o momento solicitante de cálculo na viga, em kN.m; bw é a largura da viga, em metros; fcd é a resistência de cálculo do concreto, em kN/m2; Veja agora o código Python completo que pede para o usuário informar a altura e largura da viga em centímetros, o momento solicitante na viga em kN.m e o FCK do concreto em Mpa, mostra a posição da linha neutra da viga e informa se ela obedece ao valor máximo imposto pela ABNT NBR 6118/2014 e também o domínio de deformação que ela está atuando:
# precisamos importar o módulo Math
import math
# função principal do programa Python
def main():
# vamos pedir para o usuário informar a altura da viga
altura = float(input("Informe a altura H da viga em cm: "))
# vamos converter de centímetros para metros
altura = altura / 100.00
# vamos pedir para o usuário informar a largura da viga
largura = float(input("Informe a largura bw da viga em cm: "))
# vamos converter de centímetros para metros
largura = largura / 100.00
# vamos calcular a altura útil da viga
# aqui eu usei 0.9 mas alguns engenheiros usam 0.95
altura_util = 0.9 * altura
# vamos pedir para o usuário informar o momento
# máximo solicitante Mk (calculado no Ftool ou outra ferramenta)
Mk = float(input("Informe o momento solicitante Mk em kN.m: "))
# vamos definir o valor do gama f
yf = 1.4
# calculamos o md, ou seja, o momento solicitante de cálculo
Md = Mk * yf
# vamos pedir para o usuário informar o FCK do concreto
fck = float(input("Informe o FCK do concreto em Mpa: "))
# vamos definir o valor do gama c
yc = 1.4
# calculamos o fcd, ou seja, a resistência de cálculo do concreto
fcd = fck / yc
# finalmente vamos calcular a posição da linha neutra
# note que converti o fcd de Mpa para kN/m2
x = 1.25 * altura_util * (1 - math.sqrt(1 - (Md / (0.425 *
largura * math.pow(altura_util, 2) * (fcd * 1000.0)))))
# vamos mostrar os resultados
print("\nA altura útil da viga é: {0} cm ({1} m)".format(
round(altura_util * 100, 5), round(altura_util, 5)))
print("O momento solicitante de cálculo é: {0} kN.m".format(
round(Md, 5)))
print("O fcd do concreto é: {0} Mpa".format(round(fcd, 5)))
print("A posição da linha neutra é: {0} cm".format(round(x * 100.0, 5)))
# vamos verificar se a posição da linha neutra está dentro do
# limite máximo imposto pela ABNT NBR 6118/2014 para FCK até 50 Mpa
if ((x / altura_util) <= 0.45):
print("Garante condições mínimas de dutibilidade? SIM")
else:
print("Garante condições mínimas de dutibilidade? NÃO")
# vamos verificar o domínio de deformação da vaga
temp = x / altura_util
if (temp <= 0.167):
print("A viga está trabalhando no domínio 1")
elif ((temp > 0.167) and (temp <= 0.259)):
print("A viga está trabalhando no domínio 2")
elif ((temp > 0.259) and (temp <= 0.628)):
print("A viga está trabalhando no domínio 3")
else:
print("A viga está trabalhando no domínio 4/5")
if __name__ == "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe a altura H da viga em cm: 35 Informe a largura bw da viga em cm: 19 Informe o momento solicitante Mk em kN.m: 32.3 Informe o FCK do concreto em Mpa: 25 A altura útil da viga é: 31.5 cm (0.315 m) O momento solicitante de cálculo é: 45.22 kN.m O fcd do concreto é: 17.85714 Mpa A posição da linha neutra é: 6.81136 cm Garante condições mínimas de dutibilidade? SIM A viga está trabalhando no domínio 2 |
React Native ::: React Native - Componentes Visuais ::: Button |
Como detectar um clique em um botão do React Native e exibir uma mensagem AlertQuantidade de visualizações: 1674 vezes |
|
Nesta dica mostrarei como detectar um evento onPress em um botão do React Native e exibir uma mensagem usando o método alert() do componente Alert. Note que o evento onPress é disparado quando o usuário pressiona o botão. Veja o código completo para o exemplo:
import React, {Component} from 'react';
import {View, Button, Alert} from 'react-native';
type Props = {};
export default class App extends Component<Props> {
render() {
return (
<View style={{backgroundColor: '#eeeeee',
padding: 30}}>
<Button onPress = {() =>
Alert.alert("Bem-vindo(a) ao React Native")}
title="Clique" />
</View>
);
}
}
Veja que este exemplo define o código a ser chamado quando o botão for clicado diretamente em sua declaração. Em outras dicas dessa seção você verá como clicar no botão e chamar uma função JavaScript residente fora da declaração do botão. |
LISP ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar uma substring de uma string em LISP usando a função subseq()Quantidade de visualizações: 899 vezes |
|
Nesta dica mostrarei como podemos extrair uma parte de uma palavra, frase ou texto, ou seja, vamos obter uma substring a partir de uma string. Na linguagem LISP isso pode ser feito por meio da função subseq(). Esta função aceita 3 argumentos. O primeiro argumento é a string a partir da qual a substring será extraída. O segundo argumento é o índice inicial da substring, começando sempre em 0. O terceiro argumento marca o índice final da substring (um índice a mais que o último caractere desejado). Se o terceiro argumento for omitido, todo o restante da string será incluído na substring. Veja o código LISP completo para o exemplo no qual pedimos para o usuário informar uma frase e extraímos dessa frase os 5 primeiros caracteres: ; variáveis que vamos usar no programa (let ((frase)(substring)) ; Vamos pedir para o usuário informar ; uma frase (princ "Informe uma frase: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável frase (setq frase (read-line)) ; vamos mostrar a frase informada ; o símbolo ~% provoca uma quebra de linha (format t "A frase informada foi: ~S~%" frase) ; agora vamos obter os 5 primeiros caracteres (setq substring (subseq frase 0 5)) ; e mostramos a substring (format t "A substring obtida foi: ~S" substring) ) Ao executar este código LISP nós teremos o seguinte resultado: A frase informada foi: "Estudar LISP é bom demais" A substring obtida foi: "Estud" |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como filtrar os elementos de um array em JavaScript usando a função filter() - Vetores e matrizes em JavaScriptQuantidade de visualizações: 3111 vezes |
|
O método filter(), adicionado à linguagem JavaScript por meio do ECMAScript 5 (JavaScript 5, ECMAScript 2009, ES5) nos permite criar um novo vetor contendo apenas os elementos que passarem em um determinado teste, que pode ser uma função de usuário personalizada. Esta função é uma função de callback que será chamada uma vez para cada um dos elementos do vetor. Para melhor entendimento, comece analisando o trecho de código abaixo:
<script type="text/javascript">
function maiorQue10(valor){
return valor > 10;
}
// vamos criar um vetor de inteiros
var valores = [2, 6, 32, 9, 3, 21];
// vamos filtrar o vetor para obter apenas os
// valores maiores que 10
var maiores10 = valores.filter(maiorQue10);
// vamos mostrar o resultado
window.alert(maiores10);
</script>
Neste código usamos o método filter() para gerar um novo vetor contendo apenas os elementos com valores maiores que 10. Veja que fornecemos uma função como argumento para o método filter() e, dentro dessa função, nós retornamos true ou false para que a filtragem inclua ou não o valor sendo analisado no momento. Uma função passada para o método filter() pode conter os seguintes argumentos (nessa mesma ordem): a) O valor do item; b) O índice do item (opcional); c) O vetor a partir do qual o método filter() está sendo chamado (opcional). Veja mais um trecho de código no qual retornamos os elementos de um array maiores que 10 e precedidos de um número par:
<script type="text/javascript">
function maiorQue10PrecPar(valor, indice, vetor){
// o primeiro elemento não é precedido por
// outro. Vamos descartá-lo
if(indice == 0){
return false;
}
// é precedido por um número par?
if(vetor[indice - 1] % 2 == 0){
// é maior que 10?
return valor > 10;
}
// nenhuma das condições acima?
return false;
}
// vamos criar um vetor de inteiros
var valores = [2, 6, 32, 9, 3, 21];
// vamos filtrar o vetor para obter apenas os
// valores maiores que 10 e precedidos por um
// número par
var maiores10 = valores.filter(maiorQue10PrecPar);
// vamos mostrar o resultado
window.alert(maiores10);
</script>
Execute este código e verá que apenas o valor 32 será retornado, pois ele é o único maior que 10 e precedido por um número par. |
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
|
Python - Como contar quantas vezes um elemento aparece em uma lista do Python usando a função count() C - Como comparar os primeiros n caracteres de duas strings usando a função strncmp() da linguagem C |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




