![]() |
|
|
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. |
||
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como fazer a travessia de uma árvore binária de busca em Java usando o percurso em-ordem (in-order, In-ordem ou ordem simétrica)Quantidade de visualizações: 5897 vezes |
Antes de discutirmos o percurso in-order, veja a árvore binária de busca na figura abaixo:![]() Esta árvore possui 9 nós e obedece à regra de que os nós com valores menores que o nó pai ficam à sua esquerda, e aqueles com nós maiores que o nó pai, ficam à sua direita. O percurso em ordem é usado quando queremos exibir os valores dos nós da árvore binária de busca em ordem ascendente. Neste tipo de percurso nós visitamos primeiramente a sub-árvore da esquerda, então o nó atual e finalmente a sub-árvore à direita do nó atual. É importante notar que esta travessia é feita por meio de um método recursivo. Veja o código completo para o exemplo: Código para No.java:
package arvore_binaria;
public class No {
private int valor; // valor armazenado no nó
private No esquerdo; // filho esquerdo
private No direito; // filho direito
// construtor do nó
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
public int getValor() {
return valor;
}
public void setValor(int valor) {
this.valor = valor;
}
public No getEsquerdo() {
return esquerdo;
}
public void setEsquerdo(No esquerdo) {
this.esquerdo = esquerdo;
}
public No getDireito() {
return direito;
}
public void setDireito(No direito) {
this.direito = direito;
}
}
Código para ArvoreBinariaBusca.java:
package arvore_binaria;
public class ArvoreBinariaBusca {
private No raiz; // referência para a raiz da árvore
// método usado para inserir um novo nó na árvore
// retorna true se o nó for inserido com sucesso e false
// se o elemento
// não puder ser inserido (no caso de já existir um
// elemento igual)
public boolean inserir(int valor){
// a árvore ainda está vazia?
if(raiz == null){
// vamos criar o primeiro nó e definí-lo como a raiz da árvore
raiz = new No(valor); // cria um novo nó
}
else{
// localiza o nó pai do novo nó
No pai = null;
No noAtual = raiz; // começa a busca pela raiz
// enquanto o nó atual for diferente de null
while(noAtual != null){
// o valor sendo inserido é menor que o nó atual?
if(valor < noAtual.getValor()) {
pai = noAtual;
// vamos inserir do lado esquerdo
noAtual = noAtual.getEsquerdo();
}
// o valor sendo inserido é maior que o nó atual
else if(valor > noAtual.getValor()){
pai = noAtual;
// vamos inserir do lado direito
noAtual = noAtual.getDireito();
}
else{
return false; // um nó com este valor foi encontrado
}
}
// cria o novo nó e o adiciona como filho do nó pai
if(valor < pai.getValor()){
pai.setEsquerdo(new No(valor));
}
else{
pai.setDireito(new No(valor));
}
}
return true; // retorna true para indicar que o novo nó foi inserido
}
// método que permite disparar a travessia em-ordem
public void emOrdem(){
emOrdem(raiz);
}
// sobrecarga do método emOrdem com uma parâmetro (esta é a versão
// recursiva do método)
private void emOrdem(No raiz){
if(raiz == null){ // condição de parada
return;
}
// visita a sub-árvore da esquerda
emOrdem(raiz.getEsquerdo());
// visita o nó atual
System.out.print(raiz.getValor() + " ");
// visita a sub-árvore da direita
emOrdem(raiz.getDireito());
}
}
E agora o código para a classe principal:
package arvore_binaria;
import java.util.Scanner;
public class ArvoreBinariaTeste {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos criar um novo objeto da classe ArvoreBinariaBusca
ArvoreBinariaBusca arvore = new ArvoreBinariaBusca();
// vamos inserir 9 valores na árvore
for(int i = 0; i < 9; i++){
System.out.print("Informe um valor inteiro: ");
int valor = Integer.parseInt(entrada.nextLine());
// vamos inserir o nó e verificar o sucesso da operação
if(!arvore.inserir(valor)){
System.out.println("Não foi possível inserir." +
" Um elemento já contém este valor.");
}
}
// vamos exibir os nós da árvore usando o percurso in-order
System.out.println("\nPercurso in-order:");
arvore.emOrdem();
System.out.println("\n");
}
}
Ao executar este código teremos o seguinte resultado: Informe um valor inteiro: 8 Informe um valor inteiro: 3 Informe um valor inteiro: 10 Informe um valor inteiro: 1 Informe um valor inteiro: 6 Informe um valor inteiro: 14 Informe um valor inteiro: 4 Informe um valor inteiro: 7 Informe um valor inteiro: 13 Percurso in-order: 1 3 4 6 7 8 10 13 14 |
PHP ::: PHP + MySQL ::: MySQL Improved Extension (mysqli) |
Como estabelecer uma conexão PHP + MySQL (Improved Extension (mysqli)) no modo Programação Orientada a Objetos - AtualizadoQuantidade de visualizações: 10697 vezes |
|
Nesta dica eu mostro como fazer uma conexão PHP + MySQL usando a extensão mysqli no modo POO (Programação Orientada a Objetos). Este modelo difere do modelo procedimental porque, em orientação a objetos, nós criamos um novo objeto da classe mysqli, em vez de simplesmente chamar a função mysqli_connect(). Veja o código completo:
<?
// constrói um novo objeto mysqli chamado conexao
$conexao = new mysqli("localhost", "root",
"osmar1234", "estudos");
// testa se a conexão foi efetuada com sucesso
if(mysqli_connect_errno()){
die("Houve um erro de conexão: " . mysqli_connect_error());
}
else{
print "Conexão com " . $conexao->host_info
. " efetuada com sucesso.";
}
// fecha a conexão com o banco de dados
$conexao->close(); // fecha a conexão
?>
Se os parâmetros de conexão estiverem corretos, o seguinte resultado será exibido: Conexão com localhost via TCP/IP efetuada com sucesso. Esta dica foi revisada e atualizada para o PHP 8. |
Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid |
Como definir ou retornar a cor de fundo de uma determinada coluna do TDBGrid do DelphiQuantidade de visualizações: 10002 vezes |
|
Em algumas situações gostaríamos de definir a cor de fundo de uma determinada coluna do DBGrid. Isso pode ser feito por meio da propriedade Color da classe TColumn. Em tempo de design a cor de fundo de um coluna pode ser definida clicando-se com o botão direito do DBGrid e escolhendo a opção Columns Editor. Em seguida clique na coluna desejada e ajuste sua propriedade Color no Object Inspector. Em tempo de execução podemos definir a cor de fundo para uma coluna usando o seguinte trecho de código: procedure TForm3.Button3Click(Sender: TObject); begin // vamos definir a cor de fundo para a primeira coluna DBGrid1.Columns[0].Color := Graphics.clYellow; end; Veja que eu defini a cor de fundo como sendo uma das constantes definidas na unit Graphics. Lembre-se de que também podemos fornecer um valor RGB. Veja agora um trecho de código que mostra como obter a cor de fundo da coluna:
procedure TForm3.Button3Click(Sender: TObject);
begin
// vamos obter a cor de fundo da primeira coluna
ShowMessage('A cor de fundo da coluna é: ' +
ColorToString(DBGrid1.Columns[0].Color));
end;
Ao executarmos este código temos uma mensagem parecida com: "A cor de fundo da coluna é: clSilver". Esta dica foi escrita e testada no Delphi 2009. |
Python ::: Dicas & Truques ::: Lista (List) |
Como adicionar itens no início de uma lista Python usando a função insert()Quantidade de visualizações: 10007 vezes |
|
Podemos usar o método insert() do objeto List da linguagem Python para inserir itens em qualquer posição, ou seja, em qualquer índice de uma lista. Para isso só precisamos informar o índice desejado e o valor a ser inserido. Nesta dica mostrarei como adicionar itens no início de uma List Python. Tudo que precisamos é informar o valor 0 para o índice. Veja o exemplo completo:
"""
Este exemplo mostra como adicionar itens ao
início de uma lista de inteiros.
"""
def main():
# cria uma lista vazia
valores = []
# início do laço for
for i in range(1, 6):
valor = int(input("Informe um inteiro: "))
# insere o valor no início da lista
valores.insert(0, valor)
# fim do laço for
# exibe os valores da lista
print("Valores na lista:", valores, "\n")
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe um inteiro: 5 Informe um inteiro: 8 Informe um inteiro: 3 Informe um inteiro: 2 Informe um inteiro: 9 Valores na lista: [9, 2, 3, 8, 5] |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em JavaScript JavaScript - Como retornar o código ASCII ou Unicode associado a um caractere em JavaScript usando a função charCodeAt() |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Excel - Como gerar números aleatórios inteiros entre 1 e 10 no Excel usando as funções ALEATÓRIO() e INT() |
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 |




