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 Cards de Hidrologia
Card 1 de 75
O regime de escoamento laminar

O regime laminar na hidrologia refere-se ao tipo de fluxo de água que ocorre em um corpo d'água, como um rio ou um lago, onde o movimento da água é suave e ordenado. Nesse regime, as camadas de água deslizam umas sobre as outras de maneira paralela, sem causar turbulência.

Esse tipo de fluxo é caracterizado por um baixo número de Reynolds, o que significa que a viscosidade da água é predominante em relação às forças inerciais. O regime laminar é comum em águas calmas ou em seções de rios com baixa inclinação e velocidade de fluxo.

O entendimento do regime laminar é importante para a modelagem de transporte de sedimentos, a qualidade da água e a gestão de recursos hídricos, pois influencia a dinâmica do ecossistema aquático e a erosão das margens.

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 ::: Colunas e Pilares

Como rotacionar colunas e pilares no Revit via programação usando a função RotateElement() da classe ElementTransformUtils da Revit C# API

Quantidade de visualizações: 629 vezes
Nesta dica mostrarei como podemos usar a função RotateElement() da classe ElementTransformUtils da Revit C# API para rotacionar uma coluna ou pilar no Revit, tudo isso via programação.

Essa dica é muito útil para programadores Revit C#, pois traz as técnicas necessárias para selecionar um único elemento na área de desenho do Revit, assim como obter sua caixa delimitadora (BoundingBox), seu ponto geométrico central e, o mais importante, fazer a rotação do elemento em seus eixos.

O primeiro passo é pedir para o usuário selecionar o pilar ou a coluna usando a função PickObject() da classe Selection, que retorna uma Reference. Após a seleção do elemento nós usamos a função GetElement() da classe Document para retornar o elemento como uma variável FamilyInstance, ou seja, uma instância de família do Revit.

De posse da instância de família nós usamos a função get_BoundingBox() para obter e retornar um objeto da classe BoundingBoxXYZ. É esse objeto que usamos para obter o ponto máximo, o ponto mínimo e o ponto geométrico central da coluna ou pilar.

O passo final é usar a função RotateElement() da classe ElementTransformUtils para rotacionar a coluna ou pilar de acordo com o ângulo de rotação desejado. Note que fiz a conversão de ângulos em graus para ângulos em radianos antes de efetuar a rotação.

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 Autodesk.Revit.DB.Architecture;
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;
      UIDocument uidoc = this.ActiveUIDocument; 
      
      // agora mostramos uma mensagem para o usuário selecionar uma
      // coluna ou pilar
      TaskDialog.Show("Aviso", "Selecione uma coluna ou pilar");
        
      // obtemos uma referência ao objeto Selection do
      // UIDocument ativo
      Selection selecao = uidoc.Selection;
      
      // e finalmente esperamos que o usuário selecione o elemento
      Reference selecionado = selecao.PickObject(ObjectType.Element,
        "Selecione uma coluna ou pilar");
      
      // agora testamos se o usuário realmente selecionou um
      // elemento
      if (selecionado != null) {
        // vamos obter o elemento selecionado a partir da
        // referência
        FamilyInstance coluna = uidoc.Document.GetElement(selecionado) 
          as FamilyInstance;
        // vamos obter o elemento BoundingBoxXYZ
        BoundingBoxXYZ bounding = coluna.get_BoundingBox(null);
         
        // vamos obter as informações da BoundingBoxXYZ
        // primeiro o ponto mínimo (canto esquerdo inferior e
        // a parte de trás da caixa delimitadora)
        XYZ pontoMinimo = bounding.Min;
        // agora o ponto máximo (canto direito superior e
        // a parte da frente da caixa delimitadora)
        XYZ pontoMaximo = bounding.Max;
        
        // agora obtemos o ponto central da coluna         
        XYZ centro = (pontoMaximo + pontoMinimo) * 0.5;
        // construímos a linha que servirá de eixo de rotação
        Line eixos = Line.CreateBound(centro, centro + XYZ.BasisZ);
        // definimos o ângulo de rotação em graus        
        double angulo_rotacao_graus = 45;
        // convertemos para radianos
        double angulo_rotacao_radianos = angulo_rotacao_graus * (Math.PI / 180);        
        
        // iniciamos a transação
        Transaction transacao = new Transaction(doc);
        transacao.Start("Como rotacionar colunas e pilares no Revit");
        
        // rotacionamos a coluna ou pilar
        ElementTransformUtils.RotateElement(doc, coluna.Id, eixos,
          angulo_rotacao_radianos);
        
        // fazemos o commit da transação
        transacao.Commit();      
     
        // e mostramos o resultado
        TaskDialog.Show("Aviso", "A coluna foi rotacionada com sucesso.");
      }
    }
      
    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
  }
}



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 da conta corrente - Módulo 11 - Boleto Caixa Econômica CNAB240

Quantidade de visualizações: 2223 vezes
Nesta dica mostrarei, passo-a-passo, como calcular o dígito verificador da conta corrente para o boleto e arquivos de remessa da Caixa Econômica Federal (Banco 104) de acordo com o Manual de Leiaute de Arquivo Eletrônico Padrão CNAB 240 - Cobrança Bancária Caixa - SIGCB - Versão 67.118 v024 micro. Tenha certeza de verificar sua versão do manual antes de usar o código abaixo.

O Dígito Verificador da Conta é um código adotado pelo banco, em nosso caso a Caixa Econômica, para verificação da autenticidade do número da conta corrente, e tal número deverá ser calculado através do módulo 11.

Mostro abaixo o código completo para o cálculo do dígito verificador. Note que só precisamos informar o número da conta (sem o dígito) e o código se encarrega de calcular o dígito. Aqui eu informei o número da conta em uma variável, mas você pode modificar o código para que o valor venha de um formulário ou do banco de dados.

Eis o código PHP:

<?php
// função que recebe o número da conta e devolve
// o dígito verificador
function digitoVerificadorConta($conta){
  // primeiro vamos remover os espaços do número da conta
  $conta = trim($conta);
  // agora precisamos adicionar os zeros necessários
  // para completar 12 posições
  $conta = sprintf("%012d", $conta);
  // agora vamos definir os índices de múltiplicação
  $indices = "543298765432";
  // 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($conta); $i++){
   $soma = $soma + ((int)($conta[$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 obter o dígito verificador para a conta a seguir
$conta = "109990";
$digito = digitoVerificadorConta($conta);
echo "O dígito verificador para a conta " . $conta .
  " é: " . $digito;
?>

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

O dígito verificador para a conta 109990 é: 6

É importante observar que o dígito verificador da agência e também do par agência/conta são sempre informados pela Caixa, geralmente pela agência na qual nossos clientes possuem conta.


C ::: Desafios e Lista de Exercícios Resolvidos ::: Struct (Estruturas, Registros)

Exercício Resolvido de C - Programa de cálculo de médias de alunos. Escrever um programa C que cadastre o nome, a matrícula e duas notas de vários alunos

Quantidade de visualizações: 3540 vezes
Pergunta/Tarefa:

Programa de cálculo de médias de alunos. Escrever um programa C que cadastre o nome, a matrícula e duas notas de vários alunos. Em seguida imprima a matrícula, o nome e a média de cada um deles.

Seu código deverá, obrigatoriamente, usar a estrutura abaixo para a representação de cada aluno:

// estrutura Aluno
typedef struct{
  int matricula;
  char nome[100];
  float nota1;
  float nota2;
} Aluno;
Sua saída deverá ser parecida com:

LEITURA DOS ALUNOS:

Matrícula do Aluno 1: 123
Nome do Aluno 1: OSMAR J SILVA
Nota 1 do Aluno 1: 8,5
Nota 2 do Aluno 1: 9,3
Matrícula do Aluno 2: 432
Nome do Aluno 2: FABIANA CASTRO
Nota 1 do Aluno 2: 9
Nota 2 do Aluno 2: 8,2

DADOS DOS ALUNOS:

DADOS DO ALUNO 1: 
Matrícula: 123
Nome: OSMAR J SILVA
Nota 1: 8,50
Nota 2: 9,30
Média: 8,90

DADOS DO ALUNO 2:
Matrícula: 432
Nome: FABIANA CASTRO
Nota 1: 9,00
Nota 2: 8,20
Média: 8,60
Resposta/Solução:

Veja a resolução comentada deste exercício usando C:

Código para alunos.c:

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// estrutura Aluno
typedef struct{
  int matricula;
  char nome[100];
  float nota1;
  float nota2;
} Aluno;

// define a quantidade de alunos que serão lidos
#define QUANT_ALUNOS 2

int main(int argc, char *argv[]) {
  int i; // controle do laço
  Aluno alunos[QUANT_ALUNOS]; // vetor de alunos
	
  setlocale(LC_ALL,""); // para acentos do português
	
  printf("LEITURA DOS ALUNOS:\n\n");
	
  for(i = 0; i < QUANT_ALUNOS; i++){
    // vamos ler a matrícula do aluno
    printf("Matrícula do Aluno %d: ", (i + 1));
    scanf("%d", &alunos[i].matricula);
    fflush(stdin); // para o scanf não sair pulando o gets
    // agora o nome do aluno
    printf("Nome do Aluno %d: ", (i + 1));
    gets(alunos[i].nome);
    // vamos ler a primeira nota
    printf("Nota 1 do Aluno %d: ", (i + 1));
    scanf("%f", &alunos[i].nota1);
    // vamos ler a segunda nota
    printf("Nota 2 do Aluno %d: ", (i + 1));
    scanf("%f", &alunos[i].nota2);
  }

  // agora vamos mostrar os alunos lidos, com suas notas
  // e suas médias aritméticas
  printf("\nDADOS DOS ALUNOS:\n");
	
  for(i = 0; i < QUANT_ALUNOS; i++){
    printf("\nDADOS DO ALUNO %d:\n ", (i + 1));
    printf("Matrícula: %d\n", alunos[i].matricula);
    printf("Nome: %s\n", alunos[i].nome);
    printf("Nota 1: %.2f\n", alunos[i].nota1);
    printf("Nota 2: %0.2f\n", alunos[i].nota2);
    printf("Média: %.2f\n", (alunos[i].nota1 + alunos[i].nota2) / 2);
  }
	
  printf("\n\n");
  system("pause");
  return 0;
}



Python ::: Dicas & Truques ::: Lista (List)

Como percorrer os elementos de uma lista Python usando o laço for e índices

Quantidade de visualizações: 14309 vezes
Nesta dica eu mostro como é possível usar o laço for da linguagem Python para percorrer individual os elementos de uma list. Veja o código completo para o exemplo:

# função principal do programa
def main():
  # cria uma lista de nomes
  nomes = ['Carlos', 'Ricardo', 'Osmar']
 
  # percorre a lista usando o laço for
  for i in range(len(nomes)):
    print("%d - %s" % ((i + 1), nomes[i]))
  
if __name__== "__main__":
  main()

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

1 - Carlos
2 - Ricardo
3 - Osmar


Python ::: Dicas & Truques ::: Lista (List)

Python para iniciantes - Como inserir itens em posições específicas de uma lista usando o método insert()

Quantidade de visualizações: 11341 vezes
Nesta dica eu mostrarei como usar a função insert() do objeto List da linguagem Python para inserir um novo elemento em uma determinada posição da lista. A função recebe o índice no qual o elemento será inserido e o seu valor.

Veja o código completo para o exemplo:

# função principal do programa
def main():
  # cria uma lista de inteiros
  valores = [2, 5, 12, 2, 3, 32, 18]
  print("Valores na lista:", valores, "\n")

  # valor a ser inserido
  valor = int(input("Informe um inteiro: "))
  # índice a ser inserido (começa em 0)
  pos = int(input("Informe uma posicao: "))
   
  # insere o valor na posição determinada
  valores.insert(pos, valor)
 
  # exibe os valores da lista novamente
  print("Valores na lista:", valores, "\n")
  
if __name__== "__main__":
  main()

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

Valores na lista: [2, 5, 12, 2, 3, 32, 18]
Informe um inteiro: 45
Informe uma posicao: 2
Valores na lista: [2, 5, 45, 12, 2, 3, 32, 18]


Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

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