![]() |
|
|
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 - Construção Civil |
||
|
||
|
|
||
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Python - Como percorrer todos os elementos de um vetor de inteiros e exibir a soma de seus valoresQuantidade de visualizações: 4489 vezes |
|
Pergunta/Tarefa: Considere o seguinte vetor de inteiros: // um vetor de inteiros contendo sete elementos valores = [4, 5, 1, 8, 2, 2, 10] A soma dos valores do vetor é: 32 Resposta/Solução:
# método principal
def main():
# um vetor de inteiros contendo sete elementos
valores = [4, 5, 1, 8, 2, 2, 10]
# o primeiro passo é criar uma variável que vai receber a soma
# dos valores dos elementos
soma = 0
# agora vamos usar uma laço for para percorrer todos os elementos
# do vetor, obter o valor do elemento atual e adicionar ao valor atual
# da variável soma
for valor in valores:
soma = soma + valor
# vamos exibir a soma dos valores do vetor
print("A soma dos valores do vetor é: {0}".format(soma))
if __name__== "__main__":
main()
|
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Pesquisa Operacional |
Exercício Resolvido de Python - Programação Linear em Python - Uma madeireira deseja obter 1000kg de lenha, 2000kg de madeira para móveis e 50 metrosQuantidade de visualizações: 1084 vezes |
|
Pergunta/Tarefa: Este exercício de Python aborda o uso da biblioteca PuLP para resolver um problema de Pesquisa Operacional usando Programação Linear. Uma madeireira deseja obter 1000kg de lenha, 2000kg de madeira para móveis e 50 metros quadrados de casca de árvore, dispondo de carvalho e pinheiro, sendo que o carvalho gera 40kg de lenha, 150kg de madeira e 3 metros quadrados de casca aproveitável; o pinheiro 100kg de lenha, 60kg de madeira e 8 metros quadrados de casca aproveitável. Formule o problema, de modo a minimizar os custos, sabendo que cada carvalho custa R$ 1500,00 para a empresa e cada pinheiro R$ 1200,00. Em seguida use a API de Programação Linear do PuLP para resolver o problema e mostrar a melhor solução. Sua saída deverá ser parecida com: x: 11.111111 y: 5.5555556 Antes de passarmos para o código Python é importante entendermos e fazermos a modelagem do problema. Neste exercício busca-se encontrar o custo mínimo. Assim, a nossa função objetivo será dada pela combinação dos preços do carvalho e do pinheiro. Veja: Zmin = 1500x + 1200y Aqui nós definimos a variável x para o carvalho e a variável y para o pinheiro. Agora que já temos a função Z, o próximo passo é analizarmos as restrições. Note que a empresa precisa de 1000kg de lenha. O carvalho gera 40kg de lenha, enquanto o pinheiro gera 100kg. Então nossa primeira restrição é: R1 = 40x + 100y >= 1000 Para a segunda restrição nós temos que a empresa precisa de 2000kg de madeira. O carvalho gera 150kg de madeira, enquanto o pinheiro gera 60kg. Assim, nossa segunda restrição é: R2 = 150x + 60y >= 2000 Finalmente, para a terceira restrição, sabemos que a empresa necessita de 50 metros quadrados de casca de árvore. O carvalho gera 3 metros quadrados de casca aproveitável, enquanto o pinheiro gera 8 metros quadradros. Então a terceira restrição é: R3 = 3x + 8y >= 50 As restrições 4 e 5 dizem que tanto o x quanto o y devem ser maiores ou iguais a zero, e que ambos devem pertencer aos números reais. Veja agora como usamos os dados de formulação para resolver este exercício usando Python e a biblioteca PuLP:
# vamos importar as ferramentas necessárias
from pulp import LpMinimize, LpProblem, LpVariable
# método principal
def main():
# vamos criar o modelo
modelo = LpProblem(name="Pesquisa Operacional em Python", sense=LpMinimize)
# agora inicializamos as variáveis de decisão
x = LpVariable(name="x", lowBound=0)
y = LpVariable(name="y", lowBound=0)
# vamos adicionar as restrições de acordo com a formulação do problema
modelo += (40 * x + 100 * y >= 1000, "R1")
modelo += (150 * x + 60 * y >= 2000, "R2")
modelo += (3 * x + 8 * y >= 50, "R3")
# definimos a função objetivo e a adicionamos ao modelo
funcao_objetivo = 1500 * x + 1200 * y
modelo += funcao_objetivo
# e tentamos resolver o problema
modelo.solve()
# assumindo que o problema foi resolvido com sucesso, vamos
# mostrar os valores das variáveis x e y
for var in modelo.variables():
print(f"{var.name}: {var.value()}")
if __name__== "__main__":
main()
Note como o PuLP nos deu o custo mínimo de 23333.33 para atingir o objetivo desejado pela madeireira. |
Java ::: Classes e Componentes ::: JTable |
Apostila Java Swing - Como alterar o valor de uma célula da JTable em tempo de execuçãoQuantidade de visualizações: 3 vezes |
|
Em algumas situações nós precisamos alterar ou definir o valor de uma determinada célula de uma tabela JTable em tempo de execução, ou seja, enquanto o programa Java Swing estiver sendo executado. Para isso nós podemos usar o método setValueAt() da classe JTable. Tudo que precisamos fazer é fornecer o novo valor para a célula, assim como os índice da linha e da coluna na qual ela está localizada. Veja o código Java completo:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Estudos extends JFrame{
public Estudos(){
super("Exemplo de uma tabela simples");
// colunas da tabela
String[] colunas = {"Cidade",
"Estado", "Habitantes"};
// conteúdo da tabela
Object[][] conteudo = {
{"Goiânia", "GO", "43.023.432"},
{"São Paulo", "SP", "5.343.234"},
{"Rio de Janeiro", "RJ", "6.434.212"},
{"Jussara", "GO", "87.454"},
{"Barra do Garças", "MT", "64.344"}
};
// constrói a tabela
final JTable tabela = new JTable(conteudo, colunas);
tabela.setPreferredScrollableViewportSize(new
Dimension(350, 50));
Container c = getContentPane();
c.setLayout(new FlowLayout());
JButton btn = new JButton("Alterar valor
da 2ª célula - 1ª linha");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
tabela.setValueAt("Teste", 0, 1);
}
}
);
JScrollPane scrollPane = new JScrollPane(tabela);
c.add(scrollPane);
c.add(btn);
setSize(400, 300);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como ler o conteúdo de um arquivo uma linha de cada vez usando a função fgets() da linguagem CQuantidade de visualizações: 29344 vezes |
A função fgets(), disponível no header cstdio ou stdio.h, é usada para ler caracteres de um arquivo e armazená-los em um vetor de caracteres. Esta função recebe três argumentos. Veja:char *fgets(char *buffer, int num, FILE *file); No exemplo abaixo usamos um laço while() para ler o conteúdo até que o final de arquivo EOF seja encontrado. Desta forma, como sabemos que cada linha no arquivo termina com um marcador de fim de linha, fica fácil ler cada linha. É claro que se a linha sendo lida for maior que o tamanho do buffer, o efeito não será conseguido. Observe ainda que cada linha lida contém o caractere de fim de linha anexado a ela:
#include <stdio.h>
#include <stdlib.h>
const int TAM_BUFFER = 255; // quantidade de caracteres
// a serem lidos no buffer de cada vez
int main(int argc, char *argv[])
{
FILE *arquivo = fopen("c:\\testes.txt", "r");
char buffer[TAM_BUFFER];
// testa se o arquivo foi aberto com sucesso
if(arquivo != NULL){
// vamos usar um laço para ler o conteúdo do arquivo
// e armazenar no buffer
while(fgets(buffer, TAM_BUFFER, arquivo)){
printf("%s\n", buffer);
}
fclose(arquivo); // libera o ponteiro para o arquivo
}
else{
printf("Nao foi possivel abrir o arquivo.");
}
printf("\n\n");
system("PAUSE");
return 0;
}
|
Ruby ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cosseno de um ângulo em Ruby usando o método cos() da biblioteca Math - Calculadora de cosseno em RubyQuantidade de visualizações: 1302 vezes |
|
Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem: ![]() Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula: \[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \] Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem Ruby. Esta método, que faz parte da biblioteca Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: puts "Cosseno de 0 = " + Math.cos(0).to_s puts "Cosseno de 1 = " + Math.cos(1).to_s puts "Cosseno de 2 = " + Math.cos(2).to_s Ao executar este código Ruby nós teremos o seguinte resultado: Cosseno de 0 = 1.0 Cosseno de 1 = 0.5403023058681398 Cosseno de 2 = -0.4161468365471424 Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo: ![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Ruby |
Veja mais Dicas e truques de Ruby |
Dicas e truques de outras linguagens |
|
Java - Como usar null em Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






