![]() |
|
|
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 - Estruturas de Concreto Armado |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Expressões Regulares |
Java Expressões Regulares - Como substituir todas as ocorrências de uma substring em uma string usando expressões regularesQuantidade de visualizações: 9805 vezes |
|
Este exemplo mostra como substituir todas as ocorrências de uma substring em uma string usando expressões regulares na linguagem Java. Nesta dica nós substituimos todas as ocorrências de "Java" por "C++". Veja o código completo:
package arquivodecodigos;
import java.util.regex.*;
public class Estudos{
public static void main(String args[]){
String padrao = "Java";
Pattern regPat = Pattern.compile(padrao);
String frase = "Java? Gosto muito de Java.";
System.out.println("Frase original: " + frase);
Matcher matcher = regPat.matcher(frase);
String res = matcher.replaceAll("C++");
System.out.println("Depois da substituição: " + res);
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: Frase original: Java? Gosto muito de Java. Depois da substituição: C++? Gosto muito de C++. |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução de salto incondicional goto da linguagem C#Quantidade de visualizações: 18930 vezes |
|
A instrução goto na linguagem C# é uma instrução de salto incondicional. Quando esta instrução é encontrada, o fluxo de execução de código salta imediatamente para a localização definida pelo goto. Embora não muito usada, esta instrução, ás vezes, tem sua utilidade. A instrução goto exige um rótulo (label), que é um identificador C# válido seguido por dois pontos. Além disso, este rótulo deve estar dentro do mesmo método no qual a instrução goto estará contida. Isso quer dizer que não é possível usar goto para saltar de um método para outro. Veja um trecho de código no qual usamos goto para contar de 0 até 10:
using System;
namespace Estudos{
class Program{
static void Main(string[] args){
int valor = 0;
// define o rótulo para o goto
inicio:
// exibe os números de 0 até 10
if (valor <= 10){
Console.WriteLine("{0}", valor);
valor++;
goto inicio;
}
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código nós teremos o seguinte resultado: 0 1 2 3 4 5 6 7 8 9 10 Pressione uma tecla para sair... É claro que este código, ainda que seja um bom exemplo do uso de goto, pode e deve ser substituído por um laço for ou while. Lembre-se: goto é usado somente em casos nos quais nenhuma outra instrução ou construção esteja disponível. Veja, por exemplo, como podemos usar goto para saltar entre as cláusulas case de uma instrução switch:
using System;
namespace Estudos{
class Program{
static void Main(string[] args) {
for (int i = 1; i < 3; i++) {
switch (i) {
case 1:
Console.WriteLine("Estou na cláusula 1.");
goto case 3;
case 2:
Console.WriteLine("Estou na cláusula 2.");
goto case 1;
case 3:
Console.WriteLine("Estou na cláusula 3.");
goto default;
default:
Console.WriteLine("Estou na cláusula padrão.");
break;
}
}
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código nós teremos o seguinte resultado: Estou na cláusula 1. Estou na cláusula 3. Estou na cláusula padrão. Estou na cláusula 2. Estou na cláusula 1. Estou na cláusula 3. Estou na cláusula padrão. Outro uso útil da instrução goto é quando precisamos sair de um laço profundamente aninhado (três ou quatro níveis já é uma tarefa complicada). Veja:
using System;
namespace Estudos{
class Program{
static void Main(string[] args) {
int i = 0, j = 0, k = 0;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
for (k = 0; k < 10; k++) {
Console.WriteLine("i, j, k: " + i + " " +
j + " " + k);
if (k == 3) goto parada;
}
}
}
// rótulo de parada
parada:
Console.WriteLine("Parei! i, j, k: " + i + " " +
j + " " + k);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este exemplo nós teremos o seguinte resultado: i, j, k: 0 0 0 i, j, k: 0 0 1 i, j, k: 0 0 2 i, j, k: 0 0 3 Parei! i, j, k: 0 0 3 Para finalizar, tenha em mente que goto é usado para sair de um bloco de instruções. Tentar usar esta instrução para saltar para dentro de um bloco de instruções é um erro de síntaxe e o seu código não compilará. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Ler um número de três dígitos, separá-lo e invertê-lo, escrevendo o número lido e sua forma inversaQuantidade de visualizações: 16599 vezes |
|
Exercício Resolvido de Java - Ler um número de três dígitos, separá-lo e invertê-lo, escrevendo o número lido e sua forma inversa Pergunta/Tarefa: Escreva um programa Java console ou GUI que leia um número de 3 dígitos e o inverta, escrevendo o número lido e o invertido. Por exemplo, se o usuário informar o valor 753, seu programa deverá invertê-lo, resultando em 357. Seu programa deverá exibir a seguinte saída: Informe um valor inteiro de três dígitos: 753 O valor original é: 753 O valor invertido é: 357 Veja a resolução comentada deste exercício usando Java console:
public static void main(String[] args){
// não se esqueça de adicionar um import para a classe Scanner
// import java.util.Scanner;
// vamos criar um objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos solicitar ao usuário que informe um valor inteiro
// na faixa 100 a 999 (incluindo)
System.out.print("Informe um valor inteiro de três dígitos: ");
// vamos ler o valor informado
int valor = Integer.parseInt(entrada.next());
// vamos verificar se o valor está na faixa permitida
if(valor < 100 || valor > 999){
System.out.println("Valor fora da faixa permitida");
System.exit(0);
}
// vamos criar uma variável temporária para manter intacto o valor lido
int temp = valor;
int inverso = 0; // guardará o valor invertido
// vamos inverter o valor agora
while(temp != 0){
inverso = (inverso * 10) + (temp % 10);
temp = temp / 10;
}
// vamos mostrar o resultado
System.out.println("O valor original é: " + valor);
System.out.println("O valor invertido é: " + inverso);
}
|
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C++ - Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior delesQuantidade de visualizações: 968 vezes |
|
Pergunta/Tarefa: Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles. Esse programa deve possuir uma função para verificar qual é o maior número. Atenção: seu código deverá assegurar que os dois números informados pelo usuário sejam diferentes. Exiba uma mensagem na tela caso isso acontecer. Sua saída deverá ser parecida com: Informe o primeiro número inteiro: 6 Informe o segundo número inteiro: 3 O maior número é: 6 Veja a resolução comentada deste exercício em C++:
#include <string>
#include <iostream>
using namespace std;
// protótipo da função que receberá dois números inteiros
// e retornará o maior deles
int maior_numero(int num1, int num2);
int main(int argc, char *argv[]){
// variáveis usadas na resolução do problema
int num1, num2, maior;
// vamos pedir para o usuário informar os dois números
cout << "Informe o primeiro número inteiro: ";
cin >> num1;
cout << "Informe o segundo número inteiro: ";
cin >> num2;
// os números são iguais?
if(num1 == num2){
cout << "Erro. Os dois números são iguais.\n" << endl;
}
else{
// vamos chamar a função para obter o número maior
maior = maior_numero(num1, num2);
cout << "O maior número é: " << maior << "\n" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
// função que receberá dois números inteiros e retornará
// o maior deles
int maior_numero(int num1, int num2){
// o primeiro número é maior que o segundo?
if(num1 > num2){
return num1;
}
else{
return num2;
}
}
|
Python ::: Python para Engenharia ::: Engenharia Civil - Cálculo Estrutural |
Como calcular a Força Normal Adimensional ou Força Normal Reduzida de um pilar em Python - Python para Estruturas de Concreto ArmadoQuantidade de visualizações: 935 vezes |
![]() A Força Normal Adimensional de um pilar, também chamada de Força Normal Reduzida, é representada pela letra grega ν (ni) e nos dá uma idéia da magnitude da força normal que está sendo aplicada na seção transversal de um pilar. A fórmula para o cálculo da Força Normal Adimensional pode ser representada da seguinte forma: \[\nu = \frac{N_\text{sd}}{A_\text{c} \cdot \frac{f_\text{ck}}{\gamma _\text{c}}} \] Onde: ν é a Força Normal Adimensional sem unidade; Nd é a força normal de projeto, em kN. fck é a resistência característica do concreto em kN/cm2. Para converter de Mpa para kN/cm2 nós só precisamos dividir por 10. γc é o fator de ponderação do concreto e, em geral, possui o valor 1,4. Ao dividirmos o fck pelo γc nós chegamos ao fcd, que é resistência de cálculo do concreto. Note que o valor encontrado para a força normal adimensional ν (ni) é o valor que, junto com o μ (mi), forma a dupla de fatores para o ábaco de VENTURINI que nos retornará o valor de ω (ômega) que nos ajudará a calcular a área de aço (As) do pilar. Há duas considerações importantes em relação à Força Normal Adimensional ν de um pilar: a) Se ν < 0,30 -> pode ser adequado reduzir a seção transversal do pilar. b) Se ν > 1,30 -> pode ser conveniente aumentar a seção transversal do pilar. Agora vamos ver o código Python? Note que pediremos para o usuário informar as dimensões do pilar nas direções x e y em centímetros, a carga total no pilar em kN e o fck do concreto em Mpa e retornaremos o valor da força normal adimensional:
# método principal
def main():
# vamos pedir as dimensões do pilar
hx = float(input("Informe a dimensão do pilar na direção x (em cm): "))
hy = float(input("Informe a dimensão do pilar na direção y (em cm): "))
# vamos pedir a carga total no pilar em kN
Nk = float(input("Informe a carga total no pilar (em kN): "))
# agora vamos obter o FCK do concreto em MPa
fck = float(input("Informe o FCK do concreto (em MPa): "))
# vamos converter MPa para kN/cm2
fck = fck / 10
# vamos obter o menor lado do pilar (menor dimensão da seção transversal)
if (hx < hy):
b = hx
else:
b = hy
# agora vamos calcular a área do pilar em centímetros quadrados
area = hx * hy
# a área está de acordo com a norma NBR 6118 (ABNT, 2014)
if (area < 360):
print("A área do pilar não pode ser inferior a 360cm2")
return
# vamos calcular a força normal de projeto Nd
yn = 1.95 - (0.05 * b) # de acordo com a norma NBR 6118 (ABNT, 2014) Tabela 13.1
yf = 1.4 # regra geral para concreto armado
Nd = yn * yf * Nk
# vamos fixar o fator de ponderação do concreto em 1.4
yc = 1.4
# e agora calculamos a força normal adimensional do pilar
fna = Nd / (area * (fck / yc))
# e mostramos o resultado
print("\nA Força Normal Adimensional do pilar é: {0}".format(round(fna, 2)))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe a dimensão do pilar na direção x (em cm): 40 Informe a dimensão do pilar na direção y (em cm): 19 Informe a carga total no pilar (em kN): 841.35 Informe o FCK do concreto (em MPa): 30 A Força Normal Adimensional do pilar é: 0.72 |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





