![]() |
|
|
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 |
||
|
||
|
|
||
C# ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em C# dados dois pontos no plano cartesianoQuantidade de visualizações: 1921 vezes |
|
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x. Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano: ![]() Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é: \[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \] Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente. Veja agora o trecho de código na linguagem C# que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:
using System;
using System.Collections;
namespace Estudos {
class Program {
static void Main(string[] args) {
// x e y do primeiro ponto
Console.Write("Informe a coordenada x do primeiro ponto: ");
double x1 = double.Parse(Console.ReadLine());
Console.Write("Informe a coordenada y do primeiro ponto: ");
double y1 = double.Parse(Console.ReadLine());
// x e y do segundo ponto
Console.Write("Informe a coordenada x do segundo ponto: ");
double x2 = double.Parse(Console.ReadLine());
Console.Write("Informe a coordenada y do segundo ponto: ");
double y2 = double.Parse(Console.ReadLine());
// agora vamos calcular o coeficiente angular
double m = (y2 - y1) / (x2 - x1);
// e mostramos o resultado
Console.WriteLine("O coeficiente angular é: " + m);
Console.WriteLine("\nPressione qualquer tecla para sair...");
// pausa o programa
Console.ReadKey();
}
}
}
Ao executar este código em linguagem C# nós teremos o seguinte resultado: O coeficiente angular é: 0,6666666666666666 Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):
using System;
using System.Collections;
namespace Estudos {
class Program {
static void Main(string[] args) {
// x e y do primeiro ponto
Console.Write("Informe a coordenada x do primeiro ponto: ");
double x1 = double.Parse(Console.ReadLine());
Console.Write("Informe a coordenada y do primeiro ponto: ");
double y1 = double.Parse(Console.ReadLine());
// x e y do segundo ponto
Console.Write("Informe a coordenada x do segundo ponto: ");
double x2 = double.Parse(Console.ReadLine());
Console.Write("Informe a coordenada y do segundo ponto: ");
double y2 = double.Parse(Console.ReadLine());
// vamos obter o comprimento do cateto oposto
double cateto_oposto = y2 - y1;
// e agora o cateto adjascente
double cateto_adjascente = x2 - x1;
// vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
// (em radianos, não se esqueça)
double tetha = Math.Atan2(cateto_oposto, cateto_adjascente);
// e finalmente usamos a tangente desse ângulo para calcular
// o coeficiente angular
double tangente = Math.Tan(tetha);
// e mostramos o resultado
Console.WriteLine("O coeficiente angular é: " + tangente);
Console.WriteLine("\nPressione qualquer tecla para sair...");
// pausa o programa
Console.ReadKey();
}
}
}
Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta: 1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0; 2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0; 3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0). 4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como converter todo o conteúdo de uma string para letras minúsculas usando a função AnsiLowerCase() do DelphiQuantidade de visualizações: 13371 vezes |
Algumas vezes precisamos converter todo o conteúdo de uma string para letras minúsculas. Em Delphi isso pode ser feito com o auxílio da função AnsiLowerCase(). Esta função recebe uma string e retorna outra string com todos os caracteres minúsculos. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var nome: string; begin nome := 'OSMAR'; // vamos converter a string para letras minúsculas nome := AnsiLowerCase(nome); // exibe o resultado ShowMessage(nome); end; Note que esta função suporta caracteres de mais de um byte e com acentuações. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Revit C# ::: Dicas & Truques ::: Pontos e Coordenadas |
Como pedir para o usuário selecionar um ponto na área de desenho do Revit usando a função PickPoint() do objeto Selection da Revit C# APIQuantidade de visualizações: 619 vezes |
|
Em várias situações nós precisamos que o usuário indique um ponto na área de desenho do Revit, ou seja, as coordenadas x, y e z na qual nosso código Revit C# efetuará alguma ação. Para isso nós podemos usar a função PickPoint() do objeto Selection, que retorna um objeto da classe XYZ. O primeiro passo é acessar o documento ativo UIDocument, por meio de uma chamada a this.ActiveUIDocument. Em seguida nós definimos o tipo de snap usando a enumeração ObjectSnapTypes. Para este exemplo eu usei Endpoints e Intersections, mas você pode usar outros também, tais como Midpoints, Nearest, Intersections, etc. Uma vez obtido o tipo de snap, nós o usamos para a chamada à função PickPoint(). Feito isso nós só precisamos acessar o objeto XYZ retornado e mostrar as suas coordenadas. Veja o código Revit C# completo para o exemplo:
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;
namespace Estudos {
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.
TransactionMode.Manual)]
[Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")]
public partial class ThisApplication {
private void Module_Startup(object sender, EventArgs e) {
// vamos obter uma referência ao UIDocument ativo
UIDocument uidoc = this.ActiveUIDocument;
// agora mostramos uma mensagem para o usuário selecionar um
// elemento
TaskDialog.Show("Aviso", "Selecione um ponto na área de desenho");
// vamos escolher o tipo de snap
ObjectSnapTypes tiposSnap = ObjectSnapTypes.Endpoints |
ObjectSnapTypes.Intersections;
// agora o usuário seleciona um ponto e nós o guardamos na
// variável ponto, do tipo XYZ
XYZ ponto = uidoc.Selection.PickPoint(tiposSnap,
"Selecione um ponto de extremidade ou intersecção");
// acessamos as coordenadas do ponto
string coordenadas = "X = " + ponto.X + "\nY = " + ponto.Y +
"\nZ = " + ponto.Z;
// e mostramos o resultado
TaskDialog.Show("Revit", "As coordenadas do ponto são:\n" +
coordenadas);
}
private void Module_Shutdown(object sender, EventArgs e) {
// para fazer alguma limpeza de memória ou algo assim
}
#region Revit Macros generated code
private void InternalStartup() {
this.Startup += new System.EventHandler(Module_Startup);
this.Shutdown += new System.EventHandler(Module_Shutdown);
}
#endregion
}
}
Ao executar este código Revit C# você terá uma mensagem TaskDialog com um resultado parecido com: As coordenadas do ponto são: X = 4.7533122 Y = 11.429872 Z = 23.3871198 |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar a posição da última ocorrência de uma substring em uma string Java usando a função lastIndexOf() da classe StringQuantidade de visualizações: 1 vezes |
|
Em algumas situações nós precisamos pesquisar uma substring em uma string Java e retornar o índice da última ocorrência encontrada. Para isso nós podemos usar o método lastIndexOf() da classe String. Veja um exemplo completo de seu uso:
package estudos;
public class Estudos {
public static void main(String[] args) {
// Este exemplo mostra como pesquisar a última ocorrência
// de uma substring em uma string
String frase = "As pessoas costumam entender tudo sobre pessoas";
// verifica se a frase contém a palavra "pessoas" e
// retorna a posição de sua última ocorrência
int res = frase.lastIndexOf("pessoas");
if(res > 0){
System.out.println("A ultima ocorrencia foi encontrada na posicao: "
+ res);
}
else{
System.out.println("A substring nao foi encontrada");
}
}
}
Ao executar este código Java nós teremos o seguinte resultado: A ultima ocorrencia foi encontrada na posicao: 40 |
Java ::: Classes e Componentes ::: JList |
Java Swing para iniciantes - Como adicionar itens a uma JList em tempo de execuçãoQuantidade de visualizações: 23674 vezes |
|
Este exemplo mostra como inserir itens em uma JList do Java Swing em tempo de execução. O valor a ser inserido é informado em um JTextField. Veja que estamos usando a classe DefaultListModel e seu método addElement() para adicionar os novos itens. Veja a janela JFrame e os componentes usados para exemplificar esta funcionalidade: ![]() E agora veja o código Java Swing completo para o exemplo:
package arquivodecodigos;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Estudos extends JFrame{
JList lista;
JTextField campo;
public Estudos() {
super("A classe JList");
Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT));
// Cria um novo DefaultListModel
DefaultListModel modelo = new DefaultListModel();
// Cria a JList
lista = new JList();
// Atribui o DefaultListModel à JList
lista.setModel(modelo);
// Um botão que permite adicionar itens na JList
JButton btn = new JButton("Adicionar na JList");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
String valor = campo.getText();
if(valor.length() != 0){
((DefaultListModel)(lista.getModel()))
.addElement(valor);
campo.setText("");
campo.requestFocus();
}
}
}
);
// Adiciona a lista à janela
c.add(new JScrollPane(lista));
// Cria um JTextField e o adiciona à janela
campo = new JTextField(10);
c.add(campo);
// Adiciona o botão à janela
c.add(btn);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






