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 ::: Pacote java.lang ::: String

Java para iniciantes - Como usar o método replace() da classe String para efetuar a substituição de caracteres em uma string

Quantidade de visualizações: 9814 vezes
Em algumas situações gostaríamos de substituir caracteres (não substrings) em uma string. Isso pode ser feito por meio do método replace() da classe String. Veja sua assinatura:

public String replace(char oldChar, char newChar)
O parâmetro oldChar representa o caractere que será substituído pelo valor no parâmetro newChar. Note que todas as ocorrências de oldChar serão substituídas por newChar. O resultado será um novo objeto String com as substituições aplicadas. Se não houver substituições a string atual é retornada.

Veja um trecho de código no qual substituímos todas as letras "a" por "e" e retornamos uma nova string com as substituições:

public class Estudos {
  public static void main(String[] args) {
    String frase = "Programar em Java é muito bom";
    System.out.println("Frase original: " + frase);
    
    // vamos substituir todas as letras "a" por "e"
    frase = frase.replace('a', 'e');
    System.out.println("Depois da substituição: " + frase);
  }
}

Após a execução deste código teremos o seguinte resultado:

Frase original: Programar em Java é muito bom
Depois da substituição: Progremer em Jeve é muito bom



Laravel ::: Artigos e Tutorias ::: CRUD - CREATE, READ, UPDATE, DELETE

Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 2

Quantidade de visualizações: 3352 vezes
Na parte 1 deste tutorial sobre CRUD em Laravel usando PHP e MySQL (MariaDB) nós criamos a base de dados MySQL para a nossa aplicação biblioteca, criamos a aplicação Laravel, fizemos a migração e rodamos a migração, o que resultou na criação de uma tabela MySQL chamada livros.

Nessa segunda parte nós vamos iniciar criando a rota de redirecionamento das ações do CRUD. Vamos criar também o controller e as primeiras views.

Criando a rota de redirecionamento - routes/web.php

Vá até o diretório C:\xampp\htdocs\biblioteca\routes e abra o arquivo web.php. Você verá que ele possui o seguinte conteúdo:

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------
| Web Routes
|--------------------------------------
|
| Here is where you can register web routes
| for your application. These routes are loaded
| by the RouteServiceProvider within a group
| which contains the "web" middleware group.
| Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});
?>

Vamos alterar o seu conteúdo para a versão abaixo:

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\LivroController;

Route::resource('livros', LivroController::class);

?>

Veja que criamos uma rota para um recurso, que neste caso será o controller LivroController. Passamos o nome livros para esta rota, de forma que a URL http://localhost/biblioteca/public/livros/create abrirá a view para cadastrar um novo livro.

Hora de criar o controller e o model - a parte controle e modelo do MVC

Com a rota de direcionamento devidamente criada, vamos partir para o controller. Abra uma janela de terminal e digite o comando abaixo:

C:\xampp\htdocs\biblioteca>php artisan make:controller LivroController --resource --model=Livro

O Artisan nos perguntará se queremos criar o modelo também. Informe "yes" e pressione Enter.

A App\Models\Livro model does not exist. Do you want to generate it? (yes/no) [yes]:
> yes

Se tudo correr bem, você verá a seguinte mensagem:

Model created successfully.
Controller created successfully.

Vá até o diretório C:\xampp\htdocs\biblioteca\app\Http\Controllers e localize o arquivo LivroController.php. Abra-o e note que temos os métodos index(), create(), store(), show(), edit(), update() e destroy(). Cada um destes métodos corresponde a uma ação que podemos executar na tabela de livros. Vamos começar com o método create(). Limpe todo o conteúdo deste controller e deixe apenas o código abaixo:

<?php

namespace App\Http\Controllers;

use App\Models\Livro;
use Illuminate\Http\Request;

class LivroController extends Controller{
  // mostra a view para cadastrar um novo livro
  public function create(){
    return view('livros.create');
  }
}

?>

O método create() apenas exibirá a página (view) que nos permitirá cadastrar um novo livro. Porém, antes de criar a primeira view, vá no diretório C:\xampp\htdocs\biblioteca\app\Models, localize e abra o arquivo Livro.php. Vamos modificá-lo para o código abaixo:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Livro extends Model{
  use HasFactory;

  protected $fillable = [
    'titulo', 'autor', 'paginas'
  ];
}

?>

Veja que informamos, no model Livro, os campos da tabela que serão preenchidos com as nossas informações. Os campos id, created_at e updated_at serão gerenciados pelo Laravel.

A view para cadastrar um novo livro

Chegou o grande momento. Vamos criar a página que nos permitirá cadastrar os livros. Para manter as coisas simples, escreveremos um view bem simples, sem muita formatação. Mas você poderá deixá-la mais bonita mais tarde. O importante aqui é entender a funcionalidade.

Veja o código completo para a view create.blade.php:

<html>
<head>
  <meta charset="utf-8">
  <title>Biblioteca</title>
</head>
<body>

<h1>Novo Livro</h1>

@if($status = Session::get('mensagem'))
  <h2>{{ $status }}</h2>
@endif

@if($errors->any())
  <h2>Houve alguns erros ao processar o formulário</h2>
  <ul>
     @foreach($errors->all() as $error)
        <li>{{ $error }}</li>
     @endforeach
  </ul>
@endif

<form action="{{ route('livros.store') }}" method="post">
@csrf
<table width="200" border="0" cellspacing="3" 
  cellpadding="3">
  <tr>
    <td>Título:</td>
    <td><input type="text" name="titulo" id="titulo" 
      placeholder="Título"></td>
  </tr>
  <tr>
    <td>Autor:</td>
    <td><input type="text" name="autor" id="autor"
      placeholder="Autor"></td>
  </tr>
  <tr>
    <td>Páginas</td>
    <td><input type="text" size="10" name="paginas" 
      id="paginas" placeholder="Quant. Páginas"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><button type="submit">Gravar</button></td>
  </tr>
</table>
</form>

</body>
</html>

Aqui nós criamos um formulário com a action apontando para {{route('livros.store')}}, e a forma de envio é POST. Temos também três elementos HTML do tipo input text, cada um com a propriedade name contendo o mesmo nome do campo na tabela livros. Salve esta view no diretório C:\xampp\htdocs\biblioteca\resources\views\livros.

Agora abra o seu navegador no endereço http://localhost/biblioteca/public/livros/create e teremos o seguinte resultado:



Agora só precisamos obter as informações do formulário e salvá-las no banco de dados.

Gravando o novo livro na tabela do banco de dados

Vamos ver agora como obter os dados do formulário, passá-los para o controller, instanciar o model e finalmente persistir no banco de dados MySQL. Você viu que os dados do form são enviados para o método store() do controller livros. Assim, abra o LivroController.php e adicione o código abaixo:

<?php

namespace App\Http\Controllers;

use App\Models\Livro;
use Illuminate\Http\Request;

class LivroController extends Controller{
  // mostra a view para cadastrar um novo livro
  public function create(){
    return view('livros.create');
  }

  // recebe as informações do formulário e as grava
  // no banco de dados
  public function store(Request $request){
    // valida o formulário
    $request->validate([
      'titulo' => 'required',
      'autor' => 'required',
      'paginas' => 'required']);
    
    // obtém os valores do form
    Livro::create($request->all());
     
    // direciona para página cadastro novamente,
    // com uma mensagem de sucesso
    return redirect()->route('livros.create')
      ->with('mensagem', 'Livro salvo com sucesso.');
  }
}

?>

Pronto! A parte CREATE do CRUD já está completa. Experimente cadastrar um novo livro e veja o resultado na tabela do banco de dados. Observe que temos também a validação dos dados do formulário (mensagens indicando quais campos não foram preenchidos) e também uma mensagem de sucesso indicando que os dados foram gravados com sucesso.

Na parte 3 deste tutorial veremos como listar os livros cadastrados e a opção de excluir e editar os livros. Até lá.

Leia a parte 3 aqui: Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 3


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

Como retornar o tamanho de um array em Rust usando a função len()

Quantidade de visualizações: 823 vezes
Em várias situações nós precisamos obter e retornar a quantidade de elementos em um vetor Rust, ou seja, um array. Para isso nós podemos usar a função len() do objeto Array.

Veja um exemplo Rust no qual nós criamos um array com cinco elementos do tipo inteiro e em seguida usando a função len() para retornar o seu tamanho:

// função principal do programa Rust
fn main() {
  // vamos criar um array com 5 elementos
  let valores = [7, 3, 4, 9, 1];
  
  // agora vamos obter o tamanho do array
  let tamanho = valores.len();
  
  // e mostramos o resultado
  println!("O array possui {} elementos", tamanho);
}

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

O array possui 5 elementos


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Pandas Python Library

Exercício Resolvido de Python Pandas - Como testar se um DataFrame do Pandas possui algum valor não informado

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

Dado o seguinte arquivo CSV (carros.csv):

Marca;Modelo;Ano;Valor;Vendido
Fiat;Sienna;2010;23500.00;S
Volkswagen;Polo;2009;31453.00;N
Volkswagen;;2001;19200.00;S
Fiat;Palio;1995;7500.00;S
Honda;Civic;;42000.00;S
Renault;Sandero;2010;52000.00;N


Escreva um programa Python Pandas que carrega este arquivo .csv em um DataFrame, exiba o seu conteúdo e informe se o DataFrame contém algum valor não informado para qualquer uma das colunas. Analisando o arquivo vemos que há dois valores ausentes: o modelo do veículo na quarta linha e o ano do veículo na sexta linha.

Sua saída deverá ser parecida com:

Os dados do DataFrame são:

        Marca   Modelo     Ano    Valor Vendido
0        Fiat   Sienna  2010.0  23500.0       S
1  Volkswagen     Polo  2009.0  31453.0       N
2  Volkswagen      NaN  2001.0  19200.0       S
3        Fiat    Palio  1995.0   7500.0       S
4       Honda    Civic     NaN  42000.0       S
5     Renault  Sandero  2010.0  52000.0       N

Há valores ausentes no DataFrame
Resposta/Solução:

Veja a resolução comentada deste exercício em Python:

# importamos a biblioteca Pandas
import pandas as pd
 
def main():
  # vamos carregar os dados do arquivo .csv
  df = pd.read_csv("C:\\estudos_python\\carros.csv",
   delimiter=";")
 
  # vamos mostrar o DataFrame resultante
  print("Os dados do DataFrame são:\n")
  print(df)

  # vamos testar se existe algum valor ausenta em alguma
  # das colunas do DataFrame
  if df.isnull().values.any():
    print("\nHá valores ausentes no DataFrame")
  else:
    print("\nNão existe valores ausentes no DataFrame")

if __name__== "__main__":
  main()



Dart ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o ponto de interseção de duas retas em Dart - Geometria Analítica e Álgebra Linear em Dart

Quantidade de visualizações: 2105 vezes
Duas retas podem encontrar-se em 0, 1 ou 2 pontos. No primeiro caso, elas são chamadas paralelas; no segundo, elas são chamadas concorrentes e o ponto de encontro entre elas é chamado ponto de interseção; no terceiro caso, se duas retas possuem dois pontos em comum, então elas obrigatoriamente apresentam todos os pontos em comum e são chamadas coincidentes.

Nesta dica mostrarei como podemos encontrar o ponto de interseção (ou intersecção) de duas retas usando Dart. Mas, antes de vermos o código, dê uma olhada na seguinte imagem:



Note que temos os pontos A e B correspondentes ao segmento de reta AB e os pontos C e D correspondentes ao segmento de reta CD. Nossa tarefa é encontrar o ponto exato de intersecção entre esses dois segmentos de reta.

Veja o código Dart completo que nos auxilia na resolução deste problema:

// Vamos importar a biblioteca dart:io
import "dart:io";

// Classe usada para representar um ponto no
// plano 2d (Plano Cartesiano)
class Ponto{
  double x, y;
  
  // construtor da classe
  Ponto(double x, double y){
    this.x = x;
    this.y = y;
  }
}

void main(){
  // vamos construir os quatro pontos
  Ponto A = new Ponto(5, 7);
  Ponto B = new Ponto(9, -4);
  Ponto C = new Ponto(-8, 2);
  Ponto D = new Ponto(11, 6);
    
  // vamos obter a representação do segmento AB    
  double a1 = B.y - A.y;
  double b1 = A.x - B.x;
  double c1 = (a1 * A.x) + (b1 * A.y);
       
  // vamos obter a representação do segmento CD
  double a2 = D.y - C.y;
  double b2 = C.x - D.x;
  double c2 = (a2 * C.x) + (b2 * C.y);
    
  // obtém o determinante
  double determinante = (a1 * b2) - (a2 * b1);
    
  // as duas retas são paralelas?
  if(determinante == 0){
    print("\nAs duas retas são paralelas.\n");
  }
  else{
    // e construímos o ponto de intersecção
    double x = ((b2 * c1) - (b1 * c2)) / determinante;
    double y = ((a1 * c2) - (a2 * c1)) / determinante;
    Ponto inters = new Ponto(x, y);
    
    print("O ponto de interseção é: " + 
      "x = ${x.toStringAsFixed(2)}; y = ${y.toStringAsFixed(2)}");
  }
}


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

O ponto de interseção é: x = 5,76; y = 4,90

De fato, se você olhar a imagem novamente e desenhar este ponto, verá que ele se situa exatamente na intersecção das retas indicadas.


Veja mais Dicas e truques de Dart

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


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