Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD e VBA
PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

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:

Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear

Java para Geometria Analítica e Álgebra Linear - Como efetuar a soma de matrizes usando Java

Quantidade de visualizações: 2042 vezes
A soma de matrizes (assim como a subtração e multiplicação) é parte integrante da disciplina de Álgebra Linear e seu cálculo é muito simples.

Assumindo duas matrizes A e B, ambas com a mesma quantidade de linhas e colunas, a matriz soma pode ser obtida da seguinte forma:

\[A + B = \left[\begin{matrix} 3 & 4 & -1 \\ 8 & 2 & 1 \\ 7 & 5 & -3 \end{matrix}\right] + \left[\begin{matrix} -2 & 6 & 4 \\ 1 & 8 & 9 \\ -4 & 10 & 3 \end{matrix}\right] = \left[\begin{matrix} 1 & 10 & 3 \\ 9 & 10 & 10 \\ 3 & 15 & 0 \end{matrix}\right] \]

Um elemento da matriz é representando por sua posição linha e coluna. Usamos a letra i para a linha e j para a coluna, ou seja, aij. Dessa forma, o elemento na primeira linha e primeira coluna da matriz é a11, o elemento na primeira linha e segunda coluna é a12 e assim por diante.

Então, a soma das duas matrizes é feita da seguinte forma: Cij = Aij + Bij.

E agora veja o código Java que declara duas matrizes matrizA e matrizB e obtém uma terceira (matrizC) contendo a soma das duas anteriores. Novamente, note o requisito de que as matrizes deverão ter o mesmo número de linhas e colunas:

package arquivodecodigos;
 
public class Estudos{
  public static void main(String args[]){
    // declarar, construir e inicializar as matrizes
    int matrizA[][] = {{3, 4, -1}, {8, 2, 1}, {7, 5, -3}};
    int matrizB[][] = {{-2, 6, 4}, {1, 8, 9}, {-4, 10, 3}};
    
    // esta é a matriz soma
    int matrizSoma[][] = new int[3][3];  
    
    // e agora vamos prosseguir com a soma
    for(int i = 0; i < matrizA.length; i++){
      for(int j = 0; j < matrizA[0].length; j++){
        matrizSoma[i][j] = matrizA[i][j] + matrizB[i][j];     
      } 
    }
    
    // vamos exibir os valores da primeira matriz
    System.out.println("Elementos da matriz A:");
    for(int i = 0; i < matrizA.length; i++){
      for(int j = 0; j < matrizA[0].length; j++){
        System.out.printf("%5d  ", matrizA[i][j]);
      }
      System.out.println();
    }
    
    // vamos exibir os valores da primeira matriz
    System.out.println("\nElementos da matriz B:");
    for(int i = 0; i < matrizB.length; i++){
      for(int j = 0; j < matrizB[0].length; j++){
        System.out.printf("%5d  ", matrizB[i][j]);
      }
      System.out.println();
    }
    
    // vamos exibir os valores da matriz soma
    System.out.println("\nElementos da matriz soma:");
    for(int i = 0; i < matrizSoma.length; i++){
      for(int j = 0; j < matrizSoma[0].length; j++){
        System.out.printf("%5d  ", matrizSoma[i][j]);
      }
      System.out.println();
    }
  }
}

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

Elementos da matriz A:
    3      4     -1  
    8      2      1  
    7      5     -3  

Elementos da matriz B:
   -2      6      4  
    1      8      9  
   -4     10      3  

Elementos da matriz soma:
    1     10      3  
    9     10     10  
    3     15      0



Java ::: Fundamentos da Linguagem ::: Modificadores

Programação Orientada a Objetos em Java - Como usar o modificador static em suas aplicações Java

Quantidade de visualizações: 19309 vezes
O modificador static pode ser aplicado a métodos e variáveis. Além disso, este modificador pode ser usado para a inicialização de códigos estáticos de uma classe.

Um recurso marcado com este modificador pertence à uma classe, e não às suas instâncias. Isso quer dizer que podemos acessar métodos ou variáveis estáticas sem a necessidade de criar uma cópia da classe. Veja por exemplo o método main() usado como ponto de entrada para um aplicativo Java:

public static void main(String args[]){
  //
}

Como o método main é chamado antes mesmo de qualquer cópia de classes serem criadas, o modificador static se torna essencial. Veja o que acontece se o retirarmos:

public class Estudos{
  public void main(String args[]){
    System.out.println("Olá");
    System.exit(0);
  }
}

O código compila sem problemas. Porém, ao tentarmos executar teremos o seguinte erro:

Exception in thread "main" 
java.lang.NoSuchMethodError: main
Vejamos agora o que acontece quando tentamos acessar uma variável não estática a partir de um trecho de código estático:

public class Estudos{
  String frase = "Estou aqui!";   

  public static void main(String args[]){
    System.out.println(frase);
    System.exit(0);
  }
}

Ao tentarmos compilar este código teremos o seguinte erro:

Estudos.java:5: non-static variable frase cannot be 
referenced from a static context
 System.out.println(frase);
                       ^
1 error
Este erro aconteceu porque a variável frase foi definida sem o modificar static. Isso faz com que ela pertença à instâncias da classe, ou seja, para acessá-la teríamos que criar uma cópia da classe Estudos. Experimente alterá-la para:

static String frase = "Estou aqui!";

Execute o programa novamente e veja como o erro desaparece.

Para demonstrar como recursos estáticos pertencem mesmo à classe e não às suas cópias, considere o seguinte exemplo:

public class Estudos{
  public static void main(String args[]){
    for(int i = 0; i < 5; i++){
      Cliente cliente = new Cliente();
      System.out.println("Sou o cliente número: " + 
        cliente.quant);
    } 
   
    System.exit(0);
  }
}

class Cliente{
  public static int quant = 0;   

  public Cliente(){
    quant++;
  }
}

Ao compilar e executar este código você terá o seguinte resultado:

Sou o cliente número: 1
Sou o cliente número: 2
Sou o cliente número: 3
Sou o cliente número: 4
Sou o cliente número: 5
Isso aconteceu porque a classe Cliente possui uma variável estática que é incrementada todas as vezes que o construtor da classe é chamado.

Veremos agora o uso do modificador static na inicialização de blocos de código estáticos. Observe o código:

public class Estudos{
  public static void main(String args[]){
    for(int i = 0; i < 5; i++){
      Cliente cliente = new Cliente();
      System.out.println("Sou o cliente número: " + 
        cliente.quant);
    } 
   
    System.exit(0);
  }
}

class Cliente{
  public static int quant = 0;   

  public Cliente(){
    quant++;
  }  

  static{
    System.out.println("Bloco estático");
  }
}

Compile e execute este exemplo. Você terá o seguinte resultado:

Bloco estático
Sou o cliente número: 1
Sou o cliente número: 2
Sou o cliente número: 3
Sou o cliente número: 4
Sou o cliente número: 5
Veja que criamos 5 cópias da classe Cliente. Porém, o bloco de código estático foi executado apenas uma vez, e antes mesmo do construtor da classe.


Python ::: Dicas & Truques ::: Strings e Caracteres

Apostila Python - Como verificar se uma string contém apenas números (dígitos)

Quantidade de visualizações: 19312 vezes
Este exemplo mostra como como usar a função isdigit() para verificar se uma string contém apenas números. Se alguma letra ou caractere especial estiver contido, a função retorna False.

Veja o código Python completo:

def main():
  string = "49380"
 
  if string.isdigit():
    print("A string contém apenas números")
  else:
    print("A string não contém somente números")
 
if __name__== "__main__":
  main()

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

A string contém apenas números


Revit C# ::: Dicas & Truques ::: Eixos - Grids

Como criar eixos no Revit via programação usando a função Create() da classe Grid da Revit C# API

Quantidade de visualizações: 504 vezes
Os eixos, ou grids, são linhas que auxiliam na construção de um projeto, ou seja, uma espécie de malha de linhas. Eles são mais utilizados quando se trabalha com elementos estruturais, para a locação de colunas e pilares.

No Revit, os eixos podem ser verticais, horizontais, inclinados e até em forma de arcos. Para criá-los, vá na aba Arquitetura, seção Dados e localize o item Eixo (ou digite GR).

Via programação nós podemos criar um eixo no Revit usando a função Create() da classe Grid da Revit C# API. Neste exemplo mostrarei, em detalhes, como isso pode ser feito.

O primeiro passo é obter uma referência ao documento UI atual usando this.ActiveUIDocument. Após isso acessar o documento usando uidoc.Document. As coordenadas geométricas de início e fim do eixo são criadas como objetos da classe XYZ. Então, de posse das coordenadas, nós criamos um objeto Line usando a função Line.CreateBound().

Para finalizar nós usamos a função Grid.Create() para desenhar o eixo na área de desenho do Revit. Note como passamos o objeto Line e uma referência ao documento atual para esta função. Veja ainda o uso de uma Transaction para abrir uma transação do Revit, criar o elemento e fechá-la em seguida.

Este exemplo criará um eixo com o LevelId -1, ou seja, no primeiro nível do documento. Em outras dicas dessa seção eu mostro como definir o nível para o grid recém-criado.

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

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;

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) {
      // primeiro obtemos uma referência ao documento atual
      UIDocument uidoc = this.ActiveUIDocument;
      Document doc = uidoc.Document;
             
      // criamos a linha geométrica para posicionar o eixo
      // não se esqueça de converter metros para pés      
      XYZ inicio = new XYZ(0, -100, 0);
      XYZ final = new XYZ(0, 100, 0);
      
      // construímos a linha
      Line linhaGeometrica = Line.CreateBound(inicio, final);
 
      // iniciamos uma nova transação
      using(Transaction t= new Transaction(doc)) {
        t.Start("Criar um novo Grid");
        // e criamos o novo eixo
        Grid eixo = Grid.Create(doc, linhaGeometrica);
        t.Commit();
        // e mostramos o resultado
        TaskDialog.Show("Aviso", "O novo eixo foi criado com o ID: " +
          eixo.Id);
      }
    }
      
    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
  }
}

Ao executar este código Revit C# API teremos o seguinte resultado:

O novo eixo foi criado com o ID: 49827


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

Como remover elementos repetidos de um array em Ruby usando as funções uniq e uniq!

Quantidade de visualizações: 10643 vezes
Em algumas situações nós precisamos excluir os itens duplicados de um array em Ruby. Para isso nós podemos usar as funções uniq e uniq!. A função uniq remove os itens duplicados e retorna um novo array, enquanto uniq! opera no array original, ou seja, modificando seus valores.

Veja o código Ruby completo para o exemplo:

# Cria um array de inteiros com duplicações
valores = [2, 3, 3, 5, 5, 6, 3]

# Exibe os valores do array original
puts "Os valores do array são:\n"
valores.each do | valor |
  print valor.to_s + " "
end

# Obtém um novo array sem as duplicações
valores2 = valores.uniq
puts "\n\nO novo array sem repetições:\n"
valores2.each do | valor |
  print valor.to_s + " "
end

# Remove as duplicações do array original
valores.uniq!
puts "\n\nO array original sem repetições:\n"
valores.each do | valor |
  print valor.to_s + " "
end

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

Os valores do array são:
2 3 3 5 5 6 3

O novo array sem repetições:
2 3 5 6

O array original sem repetições:
2 3 5 6


Desafios, Exercícios e Algoritmos Resolvidos de Ruby

Veja mais Dicas e truques de Ruby

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.


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