![]() |
|
|
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 |
||
|
||
|
|
||
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como excluir todos os itens de uma ListBox do Delphi - Como remover todos os itens da ListBox usando a função ClearQuantidade de visualizações: 14950 vezes |
Em algumas situações nós precisamos excluir todos os itens de uma ListBox. Para tais situações podemos usar o método Clear da classe ListBox. Veja:procedure TForm1.Button2Click(Sender: TObject); begin // vamos excluir todos os itens da ListBox ListBox1.Clear; // poderíamos também usar // ListBox1.Items.Clear; end; Note que podemos também chamar o método Clear diretamente no objeto Items da ListBox, embora a chamada na ao método Clear da lista seja mais comum. É possível também excluir os itens de uma ListBox individualmente chamando a função Delete() no objeto Items. Neste caso nós usamos um laço e percorremos todos os elementos da lista e os excluímos um a um. É importante, para estes casos, lembrarmos de percorrer os itens do último para o primeiro. Caso esta regra não seja obedecida, poderá haver erros de acesso durante a exclusão. Veja o código:
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
begin
// vamos percorrer todos os itens da ListBox do último
// para o primeiro
for i := ListBox1.Items.Count - 1 downto 0 do
begin
// vamos excluir o item no índice correspondente
ListBox1.Items.Delete(i);
end;
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em Java dados dois pontos no plano cartesianoQuantidade de visualizações: 2121 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 Java 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:
package arquivodecodigos;
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);
// coordenadas dos dois pontos
double x1, y1, x2, y2;
// guarda o coeficiente angular
double m;
// x e y do primeiro ponto
System.out.print("Coordenada x do primeiro ponto: ");
x1 = Double.parseDouble(entrada.nextLine());
System.out.print("Coordenada y do primeiro ponto: ");
y1 = Double.parseDouble(entrada.nextLine());
// x e y do segundo ponto
System.out.print("Coordenada x do segundo ponto: ");
x2 = Double.parseDouble(entrada.nextLine());
System.out.print("Coordenada y do segundo ponto: ");
y2 = Double.parseDouble(entrada.nextLine());
// vamos calcular o coeficiente angular
m = (y2 - y1) / (x2 - x1);
// mostramos o resultado
System.out.println("O coeficiente angular é: " + m);
System.out.println("\n\n");
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 3 Coordenada y do primeiro ponto: 6 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 10 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__$):
package arquivodecodigos;
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);
// coordenadas dos dois pontos
double x1, y1, x2, y2;
// guarda os comprimentos dos catetos oposto e adjascente
double cateto_oposto, cateto_adjascente;
// guarda o ângulo tetha (em radianos) e a tangente
double tetha, tangente;
// x e y do primeiro ponto
System.out.print("Coordenada x do primeiro ponto: ");
x1 = Double.parseDouble(entrada.nextLine());
System.out.print("Coordenada y do primeiro ponto: ");
y1 = Double.parseDouble(entrada.nextLine());
// x e y do segundo ponto
System.out.print("Coordenada x do segundo ponto: ");
x2 = Double.parseDouble(entrada.nextLine());
System.out.print("Coordenada y do segundo ponto: ");
y2 = Double.parseDouble(entrada.nextLine());
// vamos obter o comprimento do cateto oposto
cateto_oposto = y2 - y1;
// e agora o cateto adjascente
cateto_adjascente = x2 - x1;
// vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
// (em radianos, não se esqueça)
tetha = Math.atan2(cateto_oposto, cateto_adjascente);
// e finalmente usamos a tangente desse ângulo para calcular
// o coeficiente angular
tangente = Math.tan(tetha);
// mostramos o resultado
System.out.println("O coeficiente angular é: " + tangente);
System.out.println("\n\n");
System.exit(0);
}
}
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. |
Java ::: Dicas & Truques ::: Mouse e Teclado |
Java Swing para iniciantes - Como detectar eventos do teclado em uma janela JFrame do Java SwingQuantidade de visualizações: 13904 vezes |
|
Eventos do teclado podem ser detectados em uma janela JFrame do Java Swing por meio da interface KeyListener. Neste exemplo temos uma JFrame que estende essa interface e fornece implementação para o seu método keyPressed(). Temos também um controle JTextArea desabilitado, o qual usamos para exibir a letra e o código da tecla pressionada. Veja o resultado na imagem abaixo: ![]() E aqui está o código Java Swing completo para o exemplo:
package arquivodecodigos;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Estudos extends JFrame implements KeyListener{
private JTextArea textArea;
public Estudos(){
super("Eventos do Mouse e Teclado");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
textArea = new JTextArea(100, 150);
textArea.setEnabled(false);
textArea.setDisabledTextColor(Color.BLACK);
c.add(textArea);
addKeyListener(this);
setSize(350, 250);
setVisible(true);
}
public void keyPressed(KeyEvent e){
textArea.setText(
String.format("Tecla: %s - Código Unicode: %d",
e.getKeyText(e.getKeyCode()), e.getKeyCode()));
}
public void keyReleased(KeyEvent e){
// sem implementação
}
public void keyTyped(KeyEvent e){
// sem implementação
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
PostgreSQL ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados) |
Como excluir uma base de dados no PostgreSQL usando o comando DDL DROP DATABASEQuantidade de visualizações: 14534 vezes |
|
Em algumas situações precisamos excluir uma base de dados no PostgreSQL. Isso pode ser feito por meio do uso do comando DLL DROP DATABASE. Este comando pode ser disparado via linha de comando SQL Shell (psql), na janela de Query do pgAdmin ou a partir de uma linguagem de programação. No entanto, é importante saber que você não conseguirá excluir uma base de dados que você ou outros usuários estejam conectados no momento. Use o comando DROP DATABASE com cuidado. Ao dispará-lo, os dados contidos na base de dados (tabelas, views, funções, triggers, etc) serão perdidos para sempre. Veja como podemos usar o comando DROP DATABASE para excluir uma base de dados chamada "estudos": DROP DATABASE estudos; Se você visualizar uma mensagem parecida com: Query returned successfully with no result in 261 ms. Então poderá estar certo de que a base de dados foi removida com sucesso. Se tentarmos excluir uma base de dados na qual alguém ainda está conectado, o PostgreSQL abortará a operação e nos exibirá a seguinte mensagem de erro: ERRO: banco de dados "estudos" está sendo acessado por outros usuários DETAIL: Há 1 outra sessão utilizando o banco de dados. ********** Error ********** ERRO: banco de dados "estudos" está sendo acessado por outros usuários SQL state: 55006 Detail: Há 1 outra sessão utilizando o banco de dados. ERRO: banco de dados "estudos" não existe ********** Error ********** ERRO: banco de dados "estudos" não existe SQL state: 3D000 DROP DATABASE IF EXISTS estudos; Agora o PostgreSQL trocará a mensagem de erro por uma mensagem de advertência: NOTA: banco de dados "estudos" não existe, ignorando Query returned successfully with no result in 14 ms. |
Java ::: Projetos Java Completos - Códigos Fonte Completos Java ::: Projetos Java Programação Orientada a Objetos - Exemplos Java |
Sistema para Biblioteca usando Programação Orientada a Objetos em Java - Projeto completo com código fonte - Versão consoleQuantidade de visualizações: 16684 vezes |
|
Sistema para Gestão de Biblioteca usando Programação Orientada a Objetos em Java - Projeto completo com código fonte - Versão console Controle de Biblioteca - Sobre este projeto Java ![]() Nesta dica apresento a idéia de um Controle de Gestão de Biblioteca em Java usando Programação Orientada a Objetos. Trata-se de um programa com código fonte em duas versões console. Na primeira versão temos os dados sendo gerenciados por objetos ArrayList. Na segunda versão nós tiramos proveito dos métodos dos métodos readObject() e writeObject() e da interface Serializable para implementar a serialização de objetos em Java. Dessa forma, os dados do sistema podem ser salvos e carregados todas as vezes que o sistema for iniciado. Um Controle de Gestão de Biblioteca é um projeto ideal para dominar a programação orientada a objetos em Java, além de permitir colocar em prática várias coisas que estudamos na linguagem e não temos a oportunidade de implementar. Assim, este código, se bem estudado e bem entendido, pode render um controle de biblioteca pronto para ser vendido no mercado ou implementado em sua própria escola ou faculdade. Basta conectar as funcionalidades das classes a um banco de dados tal como o MySQL e adicionar mais alguns pequenos detalhes. O Diagrama de Classes Java Antes de falarmos mais sobre o projeto do Sistema de Biblioteca, dê uma boa olhada no seu diagrama de classes: ![]() Como a aplicação está estruturada? Como podemos ver no diagrama de classes, todo o controle do sistema é feito a partir da classe Biblioteca, que contém objetos da classe ArrayList para guardar objetos das classes Usuario, Autor, Editora, Livro, Emprestimo e Multa. O relacionamento entre os objetos das classes envolvidas está bem definido no código fonte, com comentários e menus individuais para o gerenciamento de cada parte que compõe o controle de biblioteca apresentado. Um empréstimo envolve um livro e um usuário, e pode gerar uma multa caso a devolução seja feita fora do prazo. A multa é gerada somente na devolução. Em sistemas reais, o usuário não pode fazer uma nova locação caso a multa não seja paga. Deixamos como sugestão e desafio, essa implementação no código. No entanto, já fizemos todo o restante do cálculo para você, ou seja, fizemos a diferença entre a data do empréstimo e sua devolução e geramos a multa, se houver, já com o devido valor a ser pago. Um livro está relacionado a um autor e a uma editora. Inicialmente o livro é cadastrado como disponível. Porém, esse status é alterado para indisponível quando ele está envolvido em um empréstimo, e novamente disponível quando é feita a devolução. Tudo isso é feito por meio de vários menus de opções, como mostro a seguir. As opções de menu para o gerencimento do sistema da biblioteca O menu principal foi escrito usando-se o seguinte código:
// método que exibe o menu principal do sistema
public void menuPrincipal(){
Scanner entrada = new Scanner(System.in);
while(true){
limparTela();
System.out.println("\n:: B I B L I O T E C A ::\n");
System.out.println("Bem-vindo(a) ao sistem.
Escolha a opção desejada");
System.out.println("1 - Livros");
System.out.println("2 - Autores");
System.out.println("3 - Editoras");
System.out.println("4 - Usuários");
System.out.println("5 - Empréstimos");
System.out.println("6 - Multas");
System.out.println("7 - Sair");
System.out.print("Sua opção: ");
// lê a opção do usuário
int opcao = Integer.parseInt(entrada.nextLine());
switch(opcao){
case 1:
// chama o menu de gerenciamento de livros
menuGerenciarLivros();
break;
case 2:
// chama o menu de gerenciamento de autores
menuGerenciarAutores();
break;
case 3:
// chama o menu de gerenciamento de editoras
menuGerenciarEditoras();
break;
case 4:
// chama o menu de gerenciamento de usuários
menuGerenciarUsuarios();
break;
case 5:
// chama o menu de gerenciamento de emprestimos
menuGerenciarEmprestimos();
break;
case 6:
// chama o menu de gerenciamento de multas
menuGerenciarMultas();
break;
case 7:
System.out.println("\nObrigado por usar o
Sistema de Biblioteca\n");
System.exit(0);
}
}
}
Note que cada case do switch do menu principal chama um método que será responsável por exibir um menu individual para o gerencimento da classe correspondente. Veja, por exemplo, o menu para cadastrar um novo usuário na biblioteca:
// menu para cadatrar, listar, pesquisar, excluir
// e atualizar os usuários da biblioteca
public int menuGerenciarUsuarios(){
Usuario temp; // serve para várias operações neste menu
// serve para as pesquisas dos usuários
String pesquisaUsuario;
Scanner entrada = new Scanner(System.in);
// mostra o menu de forma repetitiva até o usuário
// usar a opção de sair
while(true){
// tire caso não funcionar no seu sistema operacional
limparTela();
System.out.println("\n:: G E R E N C I A R U S U Á R I O S ::\n");
System.out.println("Escolha a opção desejada");
System.out.println("1 - Novo Usuário");
System.out.println("2 - Listar Usuários");
System.out.println("3 - Pesquisar Usuário");
System.out.println("4 - Excluir Usuário");
System.out.println("5 - Atualizar Usuário");
System.out.println("6 - Voltar Menu Anterior");
System.out.print("Sua opção: ");
// lê a opção do usuário
int opcao = Integer.parseInt(entrada.nextLine());
switch(opcao){
case 1: // vamos cadastrar um novo usuário
System.out.print("\nNome: ");
String nomeUsuario = entrada.nextLine();
System.out.print("Idade: ");
int idadeUsuario = Integer.parseInt(entrada.nextLine());
System.out.print("Sexo: ");
char sexoUsuario = entrada.nextLine().charAt(0);
// vamos incrementar o contador de usuários
Usuario.contadorUsuarios++;
// agora vamos criar um novo objeto da classe Usuario
Usuario u = new Usuario(Usuario.contadorUsuarios,
nomeUsuario, idadeUsuario, sexoUsuario);
// e o adicionamos no ArrayList de usuários
usuarios.add(u);
// e finalmente mostramos uma mensagem de sucesso.
System.out.println("\nO usuário foi cadastrado com sucesso");
salvarDadosArquivo(); // salva os dados no arquivo
break;
...
Devo usar ArrayList do Java para desenvolver o sistema? Sim, objetos da classe ArrayList são perfeitos quando precisamos representar relacionamentos um para muitos e muitos para um. É claro que poderíamos usar vetores de objetos (usando array), mas ficaríamos restritos a tamanhos fixos, enquanto o ArrayList nos permite cadastrar quantos usuários, livros, editoras, autores e empréstimos nós quisermos. Dessa forma, veja, por exemplo, o trecho de código que registra um novo empréstimo:
case 1: // vamos cadastrar um novo empréstimmo
// para registrar um novo empréstimo nós precisamos
// de um usuário
// o usuário que será relacionado a este empréstimo
Usuario usuario = null;
while(usuario == null){
System.out.print("\nInforme o id ou nome do usuário: ");
String pesquisaUsuario = entrada.nextLine();
// chamamos o método que pesquisa o usuario
usuario = pesquisarUsuario(pesquisaUsuario);
if(usuario == null){ // usuario não encotrado
System.out.print("\nUsuário não
encontrado.\n\nDigite 1 para pesquisar
novamente ou 2 para voltar ao menu anterior: ");
int opcaoTemp = Integer.parseInt(entrada.nextLine());
if(opcaoTemp == 2){
return 1; // saímos daqui e voltamos para o menu anterior
}
}
}
System.out.println("Usuário selecionado: " + usuario.getNome());
// fim para registrar um novo empréstimo nós
// precisamos de um usuário
// para registrar um novo empréstimo nós precisamos
// de um livro
Livro livro = null; // o livro que será relacionado
// a este empréstimo
while(livro == null){
System.out.print("Informe o id, título ou ISBN do livro: ");
String pesquisaLivro = entrada.nextLine();
// chamamos o método que pesquisa o livro
livro = pesquisarLivro(pesquisaLivro);
// livro não encontrado ou indisponível
if((livro == null) || (!livro.isDisponivel())){
System.out.print("\nLivro não encontrado
ou indisponível.\n\nDigite 1 para
pesquisar novamente ou 2 para voltar ao
menu anterior: ");
int opcaoTemp = Integer.parseInt(entrada.nextLine());
if(opcaoTemp == 2){
return 1; // saímos daqui e voltamos para o menu anterior
}
}
}
System.out.println("Livro selecionado: " + livro.getTitulo());
// fim para cadastrar um novo empréstimo nós
// precisamos de um livro
try{
System.out.print("Data do Empréstimo: ");
String dataEmprestimo = entrada.nextLine();
Date dataEmprestimoDate =
new SimpleDateFormat("dd/MM/yyyy").parse(dataEmprestimo);
System.out.print("Data de Devolução: ");
String dataDevolucao = entrada.nextLine();
Date dataDevolucaoDate =
new SimpleDateFormat("dd/MM/yyyy").parse(dataDevolucao);
// a data de devolução é menor que a data de empréstimo?
if(dataDevolucaoDate.getTime() <= dataEmprestimoDate.getTime()){
System.out.println("\nA data de devolução
deve ser maior que a data de empréstimo.\n");
}
else{
// vamos incrementar o contador de empréstimos
Emprestimo.contadorEmprestimos++;
// vamos marcar o livro escolhido como indisponível
livro.setDisponivel(false);
// agora vamos criar um novo objeto da classe Emprestimo
Emprestimo emprestimo = new Emprestimo(usuario,
livro, Emprestimo.contadorEmprestimos,
dataEmprestimoDate, dataDevolucaoDate,
null, false);
// e o adicionamos no ArrayList de empréstimos
emprestimos.add(emprestimo);
// e finalmente mostramos uma mensagem de sucesso.
System.out.println("\nO empréstimo foi registrado com sucesso");
salvarDadosArquivo(); // salva os dados no arquivo
}
}
catch(ParseException e){
System.out.println("\nAs datas informadas são inválidas.\n");
}
break;
Note que este trecho de código é parte do case da opção Novo Empréstimo do menu Gerenciar Empréstimos. Veja como usamos uma variável estática contadorEmprestimos da classe Emprestimo para criarmos um valor inteiro auto-incremento que nos permite identificadores únicos para cada empréstimo da biblioteca. Viu que código mais lindo? Note como a Programação Orientada a Objetos em Java nos permite desenvolver idéias de forma bem parecida mesmo ao mundo real. Como posso obter este código fonte? O código fonte desta aplicação é fornecido em duas versões: 1) SBIBLIOJCNB-A - Sistema de Gestão de Biblioteca em Java com Código Fonte Versão Console - NetBeans IDE ou Eclipse. 2) SBIBLIOJCNB-B - Sistema de Gestão de Biblioteca em Java com Código Fonte Versão Console - Lê e salva os dados em arquivo usando serialização (Serializable), ou seja, os métodos readObject() e writeObject() - NetBeans IDE ou Eclpse. Para adquirir, entre em contato conosco usando o WhatsApp ou e-mail indicados na lateral do site. Podemos combinar alterações e a adição de novas funcionalidades. Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto Java do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
AutoCAD Civil 3D .NET C# - Como retornar a quantidade de perfis de um alinhamento do Civil 3D usando a função GetProfileIds() da API C# do AutoCAD Civil 3D JavaScript - Como retornar o tamanho de uma string em JavaScript usando a propriedade length do objeto String |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







