![]() |
|
|
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 ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a apótema de um polígono regular de N lados em PythonQuantidade de visualizações: 1078 vezes |
|
Uma das formas mais comuns de se obter a área de um polígono regular é usando a seguinte fórmula: \[\text{A} = \frac{1}{2} \cdot \text{p} \cdot \text{a} \] Onde: p = Perímetro, ou seja, a soma dos comprimentos de todos os lados. a = Apótema, isto é, uma parte que une o centro do polígono ao meio de qualquer lado que esteja perpendicular. Agora que já estamos alinhados, saiba que calcular a apótema de um polígono regular "na mão" é fácil, já que só precisamos medir a distância de dois lados opostos e dividir por dois ou traçar linhas cruzadas e medir a distância de um dos lados até a interseção dessas linhas. No entanto, em programação a coisa já é um pouco mais complicada. Nesta dica mostrarei como podemos realizar esta tarefa em Python. Para isso usaremos alguns truques de trigonometria. Comece analisando a seguinte imagem: ![]() Note que temos um pentágono com cada lado medindo 4 metros. Recorde que um pentágono é um polígono regular de 5 lados. Para deixar a dica mais didática eu coloquei também uma linha azul representando a apótema do polígono e as linhas cruzadas. Veja agora o código Python que recebe a quantidade de lados do polígono, o comprimento dos lados e retorna a apótema:
# vamos importar o módulo Math
import math
# função que calcula e retorna a apótema de um
# polítono regular
def calcular_apotema(lados, comprimento):
# a quantidade de lados e o comprimento deles
# não podem ser negativos
if lados < 0 or comprimento < 0:
return -1
# calculamos a apótema
return (comprimento / (2 * math.tan((180 / lados)
* math.pi / 180)))
# função principal do programa
def main():
# vamos ler a quantidade de lados
lados = int(input("Informe a quantidade de lados: "))
# vamos ler o comprimento dos lados
comprimento = int(input("Informe o comprimento dos lados: "))
# e agora calculamos a apótema dos polígono
apotema = calcular_apotema(lados, comprimento)
# e mostramos o resultado
print("A apótema do polígono é: {0}".format(apotema))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe a quantidade de lados: 5 Informe o comprimento dos lados: 4 A apótema do polígono é: 2.7527638409423476 |
Java ::: Java para Engenharia ::: Unidades de Medida |
Como converter Metros Quadrados em Quilômetros Quadrados em Java - Java para Física e EngenhariaQuantidade de visualizações: 721 vezes |
|
Em muitas situações nós temos uma medida de área em m2 e queremos transformá-la em km2, ou seja, converter Metros Quadrados para Quilômetros Quadrados. Para isso só precisamos dividir os metros quadrados por 1.000.000. Veja a fórmula: \[\text{Quilômetros Quadrados} = \frac{\text{Metros Quadrados}}{1.000.000} \] Agora veja o código Java que pede para o usuário informar a medida de área em metros quadrados e a converte para quilômetros quadrados. Note que mostrei como exibir o resultado em notação científica e sem notação científica:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos ler a medida em metros quadrados
System.out.print("Informe os metros quadrados: ");
double m_quadrados = Double.parseDouble(entrada.nextLine());
// agora calculamos os quilometros quadrados
double km_quadrados = m_quadrados / 1000000.00;
// e mostramos o resultado
System.out.println("Você informou " + m_quadrados +
" metros quadrados.");
System.out.println("Isso equivale a " + km_quadrados +
" quilometros quadrados.");
System.out.printf("Sem notação científica: %f\n",
km_quadrados);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Informe os metros quadrados: 80 Você informou 80.0 metros quadrados. Isso equivale a 8.0E-5 quilômetros quadrados. Sem notação científica: 0,000080 |
AutoCAD .NET API C# ::: Dicas & Truques ::: Polyline - Polilinha |
Como selecionar uma polilinha no AutoCAD e mostrar as coordenadas de suas vértices usando a AutoCAD .NET C# APIQuantidade de visualizações: 890 vezes |
|
Em várias situações nós precisamos efetuar cálculos usando os vértices de uma polilinha. Nesta dica eu mostro como podemos pedir para o usuário selecionar uma polilinha na área de desenho do AutoCAD e mostrar as coordenadas x e y de cada um dos vértices. No código abaixo eu trato duas formas de polilinhas no AutoCAD: a polilinha 2D Polyline e a polilinha 3D, representada pelo objeto Polyline3d. Note que as formas de se extrair os vértices desses dois objetos são completamente diferentes. Se a polilinha for 2D, seus vértices são extraído usando-se a função GetPoint2dAt(), que retorna um objeto Point2d. Se a polilinha for 3D, ela será representada por um objeto da classe Polyline3d, e seus vértices são retornados como objetos PolylineVertex3d a partir de uma chamada à função GetObject() da classe Transaction. Veja o código AutoCAD .NET C# API completo para o exemplo:
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
[assembly: CommandClass(typeof(PluginEstudos.Class1))]
namespace PluginEstudos {
public class Class1 {
[CommandMethod("estudos")]
public void Estudos() {
// vamos obter o documento atual
Document doc = Application.DocumentManager.MdiActiveDocument;
// vamos obter a base de dados
Database db = doc.Database;
// vamos pedir para o usuário selecionar uma polilinha
PromptEntityResult resultado = doc.Editor.GetEntity(
"Selecione uma polilinha: ");
// a seleção foi feita com sucesso
if (resultado.Status != PromptStatus.OK) {
Application.ShowAlertDialog("Nenhum elemento selecionado.");
return;
}
// iniciamos uma transação
using (Transaction trans = db.TransactionManager.StartTransaction()) {
// obtemos a polilinha selecionada
DBObject objeto = trans.GetObject(resultado.ObjectId, OpenMode.ForRead);
// vamos testar se a polilinha é do tipo leve ou otimizada
Polyline polilinha2d = objeto as Polyline;
if (polilinha2d != null) {
// vamos percorrer todos os vértices, um de cada vez
int numero_vertices = polilinha2d.NumberOfVertices;
for (int i = 0; i < numero_vertices; i++) {
// vamos obter um objeto Point2d ou Point3d
Point2d ponto = polilinha2d.GetPoint2dAt(i);
// e escrevemos na janela de comandos
doc.Editor.WriteMessage("\nX = " + ponto.X.ToString("0.00") +
"; Y = " + ponto.Y.ToString("0.00"));
}
}
// é uma polilinha do tipo pesada, ou heavy
else {
Polyline3d polilinha3d = objeto as Polyline3d;
if (polilinha3d != null) {
// percorremos cada um dos vértices
foreach (ObjectId id_vertice in polilinha3d) {
PolylineVertex3d vertice3d = (PolylineVertex3d)trans.GetObject(
id_vertice, OpenMode.ForRead);
// e escrevemos na janela de comandos
doc.Editor.WriteMessage("\nX = " + vertice3d.Position.X.ToString("0.00") +
"; Y = " + vertice3d.Position.Y.ToString("0.00"));
}
}
}
// fechamos a transação
trans.Commit();
}
}
}
}
Ao executar este código AutoCAD .NET C# API nós teremos o seguinte resultado: Command: Selecione uma polilinha: X = 168.91; Y = 159.91 X = 415.17; Y = 126.24 X = 317.08; Y = 24.18 X = 80.53; Y = 104.29 |
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como acessar variáveis de instâncias para escrita em Ruby sem a necessidade de métodos mutatórios usando a função attr_accessorQuantidade de visualizações: 7849 vezes |
|
Por padrão, variáveis de instância em Ruby só podem ser acessadas para escrita usando métodos mutatórios, ou seja, uma variável de instância @nome deve ser modificada usando um método definir_nome. É possível dispensar o uso de métodos mutatórios empregando o método attr_accessor nos nomes das variáveis que poderão ser acessadas e modificadas. Lembre-se que, ao contrário de attr_reader, o método attr_accessor possibilita o acesso à variável de instância tanto para leitura quanto para escrita. Veja um exemplo:
# Definição da classe Cliente
class Cliente
attr_accessor :nome, :idade
def initialize(nome, idade)
@nome = nome
@idade = idade
end
end
# Cria uma instância da classe Cliente e inicializa as
# variáveis de instância @nome e @idade
cliente = Cliente.new("Osmar J. Silva", 35)
# Acessa as variáveis de instância sem a necessidade
# de métodos acessórios
puts cliente.nome
puts cliente.idade
# Modifica as variáveis de instância sem a necessidade
# de métodos mutatórios
cliente.nome = "Carlos da Silva"
cliente.idade = 56
# Obtém os resultados
puts cliente.nome
puts cliente.idade
Se tentarmos acessar e modificar as variáveis nome e idade diretamente, sem os métodos mutatórios e a função attr_accessor nós teremos um erro do tipo: Traceback (most recent call last): estudos.arb:15:in `<main>': undefined method `nome' for #<Cliente:0x0000029a7211f080 @nome="Osmar J. Silva", @idade=35> (NoMethodError) |
Nossas 20 dicas & truques de programação mais populares |
|
Ruby - Como inserir uma substring em uma determinada posição de uma string em Ruby usando a função insert() Python - Como calcular o coeficiente angular de uma reta em Python dados dois pontos no plano cartesiano JavaScript - Como remover os espaços no final de uma string em JavaScript usando uma função trim_final() personalizada |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Como usar a classe Character da linguagem Java para tratar caracteres individuais em seus programas |
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 |





