Você está aqui: Cards de Engenharia Civil - Instalações Hidráulicas Prediais
Card 1 de 6
Introdução às instalações prediais de água fria

Os projetos hidráulicos são indispensáveis às edificações, uma vez que evitam inúmeros problemas nessas instalações e, consequentemente, a necessidade de reparos no sistema de tubulações, que apresentam custos elevados. O desenvolvimento desses projetos deve ser conduzido concomitantemente com os projetos de arquitetura, estrutura, entre outros projetos pertinentes ao edifício, de modo a garantir que haja compatibilização entre todos os requisitos técnicos e econômicos envolvidos.

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:

Java ::: Estruturas de Dados ::: Lista Ligada Simples

Estruturas de dados em Java - Introdução às listas ligadas em Java

Quantidade de visualizações: 16166 vezes
Então você se interessou pelo assunto de listas ligadas em Java? Recomendo que leia esta anotação com muita atenção. É o ponto de partida para o entendimento e implementação desta estrutura de dados tão importante.

Uma lista singularmente ou duplamente ligada (singly or doubly linked list) é uma lista dinâmica no sentido de que ela pode crescer ou diminuir de acordo com as necessidades do programa. As matrizes (arrays) comuns também têm seu papel assegurado no estudo das estruturas de dados. No entanto, uma de suas limitações é que seus elementos são dispostos lado a lado na memória. Isso torna a inserção de um novo elemento no meio do array uma tarefa dispendiosa, visto que os demais elementos precisam ser movidos para outras posições. Em uma lista dinâmica isso não acontece.

O conceito principal das listas ligadas é a capacidade de um nó (cada elemento da lista é chamado de nó) poder apontar para um outro nó com estrutura semelhante. Veja a estrutura típica de um nó em uma lista ligada:

// classe No
public class No{
  public int valor;
  public No proximo;
}
// fim da classe No

Note que esta classe contém dois campos: um campo do tipo int que guarda o valor do nó e um campo do tipo referência apontando para um objeto do mesmo tipo que o nó atual. Isso permite a circularidade das listas, ou seja, um nó apontando para um elemento de seu mesmo tipo.

Com este conhecimento já podemos criar o início de uma lista singularmente ligada, para isso só precisamos declarar uma variável do tipo No. Veja:

// declara o início da lista
No inicio;

Até agora temos uma lista ligada vazia. A criação do primeiro elemento da lista pode ser feito da seguinte forma:

public class Lista{
  // declara o início da lista
  static No inicio = null;

  public static void main(String args[]){
    // verifica se a lista está vazia
    if(inicio == null){
      // reserva memória para o novo nó
      inicio = new No();

      // a memória foi alocada com sucesso?
      if(inicio != null){
        inicio.valor = 150;
        // é o primeiro nó...seu campo proximo não deve 
        // apontar para lugar nenhum
        inicio.proximo = null;
      }
    }
 
    System.out.println(inicio.valor); 
    System.exit(0);
  }  
}

Aqui nós temos a criação do primeiro nó de uma lista singularmente ligada. Note como usamos a palavra-chave new para alocar memória para o nó atual. Veja também que o valor null é fornecido para o campo próximo do nó. Isso aconteceu porque temos apenas um nó. Em outras dicas desta seção abordaremos como inserir os demais nós e também listar todos os nós existentes na lista. Até lá.


Delphi ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Como carregar uma imagem JPG, convertê-la em Bitmap e desenhá-la no formulário usando Delphi

Quantidade de visualizações: 18580 vezes
Em algumas situações nós precisamos carregar uma imagem JPG, convertê-la em Bitmap e desenhá-la em nosso formulário. Nesta dica eu mostro como isso pode ser feito. Vamos começar lendo a imagem JPG a partir do diretório da aplicação:

procedure TForm3.Button1Click(Sender: TObject);
var
  bmp: TBitmap;
  jpg: TJPEGImage;
begin
  // uses Jpeg; // não esqueça

  // vamos criar o bitmap
  bmp := TBitmap.Create;
  // vamos criar o JPG
  jpg := TJPEGImage.Create;

  try
    // vamos carregar a imagem JPG
    jpg.LoadFromFile('foto.jpg');
    // vamos convertê-la para Bitmap
    bmp.Assign(jpg);
    // vamos desenhar o bitmap no formulário
    // começando nas coordenadas x = 0; y = 0 a partir
    // do canto superior esquerdo da área cliente do formulário
    Form3.Canvas.Draw(0, 0, bmp);
  finally
    Jpg.Free;
    Bmp.Free;
  end;
end;

Veja que a técnica consiste em carregar a imagem JPG e convertê-la em Bitmap usando o método Assign() da classe TBitmap. Em seguida só precisamos usar o método Draw() do Canvas do formulário para desenhar a imagem já convertida.

Caso você precise carregar a imagem JPG em tempo de execução, basta colocar um TOpenPictureDialog no formulário e alterar o código do evento Click do botão para:

procedure TForm3.Button1Click(Sender: TObject);
var
  bmp: TBitmap;
  jpg: TJPEGImage;
begin
  // uses Jpeg; // não esqueça

  if OpenPictureDialog1.Execute then
    begin
      // vamos criar o bitmap
      bmp := TBitmap.Create;
      // vamos criar o JPG
      jpg := TJPEGImage.Create;

      try
        // vamos carregar a imagem JPG
        jpg.LoadFromFile(OpenPictureDialog1.FileName);
        // vamos convertê-la para Bitmap
        bmp.Assign(jpg);
        // vamos desenhar o bitmap no formulário
        // começando nas coordenadas x = 0; y = 0 a partir
        // do canto superior esquerdo da área cliente do formulário
        Form3.Canvas.Draw(0, 0, bmp);
      finally
        Jpg.Free;
        Bmp.Free;
      end;
    end;
end;


Vamos complicar um pouco mais? Que tal uma função que carrega a imagem JPG, faz a conversão para Bitmap e retorna o Bitmap para o chamador? Veja:

function jpg2bitmap(const imagem: String): TBitmap;
var
  bmp: TBitmap;
  jpg: TJPEGImage;
begin
  // uses Jpeg; // não esqueça
  // vamos criar o bitmap
  bmp := TBitmap.Create;
  // vamos criar o JPG
  jpg := TJPEGImage.Create;

  try
    // vamos carregar a imagem JPG
    jpg.LoadFromFile(imagem);
    // vamos convertê-la para Bitmap
    bmp.Assign(jpg);
  except
    bmp := nil;
  end;

  // vamos retornar o bitmap resultante
  Jpg.Free;
  Result := bmp;
end;

procedure TForm3.Button1Click(Sender: TObject);
var
  bmp: TBitmap;
begin
  // vamos obter o Bitmap a partir da função personalizada
  bmp := jpg2bitmap('foto2.jpg');

  // a imagem Bitmap foi obtida com sucesso?
  if bmp <> nil then
    begin
      // vamos desenhar o bitmap no formulário
      // começando nas coordenadas x = 0; y = 0 a partir
      // do canto superior esquerdo da área cliente do formulário
      Form3.Canvas.Draw(0, 0, bmp);
      bmp.Free;
    end
  else
    ShowMessage('Não foi possível obter o Bitmap');
end;

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Como carregar uma imagem em um BufferedImage do Java usando o método read() da classe ImageIO

Quantidade de visualizações: 12257 vezes
O método read() da classe ImageIO possui várias assinaturas. Entre elas há uma que aceita um objeto File representando o caminho e nome da imagem a ser carregada. Este método retorna um BufferedImage e atira uma exceção IOException se a imagem não puder ser carregada.

O exemplo abaixo mostra como carregar uma imagem JPG em um BufferedImage usando ImageIO.read():

import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;

public class Estudos extends JFrame{
  private BufferedImage imagem;
  
  public Estudos() {
    super("Estudos Java");
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
	
    JButton btn = new JButton("Carregar Imagem");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          imagem = null;
          
          try{
            imagem = ImageIO.read(
              new File("imagens/fundo.jpg"));
          }
          catch(IOException exc){
            JOptionPane.showMessageDialog(null, 
              "Erro ao carregar a imagem: " + 
              exc.getMessage());
          }

          if(imagem != null)
            JOptionPane.showMessageDialog(null, 
              "Imagem carregada com sucesso.");
        }
      }
    );

    c.add(btn);
    	
    setSize(400, 300);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como testar se uma variável é do tipo array em PHP usando a função is_array()

Quantidade de visualizações: 12030 vezes
Em algumas situações nós precisamos verificar se uma determinada variável é do tipo array (vetor ou matriz). Em PHP esse procedimento pode ser feito com o auxílio da função is_array(), que recebe uma variável e retorna verdadeiro se ela é do tipo array e falso em caso contrário.

Veja o código PHP completo para o exemplo:

<?php
  // vamos criar um array de inteiros
  $valores = Array(5, 2, 7, 1);

  // vamos testar se a variável é do tipo array
  if(is_array($valores)){
    echo 'A variável $valores é do tipo array.';
  }
  else{
    echo 'A variável $valores NÃO é do tipo array.';
  }
?>

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

A variável $valores é do tipo array.


Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais

Como usar o método getMethods() da classe Class - Como listar todos os métodos de uma classe ou interface Java em tempo de execução - Revisado

Quantidade de visualizações: 9362 vezes
O método getMethods() da classe Class permite obter um vetor contendo todos os métodos públicos de uma classe ou interface. Este método retorna um vetor de objetos da classe Method[] e pode atirar uma exceção SecurityException. Veja que os métodos herdados de e por superclasses da classe sendo investigada são também retornados.

O exemplo a seguir mostra como listar todos os métodos públicos da classe javax.swing.JButton (veja como usamos o método getName() da classe Method para obter o nome do método):

package arquivodecodigos;

import java.lang.reflect.*;
 
public class Estudos{
  public static void main(String args[]){
    // vamos carregar a classe JButton
    try{
      Class c = Class.forName("javax.swing.JButton");
 
      // obtém os nomes dos métodos
      Method[] metodos = c.getMethods(); 
 
      // exibe o nome de cada método
      for(int i = 0; i < metodos.length; i++){
        System.out.println(metodos[i].getName() + ", "); 
      }
    }
    catch(ClassNotFoundException e){
      System.out.println(e.getMessage()); 
    }
 
    System.exit(0);
  }
} 

Note que aqui nós estamos usando o método getName() da classe Method para retornar apenas o nome do método. Nesta seção você encontra exemplos de como obter também o tipo de retorno dos métodos de um determinada classe ou interface.

A execução desse código gera uma lista gigante de métodos. Vou mostrá-los abaixo para que você tenha uma idéia do funcionamento real:

getAccessibleContext(), getUIClassID(), isDefaultButton(), isDefaultCapable(), removeNotify(), setDefaultCapable(), updateUI(), getUI(), setAction(), setModel(), setUI(), addActionListener(), addChangeListener(), addItemListener(), doClick(), doClick(), getAction(), getActionCommand(), getActionListeners(), getChangeListeners(), getDisabledIcon(), getDisabledSelectedIcon(), getDisplayedMnemonicIndex(), getHideActionText(), getHorizontalAlignment(), getHorizontalTextPosition(), getIcon(), getIconTextGap(), getItemListeners(), getLabel(), getMargin(), getMnemonic(), getModel(), getMultiClickThreshhold(), getPressedIcon(), getRolloverIcon(), getRolloverSelectedIcon(), getSelectedIcon(), getSelectedObjects(), getText(), getVerticalAlignment(), getVerticalTextPosition(), imageUpdate(), isBorderPainted(), isContentAreaFilled(), isFocusPainted(), isRolloverEnabled(), isSelected(), removeActionListener(), removeChangeListener(), removeItemListener(), setActionCommand(), setBorderPainted(), setContentAreaFilled(), setDisabledIcon(), setDisabledSelectedIcon(), setDisplayedMnemonicIndex(), setEnabled(), setFocusPainted(), setHideActionText(), setHorizontalAlignment(), setHorizontalTextPosition(), setIcon(), setIconTextGap(), setLabel(), setLayout(), setMargin(), setMnemonic(), setMnemonic(), setMultiClickThreshhold(), setPressedIcon(), setRolloverEnabled(), setRolloverIcon(), setRolloverSelectedIcon(), setSelected(), setSelectedIcon(), setText(), setVerticalAlignment(), setVerticalTextPosition(), update(), contains(), getLocation(), print(), getSize(), isOpaque(), disable(), enable(), addAncestorListener(), addNotify(), addVetoableChangeListener(), computeVisibleRect(), createToolTip(), getActionForKeyStroke(), getActionMap(), getAlignmentX(), getAlignmentY(), getAncestorListeners(), getAutoscrolls(), getBaseline(), getBaselineResizeBehavior(), getBorder(), getBounds(), getClientProperty(), getComponentPopupMenu(), getConditionForKeyStroke(), getDebugGraphicsOptions(), getDefaultLocale(), getFontMetrics(), getGraphics(), getHeight(), getInheritsPopupMenu(), getInputMap(), getInputMap(), getInputVerifier(), getInsets(), getInsets(), getMaximumSize(), getMinimumSize(), getNextFocusableComponent(), getPopupLocation(), getPreferredSize(), getRegisteredKeyStrokes(), getToolTipLocation(), getToolTipText(), getToolTipText(), getTopLevelAncestor(), getTransferHandler(), getVerifyInputWhenFocusTarget(), getVetoableChangeListeners(), getVisibleRect(), getWidth(), getX(), getY(), grabFocus(), hide(), isDoubleBuffered(), isLightweightComponent(), isManagingFocus(), isOptimizedDrawingEnabled(), isPaintingForPrint(), isPaintingTile(), isRequestFocusEnabled(), isValidateRoot(), paint(), printAll(), putClientProperty(), registerKeyboardAction(), registerKeyboardAction(), removeAncestorListener(), removeVetoableChangeListener(), requestDefaultFocus(), requestFocus(), requestFocus(), requestFocusInWindow(), resetKeyboardActions(), reshape(), scrollRectToVisible(), setActionMap(), setAutoscrolls(), setBackground(), setBorder(), setComponentPopupMenu(), setDebugGraphicsOptions(), setDefaultLocale(), setDoubleBuffered(), setFocusTraversalKeys(), setFont(), setForeground(), setInheritsPopupMenu(), setInputMap(), setInputVerifier(), setMaximumSize(), setMinimumSize(), setNextFocusableComponent(), setOpaque(), setPreferredSize(), setRequestFocusEnabled(), setToolTipText(), setTransferHandler(), setVerifyInputWhenFocusTarget(), setVisible(), unregisterKeyboardAction(), firePropertyChange(), firePropertyChange(), firePropertyChange(), getRootPane(), getListeners(), paintImmediately(), paintImmediately(), repaint(), repaint(), revalidate(), setAlignmentX(), setAlignmentY(), add(), add(), add(), add(), add(), remove(), remove(), list(), list(), removeAll(), setFocusTraversalPolicyProvider(), transferFocusDownCycle(), validate(), getComponent(), getComponentCount(), getComponents(), getFocusTraversalPolicy(), invalidate(), isFocusCycleRoot(), isFocusCycleRoot(), setFocusTraversalPolicy(), addContainerListener(), applyComponentOrientation(), areFocusTraversalKeysSet(), countComponents(), deliverEvent(), doLayout(), findComponentAt(), findComponentAt(), getComponentAt(), getComponentAt(), getComponentZOrder(), getContainerListeners(), getFocusTraversalKeys(), getLayout(), getMousePosition(), insets(), isAncestorOf(), isFocusTraversalPolicyProvider(), isFocusTraversalPolicySet(), layout(), locate(), minimumSize(), paintComponents(), preferredSize(), printComponents(), removeContainerListener(), setComponentZOrder(), setFocusCycleRoot(), addPropertyChangeListener(), addPropertyChangeListener(), add(), remove(), toString(), getName(), contains(), size(), getLocation(), getParent(), setName(), list(), list(), list(), getSize(), location(), setSize(), setSize(), resize(), resize(), enable(), transferFocus(), transferFocusBackward(), addComponentListener(), addFocusListener(), addHierarchyBoundsListener(), addHierarchyListener(), addInputMethodListener(), addKeyListener(), addMouseListener(), addMouseMotionListener(), addMouseWheelListener(), bounds(), checkImage(), checkImage(), createImage(), createImage(), createVolatileImage(), createVolatileImage(), enableInputMethods(), getColorModel(), getComponentListeners(), getComponentOrientation(), getCursor(), getDropTarget(), getFocusListeners(), getFocusTraversalKeysEnabled(), getHierarchyBoundsListeners(), getHierarchyListeners(), getIgnoreRepaint(), getInputContext(), getInputMethodListeners(), getInputMethodRequests(), getKeyListeners(), getLocale(), getLocationOnScreen(), getMouseListeners(), getMouseMotionListeners(), getMouseWheelListeners(), getToolkit(), gotFocus(), hasFocus(), inside(), isBackgroundSet(), isCursorSet(), isFocusTraversable(), isFontSet(), isForegroundSet(), keyDown(), keyUp(), lostFocus(), mouseDown(), mouseDrag(), mouseEnter(), mouseExit(), mouseMove(), mouseUp(), move(), paintAll(), prepareImage(), prepareImage(), removeComponentListener(), removeFocusListener(), removeHierarchyBoundsListener(), removeHierarchyListener(), removeInputMethodListener(), removeKeyListener(), removeMouseListener(), removeMouseMotionListener(), removeMouseWheelListener(), setComponentOrientation(), setCursor(), setDropTarget(), setFocusTraversalKeysEnabled(), setFocusable(), setIgnoreRepaint(), show(), show(), transferFocusUpCycle(), getBackground(), getBounds(), getFocusCycleRootAncestor(), getFont(), getForeground(), getPeer(), getPropertyChangeListeners(), getPropertyChangeListeners(), getTreeLock(), isDisplayable(), isMaximumSizeSet(), isMinimumSizeSet(), isPreferredSizeSet(), isShowing(), isVisible(), nextFocus(), setBounds(), setBounds(), setLocale(), setLocation(), setLocation(), dispatchEvent(), getGraphicsConfiguration(), getMousePosition(), handleEvent(), isFocusable(), isLightweight(), isValid(), postEvent(), firePropertyChange(), firePropertyChange(), firePropertyChange(), firePropertyChange(), firePropertyChange(), action(), isEnabled(), isFocusOwner(), removePropertyChangeListener(), removePropertyChangeListener(), repaint(), repaint(), repaint(), wait(), wait(), wait(), equals(), hashCode(), getClass(), notify(), notifyAll(),

Esta dica foi revisada e atualizada para o 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 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
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

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



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