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 Engenharia Civil - Construção Civil
Card 1 de 28
Fases de uma obra

A Planta de Localização (escala usual 1:200) identifica a posição da obra no terreno. Serve para implantar o projeto.

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:

Firebird ::: Dicas & Truques ::: Tipos de Dados

Como usar os tipos CHAR e VARCHAR do Firebird

Quantidade de visualizações: 16548 vezes
O Firebird fornece dois tipos de dados básicos para armazenar informação em texto ou caracteres: CHAR e VARCHAR (O tipo BLOB também permite armazenar caracteres por meio de seu sub-tipo text).

CHAR e VARCHAR são tipos de dados que podem armazenar quaisquer informações do tipo texto. Números que não serão envolvidos em cálculos, tais como CEPs, números de ruas, etc, são geralmente armazenados em campos do tipo CHAR ou VARCHAR. O comprimento de um campo do tipo CHAR ou VARCHAR é informado entre parênteses, e pode ser um valor inteiro que vai de 1 até 32.767. Esta largura de caracteres é extremamente útil quando precisamos armazenar dados de tamanho fixo ou pré-definido, tais como códigos de CEPs para um determinado país.

Comparado com a maioria dos outros bancos de dados, o Firebird armazena somente as informações significantes. Se um campo é definido como CHAR(100), mas contém apenas 10 caracteres, os bytes definidos adicionalmente não são usados. Isso acontece porque o Firebird armazena os tipos CHAR e VARCHAR de forma igual, e não preenche o espaço não usado com caracteres vazios. Tanto CHAR quanto VARCHAR são guardados na memória em sua forma declarada, mas, o registro é comprimido antes da armazenagem.

Além disso, tenha em mente que os campos do tipo VARCHAR exigem mais espaço de armazenamento que os campos do tipo CHAR. Isso ocorre porque, ao armazenar um VARCHAR, o Firebird adiciona dois bytes que serão usados para guardar o real tamanho do campo (o tamanho declarado).

Desta forma, um CHAR ocupará menos espaço de armazenamento. Contudo, quando fazemos um SELECT envolvendo campos do tipo VARCHAR, o Firebird removerá os dois bytes adicionados anteriomente e retornará o valor armazenado. Quando um SELECT é efetuado com campos do tipo CHAR, o Firebird retorna o valor e os espaços em branco.

Em termos práticos podemos considerar esta regra: somente use CHAR se você for armazenar strings com poucos caracteres. A exceção a esta regra acontece quando estamos trabalhando com tabelas intermediárias exigidas para a exportação de dados para arquivos de tamanhos fixos. Neste caso os campos CHAR de tamanho fixo trarão uma enorme vantagem.

Esta forma eficiente de armazenamento do Firebird pode trazer algumas confusão, principalmente quando estamos importando dados, uma vez que bases de dados Paradox e dBase guardam também os espaços em branco. Assim, depois de importar um arquivo dBase de 10Mb para o Firebird, o resultado será algo em torno de 3-6Mb, ainda que todos os dados tenham sido importados corretamente.

Observe também que campos CHAR indexados não devem ter mais que 80 caracteres de comprimento (Firebird 2.5).

Quando estamos criando campos do tipo CHAR, este tipo de dados pode ser definido como CHAR ou CHARACTER. Já o tipo VARCHAR pode ser definido como VARCHAR, CHARACTER VARYING ou CHAR VARYING.

Veja um comando DDL CREATE TABLE usado para criar uma tabela do Firebird contendo campos do tipo CHAR e VARCHAR:

CREATE TABLE PESSOAS(
  ID     INTEGER NOT NULL,
  NOME   VARCHAR(40) NOT NULL,
  SEXO   CHAR(1) NOT NULL
);

Aqui o campo ID é do tipo INTEGER, NOME é do tipo VARCHAR(40) e SEXO é do tipo CHAR(1). Veja agora um comando DML INSERT INTO que mostra como inserir um novo registro nesta tabela:

INSERT INTO PESSOAS VALUES(12, 'OSMAR J. SILVA', 'M');


É importante notar que, se um campo for do tipo CHAR(1) e, na query INSERT ou UPDATE nós fornecermos dois ou mais caracteres, o Firebird se recusará a gravar ou atualizar o registro, exibindo a seguinte mensagem de erro:

Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
string right truncation.


PHP ::: Boletos Bancários, Arquivos de Remessa e Retornos do Banco ::: Caixa Econômica Federal - Banco 104

Boleto Bancário PHP - Como calcular o Dígito Verificador do Nosso Número (Módulo 11) - Boleto Caixa Econômica

Quantidade de visualizações: 3190 vezes
Nesta dica mostrarei, passo-a-passo, como calcular o Dígito Verificador do Nosso Número para o boleto e arquivos de remessa da Caixa Econômica Federal (Banco 104).

O Nosso Número é o número de identificação do título no Banco. Este número deve ser único nos seus sistemas, pois, sua combinação com o código do cedente o torno único também no sistema bancário. Além disso, é o Nosso Número que permite ao Banco e a empresa identificar os dados da
cobrança que deram origem ao bloqueto.

Na Especificação do Código de Barras para Bloquetos de Cobrança Sem Registro e Registrada no SIGCB (67.119 v005 micro), o Nosso Número é composto de 17 posições, sendo as 02 posições iniciais para identificar a Carteira e as 15 posições restantes são para livre utilização pelo Cedente.
Seu formato é XYNNNNNNNNNNNNNNN-D, onde:
a) X = Modalidade/Carteira de Cobrança (1-Registrada/2-Sem Registro);
b) Y = Emissão do bloqueto (4-Cedente);
c) NNNNNNNNNNNNNNN = Nosso Número (15 posições livres do Cedente);
d) D = Dígito Verificador do Nosso Número calculado através do Modulo 11, conforme código que mostrarei a seguir. Nos boletos e arquivos de remessa da Caixa, o Dígito Verificador do Nosso Número admite 0 (zero), diferentemente do DV Geral do Código de Barras (que também mostro como calcular em dicas dessa seção).

O cálculo que mostrarei a seguir é baseado no Módulo 11 e está de acordo com as instruções do Manual de Leiaute de Arquivo Eletrônico Padrão CNAB 240 - Cobrança Bancária Caixa - SIGCB - Versão 67.118 v024 micro e Especificação do Código de Barras para Bloquetos de Cobrança Sem Registro e Registrada no SIGCB (67.119 v005 micro). Tenha certeza de verificar sua versão do manual antes de usar o código apresentado.

Dito isso, veja o código PHP completo para uma função que recebe o Nosso Número e retorna seu dígito verificador:

<?php
  // função que recebe o nosso número
  // e retorna o seu dígito verificador
  function dvNossoNumero($nossoNumero){
    // o nosso número possui mais que 17 dígitos?
    if(strlen($nossoNumero) > 17){
      die("O Nosso Número não pode ter mais que 17 dígitos.");	
    }
	
    // agora vamos definir os índices de multiplicação
    $indices = "29876543298765432";
    // e aqui a soma da multiplicação coluna por coluna
    $soma = 0;
     
    // fazemos a multiplicação coluna por coluna agora
    for($i = 0; $i < strlen($nossoNumero); $i++){
      $soma = $soma + ((int)($nossoNumero[$i])) * 
        ((int)($indices[$i])); 
    }
    
    // obtemos o resto da divisão da soma por onze
    $resto = $soma % 11;
     
    // subtraímos onze pelo resto da divisão
    $digito = 11 - $resto;  	
	 
    // atenção: Se o resultado da subtração for
    // maior que 9 (nove), o dígito será 0 (zero)
    if($digito > 9){
      $digito = 0;    
    }
     
    return $digito;
  }
  
  // vamos calcular o Dígito Verificador do 
  // Nosso Número
  $carteira = "1"; //  
  $emissao = "4"; // cedente
  $nossoNumero = "19";
  // preenche com zeros até completar 15 posições
  $nossoNumero = sprintf("%015d", $nossoNumero);
  $nossoNumeroCompleto = $carteira . $emissao . $nossoNumero;
  $digito = dvNossoNumero($nossoNumeroCompleto);
  echo "O dígito verificador para o nosso número " . 
    $nossoNumeroCompleto . " é: " . $digito;
?>

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

O dígito verificador para o nosso número 14000000000028288 é: 5


Java ::: Classes e Componentes ::: JTable

Java Swing Avançado - Como exibir imagens nas células de uma JTable em suas aplicações Java Swing

Quantidade de visualizações: 15586 vezes
Nesta dica mostrarei como criar uma classe personalizada que estende a classe JLabel e implementa a interface TableCellRenderer. O objetivo é fornecer esta JLabel ao método setCellRenderer() de uma das colunas da JTable e exibir uma imagem ou foto ao lado do conteúdo da célula.

Veja o resultado da figura abaixo:



E aqui está o código Java Swing completo para o exemplo:

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
 
public class Estudos extends JFrame{
  public Estudos(){
    super("Exemplo de uma tabela simples");
         
    // colunas da tabela
    String[] colunas = {"Nome", "Idade", "Sexo"};
         
    // conteúdo da tabela   
    Object[][] conteudo = {
        {"Osmar J. Silva", "32", "Masculino"},
        {"Maria Clara Gomes", "19", "Feminino"},
        {"Fernando Gomes", "15", "Masculino"},
        {"Carlos Vieira", "40", "Masculino"}
    };
         
    // constrói a tabela
    JTable tabela = new JTable(conteudo, colunas);
     
    // quero exibir imagens ao lado do texto da primeira coluna
    TableCellRenderer tcr = new Imagem();
    TableColumn column = tabela.getColumnModel().getColumn(0);
    column.setCellRenderer(tcr);
  
    tabela.setPreferredScrollableViewportSize(new Dimension(350, 50));
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
             
    JScrollPane scrollPane = new JScrollPane(tabela);
    c.add(scrollPane);
         
    setSize(400, 300);
    setVisible(true);
  }
     
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}
 
class Imagem extends JLabel implements TableCellRenderer{
  public Imagem(){
    setOpaque(true);
  }
   
  public Component getTableCellRendererComponent(JTable table, 
     Object value, boolean isSelected, boolean hasFocus, int row, 
     int column){
     
     Icon imagem = new ImageIcon("C:\\estudos_java\\icon.gif");
     // certifique-se da existencia da imagem "icon.gif" antes de executar
     
     if(isSelected)
       setBackground(table.getSelectionBackground());
     else
       setBackground(table.getBackground());        
      
     setIcon(imagem);
     setText(value.toString());
         
     return this;       
  }
   
  public void validate() {}
  public void revalidate() {}
  protected void firePropertyChange(String propertyName, 
    Object oldValue, Object newValue) {}
  public void firePropertyChange(String propertyName, 
    boolean oldValue, boolean newValue) {}  
}



C++ ::: Fundamentos da Linguagem ::: Passos Iniciais

Apostila C++ para iniciantes - Como usar a macro EXIT_SUCCESS em C++

Quantidade de visualizações: 9901 vezes
A macro EXIT_SUCCESS, disponível na biblioteca cstdlib da linguagem C++, pode ser usada como argumento para a função exit() para sinalizar que o programa finalizou sua execução sem erros.

Os dois trechos de código abaixo são semelhantes:

1) Usando EXIT_SUCCESS para sinalizar que o programa foi finalizado com sucesso:

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
  // programa foi finalizado com sucesso
  return EXIT_SUCCESS;
}

2) Usando o valor 0 para sinalizar que o programa foi finalizado com sucesso:

#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
  // programa foi finalizado com sucesso
  return 0;
}



PHP ::: PHP + MySQL ::: MySQL Improved Extension (mysqli)

Listando todas as tabelas da base de dados selecionada - Como listar as tabelas de uma base de dados MySQL usando PHP - Revisado

Quantidade de visualizações: 12677 vezes
O comando DML SHOW TABLES do MySQL permite listar todas as tabelas de um determinado banco de dados. Nesta dica eu mostro como escrever um código PHP que dispara este comando e mostra o resultado. Note que estou usando a extensão mysqli, recomendada a partir do PHP 5.6.

Veja o código completo:

<?
  // vamos efetuar a conexão com o banco
  $con = new mysqli("localhost", "root",
    "osmar1234", "estudos");
 
  // conexão efetuada com sucesso?
  if($con->connect_errno){
    echo "Não foi possível efetuar a conexão: " . 
      $mysqli->connect_error;
    exit(); // vamos sair daqui 
  }   

  // lista todas as tabelas da base selecionada
  $query = mysqli_query($con, "SHOW TABLES");
  while($result = mysqli_fetch_array($query)){  
    echo $result[0] . "<br>";
  }
?>

Esta dica foi revisada, atualizada e testada no PHP 8.


Desafios, Exercícios e Algoritmos Resolvidos de PHP

Veja mais Dicas e truques de PHP

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á 47 usuários muito felizes estudando em nosso site.