![]() |
|
|
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 ::: Trigonometria - Funções Trigonométricas |
Como calcular o seno de um número ou ângulo em C usando a função sin()Quantidade de visualizações: 5387 vezes |
|
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno 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 seno. 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 seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula: \[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \] Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem C. Esta função, disponível no header math.h, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]){
printf("Seno de 0 = %f", sin(0));
printf("\nSeno de 1 = %f", sin(1));
printf("\nSeno de 2 = %f", sin(2));
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado: Seno de 0 = 0.000000 Seno de 1 = 0.841471 Seno de 2 = 0.909297 Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo: ![]() |
JavaScript ::: Dicas & Truques ::: Validação de Formulários |
Como validar um endereço de e-mail usando expressões regulares em JavaScriptQuantidade de visualizações: 29600 vezes |
|
Nesta dica eu mostro como é possível validar um endereço de e-mail em JavaScript usando expressões regulares. Não se assuste com o tamanho da expressão regular. Ela pode ser um pouco complexa mesmo, mas é a mais completa que você vai encontrar na internet, e consegue validar praticamente todos os tipos de endereço de e-mails que o usuário poderá informar. É claro que você não pode se descuidar da validação do lado do servidor, pois há situações nas quais o usuário consegue burlar a validação somente do lado do cliente, ou seja, do lado do navegador. Veja o código JavaScript completo para o exemplo:
<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>
<form name="cadastro" onSubmit="return validar()">
Informe seu E-Mail:<br>
<input type="text" name="email">
<input type="submit" value="Enviar!">
</form>
<script language="JavaScript">
var valido;
function validar(){
var str = document.cadastro.email.value;
var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
if(filter.test(str)){
alert("Este endereço de e-mail é válido!");
valido = true;
}
else{
alert("Este endereço de e-mail não é válido!");
document.cadastro.email.focus();
valido = false;
}
return valido;
}
</script>
</body>
</html>
|
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing - Como detectar as teclas Insert ou Delete usando o método getKeyCode() da classe KeyEvent do JavaQuantidade de visualizações: 3731 vezes |
|
Em algumas situações nós precisamos detectar o pressionamento das teclas Insert ou Delete. Para isso podemos usar o método getKeyCode() da classe KeyEvent e testar se o código equivale a uma das constantes KeyEvent.VK_INSERT (Ins) ou KeyEvent.VK_DELETE (Del). Veja um trecho de código no qual testamos se alguma destas duas teclas foi pressionada:
package estudos;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Janela extends JFrame implements KeyListener{
public Janela(){
super("Eventos do Teclado");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
// vamos adicionar o objeto listener
addKeyListener(this);
setSize(350, 250);
setVisible(true);
}
@Override
public void keyPressed(KeyEvent e){
// a tecla Insert foi pressionada?
if(e.getKeyCode() == KeyEvent.VK_INSERT){
JOptionPane.showMessageDialog(null, "A tecla Insert foi pressionada");
}
// a tecla Enter Delete pressionada?
else if(e.getKeyCode() == KeyEvent.VK_DELETE){
JOptionPane.showMessageDialog(null, "A tecla Delete foi pressionada");
}
else{
JOptionPane.showMessageDialog(null, "Outra tecla foi pressionada");
}
}
@Override
public void keyReleased(KeyEvent e){
// sem implementação
}
@Override
public void keyTyped(KeyEvent e){
// sem implementação
}
public static void main(String args[]){
Janela j = new Janela();
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
É importante observar que as teclas Insert e Delete podem ser detectadas somente nos eventos keyPressed e keyReleased. |
Delphi ::: VCL - Visual Component Library ::: TEdit |
Como habilitar ou desabilitar um TEdit do Delphi usando a função EnableWindow() da API do WindowsQuantidade de visualizações: 12276 vezes |
|
Embora o Delphi já nos forneça as ferramentas necessárias para habilitar ou desabilitar um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função EnableWindow() com os valores true ou false. A função EnableWindow() possui a seguinte assinatura em C/C++: BOOL EnableWindow( HWND hWnd, BOOL bEnable ); No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal:
// Protótipo
{$EXTERNALSYM EnableWindow}
function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall;
// Implementação
function EnableWindow; external user32 name 'EnableWindow';
Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e um valor BOOL. Se fornecermos false, a caixa de texto será desabilitada. Veja:
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos desabilitar o TEdit usando a função EnableWindow()
// com o valor false
if EnableWindow(Edit1.Handle, False) = True then
begin
ShowMessage('A caixa de texto foi desabilitada com sucesso.');
end;
end;
Para habilitar a caixa de texto novamente, só precisamos fornecer o valor true para o parâmetro bEnable:
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos habilitar o TEdit usando a função EnableWindow()
// com o valor true
if EnableWindow(Edit1.Handle, True) = True then
begin
ShowMessage('A caixa de texto foi habilitada com sucesso.');
end;
end;
É importante observar que o retorno da função EnableWindow será False se tentarmos habilitar uma caixa de texto que já está habilitada ou tentarmos desabilitar uma caixa de texto que já está desabilitada. |
Java ::: Dicas & Truques ::: Threads |
Threads em Java - Como usar a interface Runnable da Java API em suas aplicaçõesQuantidade de visualizações: 18524 vezes |
|
A interface pública Runnable deve ser implementada em nossas classes quando queremos que instâncias destas possam ser executadas por uma thread. Esta interface está no pacote java.lang e entre as classes que a implementam podemos citar AsyncBoxView.ChildState, FutureTask, RenderableImageProducer, Thread e TimerTask. Esta interface apresenta apenas um método, a saber: public void run(); Este interface foi idealizada para fornecer um protocolo comum para objetos que têm como objetivo executar determinadas porções de código enquanto ativos. Por exemplo, Runnable é implementada pela classe Thread. Estar ativa significa que uma thread foi iniciada e ainda não finalizou sua tarefa. Além disso, a interface Runnable fornece meios para que uma classe esteja ativa sem fazer sub-classe de Thread. Uma classe que implementa Runnable pode ser executada sem fazer sub-classe de Thread criando-se uma instância de Thread e fornecendo tal classe como alvo. Na maioria dos casos, a interface Runnable deve ser usada se estivermos planejando apenas sobrescrever o método run() e nenhum outro método da classe Thread. Isso é importante, uma vez que não devemos extender classes a menos que tenhamos a intenção de modificar ou extender o comportamento fundamental da classe. Veja uma aplicação na qual temos uma classe que implementa Runnable. Note como criamos instâncias de Thread e fornecemos nossa classe como alvo:
// criamos uma classe que servirá como thread
class MinhaThread implements Runnable{
private String nome;
public MinhaThread(String nome){
this.nome = nome;
}
public void run(){
for(int i = 1; i <= 20; i++){
System.out.println(nome + ": " + i);
}
}
}
public class Estudos{
public static void main(String[] args){
// vamos criar duas threads
MinhaThread mt1 = new MinhaThread("Thread 1");
Thread t1 = new Thread(mt1);
t1.start();
MinhaThread mt2 = new MinhaThread("Thread 2");
Thread t2 = new Thread(mt2);
t2.start();
System.exit(0);
}
}
|
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 |





