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:

Revit C# ::: Dicas & Truques ::: Tratamento de Erros

Como corrigir o erro OperationCanceledException em macros e add-ins do Revit C# API

Quantidade de visualizações: 684 vezes
Nesta dica mostrarei como podemos tratar a exceção OperationCanceledException em macros e plug-ins feitos para o Revit usando a Revit C# API. Esta exceção está no namespace Autodesk.Revit.Exceptions e deve ser declarada por seu nome completo, para não ser confundida com System.OperationCanceledException.

O erro OperationCanceledException ocorre quando uma operação é cancelada de forma inesperada. Por exemplo, no código abaixo nós pedimos para o usuário selecionar um grupo e, em seguida, informar um ponto na área de desenho do Revit para que o grupo seja copiado e colocado no ponto indicado.

Se o usuário clicar com o botão direito ou pressionar Esc, a operação é cancelada automaticamente. O tratamento da exceção OperationCanceledException nos permite reagir a isso, indicando ao usuário o melhor caminho a ser seguido.

O código apresentado aqui já foi visto em dicas e truques sobre a criação e manipulação de grupos de elementos no Revit usando a Revit C# API. No entanto, no código apresentado eu não fiz o tratamento de exceções.

Veja o código Revit C# API completo para o exemplo:

using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;
 
namespace Estudos {
  [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.
    TransactionMode.Manual)]
  [Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")]
  public partial class ThisApplication {
    private void Module_Startup(object sender, EventArgs e) {
      // vamos obter uma referência ao Document ativo
      Document doc = this.ActiveUIDocument.Document;
      
      // Vamos definir um objeto Reference para guardar
      // o elemento selecionado pelo usuário
      Reference ref_selecionado = null;
  
      // pedimos para o usuário selecionar um grupo
      Selection selecao = this.ActiveUIDocument.Selection;
      
      try {
        ref_selecionado = selecao.PickObject(ObjectType.Element,
          "Selecione um grupo");
        Element elem = doc.GetElement(ref_selecionado);
        Group group = elem as Group;
      
        // vamos pedir para o usuário selecionar um ponto na área de
        // desenho do Revit
        XYZ ponto = selecao.PickPoint(
          "Selecione um ponto para posicionar o grupo");
      
        // criamos uma nova transação e posicionamos a cópia do
        // grupo nas coordenadas indicadas pelo usuário
        Transaction transacao = new Transaction(doc);
        transacao.Start("Copiar Grupo no Revit");
        doc.Create.PlaceGroup(ponto, group.GroupType);
        transacao.Commit();
      
        // mostramos o resultado
        TaskDialog.Show("Aviso", "O grupo foi copiado com sucesso.");
      }
      // Se o usuário clicar com o botão direito ou pressionar Esc
      catch (Autodesk.Revit.Exceptions.OperationCanceledException ex) {
        TaskDialog.Show("Aviso", "Erro: Operação cancelada pelo usuário");
      }
      catch (Exception ex) {
        TaskDialog.Show("Aviso", "Erro: " + ex.Message);
      }
    }
    
    private void Module_Shutdown(object sender, EventArgs e) {
      // para fazer alguma limpeza de memória ou algo assim
    }
 
    #region Revit Macros generated code
    private void InternalStartup() {
      this.Startup += new System.EventHandler(Module_Startup);
      this.Shutdown += new System.EventHandler(Module_Shutdown);
    }
    #endregion
  }
}

Se o usuário cancelar a operação, ou seja, não selecionar nenhum grupo (talvez pressionando a tecla Esc), o código reagirá e mostrará a mensagem:

Erro: The user aborted the pick operation.

Se, em vez de selecionar um grupo, o usuário selecionar um outro elemento, então a mensagem de erro será:

Erro: Referência de objeto não definida para uma instância de um objeto.


Java ::: Coleções (Collections) ::: HashMap

Como retornar a quantidade de mapeamentos (chave-valor) em um HashMap do Java usando o método size()

Quantidade de visualizações: 8418 vezes
Em algumas situações precisamos saber a quantidade de mapeamentos (chave-valor) contidos em um HashMap. Para isso nós podemos usar o método size(). Veja o exemplo:

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    
    // vamos criar uma instância de HashMap
    HashMap<Integer, String> clientes = new HashMap<Integer, String>();

    // vamos adicionar três chaves e seus valores
    clientes.put(new Integer(1), "Osmar J. Silva");
    clientes.put(new Integer(2), "Salvador Miranda de Andrade");
    clientes.put(new Integer(3), "Marcos da Costa Santos");
      
    // vamos obter a quantidade de mapeamentos neste HashMap
    int quant = clientes.size();

    // vamos exibir o resultado
    System.out.println("Este HashMap contém " + quant +
      " mapeamentos.");    

    System.exit(0);
  }
}

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

Este HashMap contém 3 mapeamentos.


Delphi ::: Dicas & Truques ::: Strings e Caracteres

Como extrair uma substring de uma string usando a função AnsiMidStr() do Delphi

Quantidade de visualizações: 31518 vezes
Em algumas situações precisamos obter uma substring de uma string. Em Delphi isso pode ser feito por meio da função AnsiMidStr(). Esta função requer a string a partir da qual a substring será obtida, a posição inicial da substring (começando em 1) e a quantidade de caracteres que comporâo a substring. O retorno será uma nova string contendo a substring obtida. Veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  frase, substring: string;
begin
  frase := 'Programar em Delphi é muito bom';

  // vamos obter a substring "Delphi"
  substring := AnsiMidStr(frase, 14, 6);

  // vamos exibir o resultado
  ShowMessage('Resultado: ' + substring);
end;

Não se esqueça de adicionar a unit StrUtils no uses do seu formulário.

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


C++ ::: Dicas & Truques ::: Strings e Caracteres

Como acessar os caracteres individuais de uma string em C++ usando a função at()

Quantidade de visualizações: 7870 vezes
Nesta dica mostrarei como podemos usar a função at() para percorrer os caracteres individuais de uma palavra, frase ou texto em C++.

Esta função recebe o índice do caractere que queremos acessar e retorna o caractere correspondente. Note que o índice começa em 0.

Veja o código C++ completo para o exemplo:

#include <iostream>
#include <string>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // vamos criar uma nova string
  string palavra("PYTHON");
    
  // vamos percorrer os caracteres um de cada vez  
  for(int i = 0; i < palavra.size(); i++){
    cout << palavra.at(i) << "\n";              
  }
  
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

P
Y
T
H
O
N


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

Arquivos e diretórios em PHP - Como montar uma árvore de arquivos e diretórios recursivamente

Quantidade de visualizações: 17035 vezes
Este exemplo mostra como listar todo o conteúdo de um diretório recursivamente em forma de árvore. Note que usei um objeto da classe RecursiveDirectoryIterator da linguagem PHP para facilitar nosso trabalho.

Veja o código completo para o exemplo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
 
<?php
  // nome e local do diretório
  $dir = $_SERVER["DOCUMENT_ROOT"] . "/escola/app";
 
  // função recursiva que lista o diretório atual
  function montarArvore($it){ 
    echo '<ul>';
    for(; $it->valid(); $it->next()){ 
      if($it->isDir() && !$it->isDot()) { 
        printf('<li>%s</li>', $it->current()); 
        
        if($it->hasChildren()) { 
          $filho = $it->getChildren(); 
          echo '<ul>' . montarArvore($filho) . '</ul>'; 
        } 
      } 
      elseif($it->isFile()) { 
        echo '<li>'. $it->current() . '</li>'; 
      } 
    } 
   
    echo '</ul>'; 
  } 
 
  // faz a primeira chamada à função recursiva
  montarArvore(new RecursiveDirectoryIterator($dir));
?>

</body>
</html>



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 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 Apenas R$ 19,90


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