Dúvidas, comentários e doaçoes: +55 62 9 8513 2505

Planilha de Dimensionamento de Tubulações Hidráulicas Água Fria e Água Quente Completa
Nossa 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
Card 0 de 0
O filtro aplicado não retornou nenhum resultado. Clique o botão Remover Filtro ou experimente um filtro diferente.

Filtrar Cards
Use esta opção para filtrar os cards pelos tópicos que mais lhe interessam.
Termos:
Aviso Importante: Nos esforçamos muito para que o conteúdo dos cards e dos testes e conhecimento seja o mais correto possível. No entanto, entendemos que erros podem ocorrer. Caso isso aconteça, pedimos desculpas e estamos à disposição para as devidas correções. Além disso, o conteúdo aqui apresentado é fruto de conhecimento nosso e de pesquisas na internet e livros. Caso você encontre algum conteúdo que não deveria estar aqui, por favor, nos comunique pelos e-mails exibidos nas opções de contato.
Link para compartilhar na Internet ou com seus amigos:

C# ::: Windows Forms ::: ListBox

Como inserir um item em uma determinada posição da ListBox do C# Windows Forms usando o método Insert()

Quantidade de visualizações: 1420 vezes
Em algumas situações nós gostaríamos de adicionar um novo item a uma ListBox do C# Windows Forms e indicar a posição (índice) na qual ela deverá ficar. Para isso podemos usar a função Insert() do objeto Items da ListBox.

O método Insert() recebe o índice no qual o elemento será inserido e o item a ser inserido. Veja um exemplo de seu uso no trecho de código a seguir:

private void button2_Click(object sender, EventArgs e)
{
  // insere um item na terceira posição
  listBox1.Items.Insert(2, "Fortaleza");
}

Se o índice fornecido para o método Insert() não estiver dentro da faixa de índices válidos para os elementos da ListBox, uma exceção do tipo ArgumentOutOfRangeException será atirada:

System.ArgumentOutOfRangeException
HResult=0x80131502
Message=InvalidArgument=Value '20' não é um valor válido para 'index'.
Parameter name: index
Source=System.Windows.Forms
StackTrace:
em System.Windows.Forms.ListBox.ObjectCollection.Insert(Int32 index, Object item)


Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca

Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) de forma iterativa

Quantidade de visualizações: 1440 vezes
Nesta dica mostrarei como podemos implementar o algorítmo da Busca em Profundidade (DFS, do inglês depth-first search) em Java de forma iterativa, ou seja, sem usar recursão. Não farei a busca, mas sim o percurso, para que você entenda como a lógica dessa busca funciona.

Antes de iniciarmos, veja a árvore binária que vamos usar no exemplo:



Note que esta árvore possui seis nós. O nó 5 é o nó raiz, e possui como filhos os nós 4 e 9. O nó 4, por sua vez, possui apenas um filho, o nó 2, ou seja, o filho da esquerda. O nó 9 possui dois filhos: o nó 3 é o filho da esquerda e o nó 12 é o filho da direita. Os filhos da árvore binária que não possuem outros filhos são chamados de folhas.

Com a abordagem da busca em profundidade, começamos com o nó raiz e viajamos para baixo em uma única ramificação. Se o nó desejado for encontrado naquela ramificação, ótimo. Do contrário, continuamos subindo e pesquisando por nós não visitados. Esse tipo de busca também tem uma notação big O de O(n).

Vamos à implementação? Veja o código para a classe No, que representa um nó na árvore binária:

// implementação da classe No
class No{
  public int valor; // o valor do nó
  public No esquerdo; // o filho da esquerda
  public No direito; // o filho da direita
  
  public No(int valor){
    this.valor = valor;
    this.esquerdo = null;
    this.direito = null;
  }
}

Veja agora o código completo para o exemplo. Note que usei uma implementação não-recursiva, na qual todos os nós expandidos recentemente são adicionados a uma pilha, para realizar a exploração. O uso da pilha permite o retrocesso (backtracking) de forma a reiniciarmos o percurso ou busca no próximo nó.

Para manter o código o mais simples possível, eu usei a classe Stack do Java, juntamente com seus métodos push() e pop() para simular a pilha. Usei também uma ArrayList para guardar os valores da árvore binária na ordem depth-first.

Eis o código:

package estudos;

import java.util.ArrayList;
import java.util.Stack;

// implementação da classe No
class No{
  public int valor; // o valor do nó
  public No esquerdo; // o filho da esquerda
  public No direito; // o filho da direita
  
  public No(int valor){
    this.valor = valor;
    this.esquerdo = null;
    this.direito = null;
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar os nós da árvore
    No cinco = new No(5); // será a raiz da árvore
    No quatro = new No(4);
    No nove = new No(9);
    No dois = new No(2);
    No tres = new No(3);
    No doze = new No(12);
    
    // vamos fazer a ligação entre os nós
    cinco.esquerdo = quatro;
    cinco.direito = nove;
    quatro.esquerdo = dois;
    nove.esquerdo = tres;
    nove.direito = doze;
    
    // agora já podemos efetuar o percurso depth-first
    ArrayList<Integer> valores = percursoDepthFirst(cinco);
    System.out.println("Os valores na ordem Depth-First são: " + valores);
  }
  
  public static ArrayList<Integer> percursoDepthFirst(No no){
    // vamos usar uma ArrayList para retornar os elementos
    // na ordem Depth-First
    ArrayList<Integer> valores = new ArrayList<>();
    
    // vamos criar uma nova instância de uma pilha
    Stack<No> pilha = new Stack<>();
    // já vamos adicionar o primeiro nó recebido, que é a raiz
    pilha.push(no);
    
    // enquanto a pilha não estiver vazia
    while(pilha.size() > 0){
      // vamos obter o elemento no topo da pilha
      No atual = pilha.pop();
      // adicionamos este valor no ArrayList
      valores.add(atual.valor);
	  
      // vamos colocar o filho direito na pilha
      if(atual.direito != null){
        pilha.push(atual.direito);
      }
      
      // vamos colocar o filho esquerdo na pilha
      if(atual.esquerdo != null){
        pilha.push(atual.esquerdo);
      }
    }
    
    return valores; // retorna os valores da árvore
  }
}

Ao executarmos este código Java nós teremos o seguinte resultado:

Os valores na ordem Depth-First são: [5, 4, 2, 9, 3, 12]

Compare estes valores com a imagem vista anteriormente para entender ainda melhor o percurso ou busca Depth-First.


Java ::: Fundamentos da Linguagem ::: Comentários

Java para iniciantes - Como inserir comentários em seus códigos Java

Quantidade de visualizações: 14086 vezes
Comentários em Java, assim como em outras linguagens, são ignorados pelo compilador. Em Java, podemos usar dois estilos de comentários:

1) Comentário de uma única linha:

// obtém o resultado do cálculo
int res = 4 + 5; // aqui também pode

2) Comentários de múltiplas linhas:

/*
 Este exemplo mostra como verificar se
 um número é par ou ímpar.  
*/



Delphi ::: Dicas & Truques ::: Matemática e Estatística

Como calcular desvio padrão em Delphi - Delphi para Matemática e Estatística

Quantidade de visualizações: 2665 vezes
Em Matemática e Estatística, o Desvio padrão (em inglês: Standard Deviation) é uma medida de dispersão, ou seja, é uma medida que indica o quanto um conjunto de dados é uniforme. Quando o desvio padrão é baixo, isso quer dizer que os dados do conjunto estão mais próximos da média.

Como calcular o desvio padrão de um conjunto de dados? Vamos começar analisando a fórmula mais difundida na matemática e na estatística:

\[\sigma = \sqrt{ \frac{\sum_{i=1}^N (x_i -\mu)^2}{N}}\]

Onde:

a) __$\sigma__$ é o desvio;
b) __$x_i__$ é um valor qualquer no conjunto de dados na posição i;
c) __$\mu__$ é a média aritmética dos valores do conjunto de dados;
d) N é a quantidade de valores no conjunto.

O somatório dentro da raiz quadrada nos diz que devemos somar todos os elementos do conjunto, desde a posição 1 até a posição n, subtrair cada valor pela média do conjunto e elevar ao quadrado. Obtida a soma, nós a dividimos pelo tamanho do conjunto.

Veja o código Delphi completo que obtém o desvio padrão a partir de um conjunto de dados contendo quatro valores:

// Algoritmo Delphi para calcular desvio padrão

program estudos_delphi;

{$APPTYPE CONSOLE}

uses
  SysUtils, Math;

var
  // conjunto de dados
  conjunto: array[1..4] of double = (10, 30, 90, 30);
  soma: double; // Soma dos elementos
  desvio_padrao: double; // Desvio padrão
  tam: integer; // Tamanho dos dados
  media: double; // média
  i: integer;

begin
  soma := 0.0;
  desvio_padrao := 0.0;
  tam := 4;

  // vamos somar todos os elementos
  for i := 1 to tam do
    begin
      soma := soma + conjunto[i];
    end;

  // agora obtemos a média do conjunto de dados
  media := soma / tam;

  // e finalmente obtemos o desvio padrão
  for i := 1 to tam do
    begin
      // não esqueça de adicionar a unit Math
      desvio_padrao := desvio_padrao + Power(conjunto[i] - media, 2);
    end;

  // mostramos o resultado
  WriteLn('Desvio Padrão Populacional: ' + FloatToStr(Sqrt(desvio_padrao / tam)));
  WriteLn('Desvio Padrão Amostral: ' + FloatToStr(Sqrt(desvio_padrao / (tam - 1))));

  WriteLn;
  Write('Pressione Enter para sair...');
  ReadLn;

end.

Ao executar este código Delphi nós teremos o seguinte resultado:

Desvio Padrão Populacional: 30.0
Desvio Padrão Amostral: 34.64101615137755

Veja que, para calcular o Desvio Padrão Populacional, nós dividimos o somatório pela quantidade de elementos no conjunto, enquanto, para calcular o Desvio Padrão Amostral, nós dividimos o somatório pela quantidade de elementos - 1 (cuidado com a divisão por zero no caso de um conjunto com apenas um elemento).


Java ::: Dicas & Truques ::: Arquivos e Diretórios

Como usar o método createTempFile() da classe File da linguagem Java para criar um arquivo temporário, escrever nele e excluí-lo ao fechar o programa - Revisado

Quantidade de visualizações: 2 vezes
Nesta dica mostrarei como é possível usar o método createTempFile() da classe File, do pacote java.io, para criar um arquivo temporário em Java. No exemplo vamos criar o arquivo, vamos escrever nele e depois excluí-lo ao fecharmos o programa.

Veja o código completo:

package arquivodecodigos;

import java.io.*;
 
public class Estudos{
  public static void main(String[] args){
    // local de criação do arquivo
    String local = "C:\\estudos_java";
      
    // vamos tentar criar o arquivo então
    try{
      File arquivo = File.createTempFile("teste", ".txt", new File(local));
     
      // vamos excluir o arquivo ao fechar a aplicação
      arquivo.deleteOnExit();
         
      // escreve no arquivo temporário
      BufferedWriter out = new BufferedWriter(new FileWriter(arquivo));
      out.write("Arquivo de Códigos");
      out.close();
         
      // trecho de código para fazer com o programa espere
      // uma tecla antes de fechar
      // Este procedimento é para que vc veja que o arquivo
      // temporario realmente foi criado no diretório indicado
      InputStreamReader ent = new InputStreamReader(System.in);
      BufferedReader cons = new BufferedReader(ent);
      System.out.println("Verifique se o arquivo foi criado com sucesso.");
      System.out.print("Digite alguma coisa e pressione Enter para sair: ");
      String tecla = cons.readLine();
    }
    catch(IOException e){
      System.out.println("Houve um erro: " + e.getMessage()); 
    }
  }
}

Ao executarmos este código nós teremos o seguinte resultado:

Verifique se o arquivo foi criado com sucesso.
Digite alguma coisa e pressione Enter para sair: b

Antes de digitar alguma coisa e pressionar Enter, olhe no diretório "C:\\estudos_java" (o seu vai ser diferente, é claro) e você verá um arquivo com um nome parecido com:

teste2606085315507863387.txt

Quando você pressionar Enter, o programa terminará e o arquivo será excluído automaticamente.

Esta dica foi revisada e testada no Java 8.


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

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.


© 2026 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 44 usuários muito felizes estudando em nosso site.