![]() |
|
|
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. |
||
Python ::: Python para Engenharia ::: Engenharia Civil - Concreto, Concreto Armado e Concretos Especiais |
Como calcular a armadura mínima de tração de uma viga de concreto armado usando Python - Python para Engenharia CivilQuantidade de visualizações: 660 vezes |
|
De acordo com a ABNT NBR 6118 (Projeto de estruturas de concreto armado), a armadura de tração, em elementos estruturais armados ou protendidos deve ser determinada pelo dimensionamento da seção a um determinado momento fletor mínimo, respeitada a taxa mínima absoluta ρmin de 0,15%. Dessa forma, a área de aço mínima levando em consideração a taxa mínima absoluta ρmin de 0,15% de armadura longitudinal para as vigas de concreto armado usando concreto com FCK até 30 Mpa é calculada pela seguinte fórmula: \[A_\text{s,min} = \frac{0,15}{100} \cdot A_\text{c}\] Onde: As,min é a área da armadura mínima de aço em cm2; Ac é a área de concreto em cm2, ou seja, a largura bw da viga multiplicada por sua altura h (ambas em cm). Veja agora o código Python completo que lê a largura, a altura da viga, o FCK do concreto (no código eu tratei FCK até 50 Mpa) e mostra a área mínima da armadura de aço e sugestões das barras a serem usadas:
# vamos importar o módulo Math
import math
# função usada para calcular e retornar a quantidade
# de barras de aço de acordo com a área de aço (considerando
# aço CA-50)
def quant_barras(area_aco):
# barras de 6.3mm (o mínimo aceitável pela NBR 6118)
quantidade_6_3 = math.ceil(area_aco / 0.31)
quantidade_8 = math.ceil(area_aco / 0.5) # barras de 8mm
quantidade_10 = math.ceil(area_aco / 0.785) # barras de 10mm
quantidade_12_5 = math.ceil(area_aco / 1.22) # barras de 12.5mm
# mostra as sugestões de quantidade de barras
if (quantidade_6_3) > 1:
print("{0} barras de 6.3 mm".format(quantidade_6_3))
if (quantidade_8) > 1:
print("{0} barras de 8 mm".format(quantidade_8))
if (quantidade_10) > 1:
print("{0} barras de 10 mm".format(quantidade_10))
if (quantidade_12_5) > 1:
print("{0} barras de 12.5 mm".format(quantidade_12_5))
# 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 pedir para o usuário informar a largura da viga
largura = float(input("Informe a largura bw da viga em cm: "))
# vamos pedir para o usuário informar o FCK do concreto
fck = float(input("Informe o FCK do concreto em Mpa: "))
# vamos calcular o pmin de acordo com o FCK informado
if (fck <= 30):
pmin = 0.15
elif (fck == 35):
pmin = 0.164
elif (fck == 40):
pmin = 0.179
elif (fck == 45):
pmin = 0.194
else:
pmin = 0.208
# já temos o pmin, vamos calcular a área mínima de aço
area_concreto = largura * altura
as_min = (pmin / 100.0) * area_concreto
# vamos mostrar os resultados
print("\nA área da armadura mínima longitudinal é: {0} cm2".format(
round(as_min, 5)))
# mostra as sugestões de barras
print("\nSugestões de barras:\n-------------------------")
quant_barras(as_min)
if __name__ == "__main__":
main()
Ao executarmos este código Python nós teremos o seguinte resultado: Informe a altura h da viga em cm: 50 Informe a largura bw da viga em cm: 20 Informe o FCK do concreto em Mpa: 30 A área da armadura mínima é: 1.5 cm2 Sugestões de barras: ------------------------- 5 barras de 6.3 mm 3 barras de 8 mm 2 barras de 10 mm 2 barras de 12.5 mm |
PostgreSQL ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados) |
Como excluir uma base de dados no PostgreSQL usando o comando DDL DROP DATABASEQuantidade de visualizações: 14636 vezes |
|
Em algumas situações precisamos excluir uma base de dados no PostgreSQL. Isso pode ser feito por meio do uso do comando DLL DROP DATABASE. Este comando pode ser disparado via linha de comando SQL Shell (psql), na janela de Query do pgAdmin ou a partir de uma linguagem de programação. No entanto, é importante saber que você não conseguirá excluir uma base de dados que você ou outros usuários estejam conectados no momento. Use o comando DROP DATABASE com cuidado. Ao dispará-lo, os dados contidos na base de dados (tabelas, views, funções, triggers, etc) serão perdidos para sempre. Veja como podemos usar o comando DROP DATABASE para excluir uma base de dados chamada "estudos": DROP DATABASE estudos; Se você visualizar uma mensagem parecida com: Query returned successfully with no result in 261 ms. Então poderá estar certo de que a base de dados foi removida com sucesso. Se tentarmos excluir uma base de dados na qual alguém ainda está conectado, o PostgreSQL abortará a operação e nos exibirá a seguinte mensagem de erro: ERRO: banco de dados "estudos" está sendo acessado por outros usuários DETAIL: Há 1 outra sessão utilizando o banco de dados. ********** Error ********** ERRO: banco de dados "estudos" está sendo acessado por outros usuários SQL state: 55006 Detail: Há 1 outra sessão utilizando o banco de dados. ERRO: banco de dados "estudos" não existe ********** Error ********** ERRO: banco de dados "estudos" não existe SQL state: 3D000 DROP DATABASE IF EXISTS estudos; Agora o PostgreSQL trocará a mensagem de erro por uma mensagem de advertência: NOTA: banco de dados "estudos" não existe, ignorando Query returned successfully with no result in 14 ms. |
Python ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como criar um laço while() infinito na linguagem PythonQuantidade de visualizações: 10535 vezes |
|
Nesta dica eu mostrarei como é possível criar um laço (loop) while infinito em Python. Esta técnica é útil para as situações nas quais queremos interagir com o usuário do nosso programa até que um determinado valor seja informado. No exemplo abaixo temos um laço while() que será executado até que o texto "fim" seja informado pelo usuário. Veja o código completo:
def main():
while True:
frase = input("Digite uma frase: ");
print("Você digitou: ", frase)
# vamos sair do laço
if frase == "fim":
print("Você acaba de sair do laço while()")
break
if __name__== "__main__":
main()
Ao executar este código nós teremos o seguinte resultado: Digite uma frase: Estou estudando Python Você digitou: Estou estudando Python Digite uma frase: Preciso viajar amanhã Você digitou: Preciso viajar amanhã Digite uma frase: fim Você digitou: fim Você acaba de sair do laço while() |
Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Como implementar a ordenação Quicksort em Java - Apostila de Java para iniciantesQuantidade de visualizações: 734 vezes |
|
A ordenação Quicksort é um dos algorítmos de ordenação mais encontrados em aplicações reais de programação. No Delphi esta ordenação é encontrada no objeto TList. No Java podemos encontrá-lo no método Arrays.sort(). Na linguagem C a ordenação Quicksort é implementada na função qsort() da biblioteca padrão. O algoritmo de ordenação Quicksort é do tipo dividir para conquistar (divide-and-conquer principle). Neste tipo de algoritmo o problema é dividido em sub-problemas e a solução é concatenada quando as chamadas recursivas atingirem o caso base. O vetor (ou array) a ser ordenado é dividido em duas sub-listas por um elemento chamado pivô, resultando em uma lista com elementos menores que o pivô e outra lista com os elementos maiores que o pivô. Esse processo é repetido para cada chamada recursiva. Sim, a ordenação Quicksort faz uso extensivo de recursividade, razão pela qual devemos ter muito cuidado para não estourar a pilha do sistema. Existem muitos estudos sobre o pivô ideal para a ordenação Quicksort. Nessa dica adotarei o último elemento do array ou sub-array como pivô. Em vetores não ordenados essa estratégia, em geral, resulta em uma boa escolha. Vamos ao código Java então? Veja um programa Java completo demonstrando o uso da ordenação Quicksort para um array de 10 elementos inteiros:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// vamos declarar um array de 10 elementos
int valores[] = new int[10];
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos pedir ao usuário para informar os valores para o vetor
for(int i = 0; i < valores.length; i++){
System.out.print("Informe o valor do elemento " + i + ": ");
valores[i] = Integer.parseInt(entrada.nextLine());
}
// vamos mostrar o array informado
System.out.println("\nO array informado foi:\n");
for(int i = 0; i < valores.length; i++){
System.out.print(valores[i] + " ");
}
// vamos ordenar o vetor usando a ordenação Quicksort
quickSort(valores, 0, valores.length - 1);
System.out.println("\n\nO array ordenado é:\n");
for(int i = 0; i < valores.length; i++){
System.out.print(valores[i] + " ");
}
System.out.println("\n\n");
}
// função de implementação da ordenação Quicksort
public static void quickSort(int vetor[], int inicio, int fim) {
// o início é menor que o fim?
if (inicio < fim) {
// vamos obter o novo índice da partição
int indiceParticao = particionar(vetor, inicio, fim);
// efetuamos novas chamadas recursivas
quickSort(vetor, inicio, indiceParticao - 1);
quickSort(vetor, indiceParticao + 1, fim);
}
}
// função que retorna o índice de partição
private static int particionar(int vetor[], int inicio, int fim) {
// para guardar o pivô
int pivot = vetor[fim];
int i = (inicio - 1);
for (int j = inicio; j < fim; j++) {
if (vetor[j] <= pivot) {
i++;
// fazemos a troca
int temp = vetor[i];
vetor[i] = vetor[j];
vetor[j] = temp;
}
}
// efetua a troca
int temp = vetor[i + 1];
vetor[i + 1] = vetor[fim];
vetor[fim] = temp;
return i + 1;
}
}
Ao executar este código Java nós teremos o seguinte resultado: Informe o valor do elemento 0: 7 Informe o valor do elemento 1: 2 Informe o valor do elemento 2: 43 Informe o valor do elemento 3: 1 Informe o valor do elemento 4: 9 Informe o valor do elemento 5: 6 Informe o valor do elemento 6: 22 Informe o valor do elemento 7: 3 Informe o valor do elemento 8: 37 Informe o valor do elemento 9: 5 O array informado foi: 7 2 43 1 9 6 22 3 37 5 O array ordenado é: 1 2 3 5 6 7 9 22 37 43 |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Cookies em JavaScript - Como escrever uma função para a criação de cookies em JavaScript Java - Como verificar se um arquivo ou diretório existe em Java usando o método exists() da classe File |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Como listar todo o conteúdo de um diretório usando a função listFiles() da classe File do Java QGIS - Como definir o título do projeto do QGIS usando PyQGIS e a função setTitle() da classe QgsProject |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




