![]() |
|
||||
|
|||||
Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
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: 495 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 |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se todos os elementos de um array satisfazem uma condição em JavaScript usando a função every()Quantidade de visualizações: 1706 vezes |
|
Em algumas situações nós gostaríamos de testar todos os elementos de um vetor e verificar se todos eles passam em um determinado teste. Para isso podemos usar a função every(), adicionada à linguagem JavaScript por meio do ECMAScript 5 (JavaScript 5, ECMAScript 2009, ES5). Este método nos permite fornecer uma função de callback que será chamada para cada um dos elementos do vetor. E o retorno do método every() é um valor true se todos os elementos passarem no teste e false em caso contrário. Veja um exemplo no qual testamos se TODOS os elementos de um vetor são maiores que 10:
<script type="text/javascript">
function testarTodos(valor, indice, vetor){
if(valor > 10){
return true;
}
}
var valores = new Array(21, 50, 30, 70, 12, 3);
// vamos verificar se TODOS os valores são
// maiores que 10
var res = valores.every(testarTodos);
window.alert("Todos passaram no teste: " + res);
</script>
Aqui o resultado será false, pois o valor 3 não passou no teste. É importante observar que, assim que a função de callback retorna false pela primeira vez, o método every() já abandona sua execução. Uma função passada para o método every() 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 every() está sendo chamado (opcional). Como última observação, o método every() não modifica o array original. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Como converter de binário para decimal em Java usando o laço forQuantidade de visualizações: 6523 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que usa o laço for para converter um número binário (como uma String) em sua representação decimal (como um int). Peça ao usuário para informar um número binário e mostre o mesmo em decimal (como um int). Sua solução deve obrigatoriamente usar o laço for. Sua saída deverá ser parecida com: Informe um número binário: 1100 A representação decimal do valor binário 1100 é 12 Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos ler o número binário (como uma String)
System.out.print("Informe um número binário: ");
String bin = entrada.nextLine();
int decimal = 0; // guarda a representação decimal
// vamos percorrer todos os dígitos do número binário começando do início
for(int i = 0, exp = bin.length() - 1; i < bin.length(); i++, exp--){
// converte o caractere atual para inteiro
int temp = Character.digit(bin.charAt(i), 10);
decimal = decimal + (temp * (int)Math.pow(2, exp));
}
System.out.println("A representação decimal do valor binário "
+ bin + " é " + decimal);
}
}
|
HTML5 ::: Aplicativos Completos ::: Programas de desenho, edição e visualização de imagens e fotos |
Como criar um programa de desenho simples usando o objeto Canvas do HTML5Quantidade de visualizações: 7673 vezes |
|
Revisando alguns códigos que desenvolvi para clientes ao longo desses anos, encontrei um exemplo de um programa de desenho bem simples demonstrando as possibilidades gráficas do elemento Canvas do HTML. Este código foi escrito há uns dois anos e resolvi compartilhar com todos, para que vocês possam aprimorá-lo e acrescentar novas idéias, afinal, o HTML5 está mais atual do que nunca. Veja o resultado no navegador: ![]() Eu o escrevi de forma bem simples, sem usar jQuery ou qualquer outro framework, apenas JavaScript raiz mesmo, de forma que até os estudantes mais iniciantes não terão dificuldade de entender. Veja a listagem completa e com comentários:
<html>
<head>
<title>Desenhando no canvas do HTML5</title>
</head>
<body style="padding: 15px">
<b>Clique e arraste para desenhar</b><br><br>
<canvas id="quadro" style="border: 1px solid #666"
width="600" height="350"></canvas>
<br><br><button onClick="limpar()">Limpar</button>
<script type="text/javascript">
// obtém uma referência ao canvas
var quadro = document.getElementById('quadro');
// vamos obter o contexto de desenho
var areaDesenho = quadro.getContext("2d");
// podemos desenhar?
var podeDesenhar = false; // ainda não
// vetores para guardar as posições x, y, e se o mouse está sendo
// movimentado pressionado
var vetorX = new Array();
var vetorY = new Array();
var vetorArrastar = new Array();
// agora vamos adicionar na área de desenho um "ouvidor" de
// eventos mousedown, ou seja, vamos detectar quando o usuário
// pressionar o botão do mouse (sem soltar)
quadro.addEventListener('mousedown', function(e){
// podemos iniciar o desenho
podeDesenhar = true;
registrarClique(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, false);
desenhar(); // faça o desenho, moço
});
// o "ouvidor" de evento que detecta se o mouse está sendo arrastado
// pressionado
quadro.addEventListener('mousemove', function(e){
if(podeDesenhar){
registrarClique(e.pageX - this.offsetLeft, e.pageY -
this.offsetTop, true);
desenhar(); // faça o desenho, moço
}
});
// o "ouvidor" de evento que detecta se o mouse foi liberado
// e interrompe o desenho
quadro.addEventListener('mouseup', function(e){
podeDesenhar = false;
});
// o mouse saiu da área de desenho?
quadro.addEventListener('mouseleave', function(e){
podeDesenhar = false;
});
function registrarClique(x, y, arrastar){
// aqui nós guardamos em vetores as posições x, y do clique ou
// o movimento do mouse pressionado.
vetorX.push(x);
vetorY.push(y);
vetorArrastar.push(arrastar);
}
// é aqui que a mágica ocorre
function desenhar(){
// primeiro vamos limpar o quadro de desenho
areaDesenho.clearRect(0, 0, areaDesenho.canvas.width,
areaDesenho.canvas.height);
areaDesenho.strokeStyle = "#5c5cd6"; // cor
areaDesenho.lineJoin = "round"; // formato da junção de linha
areaDesenho.lineWidth = 5; // largura da linha
// percorremos os vetores, usando como base o vetor de coordenadas x
for(var i = 0; i < vetorX.length; i++){
areaDesenho.beginPath(); // inicia o caminho
// o mouse foi arrastado neste evento?
if((vetorArrastar[i] == true && i > 0)){
areaDesenho.moveTo(vetorX[i - 1], vetorY[i - 1]);
}
else{
// é o início do desenho
areaDesenho.moveTo(vetorX[i] - 1, vetorY[i]);
}
// desenha a linha do ponto X ao ponto Y
areaDesenho.lineTo(vetorX[i], vetorY[i]);
// fecha o caminho
areaDesenho.closePath();
// conclui de fato o desenho
areaDesenho.stroke();
}
}
// e aqui nós limpamos a área de desenho e esvaziamos os vetores
function limpar(){
areaDesenho.clearRect(0, 0, areaDesenho.canvas.width,
areaDesenho.canvas.height);
vetorX = [];
vetorY = [];
vetorArrastar = [];
}
</script>
</body>
</html>
Salve o código como "desenho.html" (cuidado para não salvar como "desenho.html.txt") e abra-o no seu navegador, remoto ou localmente. Você pode começar suas modificações alterando a cor do desenho, a largura da linha, etc. Você pode também deixar figuras pré-configuradas e até permitir que o usuário inclua fotos no Canvas. Para os estudantes que já sabem Node.js, saiba que é possível enviar os três vetores via sockets em um ambiente real time para que outros usuários na rede vejam o seu desenho em tempo real. Bons estudos. |
Rust ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como somar os elementos de um array em RustQuantidade de visualizações: 708 vezes |
|
Nesta dica mostrarei como podemos somar os valores de um vetor na linguagem Rust. Para isso nós vamos usar um laço for e percorrer os itens do array um de cada vez. Note também o uso da função len() para retornar o tamanho do array. Veja o código Rust completo para o exemplo:
// esta é a função principal do programa Rust
fn main() {
// vamos criar um array com 6 elementos
let valores:[i32;6] = [5, 2, 3, 7, 4, 1];
// para guardar a soma
let mut soma:i32 = 0;
// vamos mostrar o conteúdo do array
println!("Os elementos do array são: {:?}", valores);
// agora vamos somar os elementos do array
for i in 0..valores.len() {
soma = soma + valores[i];
}
// e mostramos o resultado
println!("A soma dos elementos é: {}", soma);
}
Ao executarmos este código Rust nós teremos o seguinte resultado: Os elementos do array são: [5, 2, 3, 7, 4, 1] A soma dos elementos é: 22 |
Veja mais Dicas e truques de Rust |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






