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

Você está aqui: Cards de Hidrostática
Card 1 de 7
O que é Empuxo na Hidrostática?

Empuxo é a força exercida pelos fluidos em corpos submersos, total ou parcialmente. Também conhecido como teorema de Arquimedes.

A pressão do fluido sobre o corpo produz uma força resultante com a direção do peso, mas com o sentido contrário, de baixo para cima.

Qual é a fórmula do Empuxo?

A fórmula do empuxo na Hidrostática pode ser definida como:

\[E = d_f \cdot V_f \cdot g \]

Onde:

E é o módulo do empuxo, medido em Newtons (N);

df é a densidade do fluido, medida em kg/m3;

Vf é o volume do fluido deslocado, medido em m3;

g é a aceleração da gravidade, medida em m/s2.

A intensidade do empuxo é igual a do peso do volume de fluido deslocado, e age no centro de gravidade desse volume.

O empuxo é o produto entre três valores: densidade do fluido, volume de fluido deslocado e aceleração da gravidade.

A densidade é uma característica própria do fluido. Existem tabelas que oferecem valores de densidade para vários fluidos.

Para água a 4°C, a densidade é 1 g/cm3 ou 1.000 kg/m3.
Para o ar, a 20°C e pressão de 1 atmosfera, a densidade é de 0,0012 g/cm3 ou 1,2 kg/m3.

O volume de fluido deslocado depende da geometria do corpo, e se ele está total ou parcialmente submerso. Quanto maior o volume do corpo, mais líquido ele descola, logo, maior será o empuxo.

A aceleração da gravidade é de, aproximadamente, 9,81 m/s2.

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:

Delphi ::: Dicas & Truques ::: Bilbiotecas Estáticas (obj) e Dinâmicas (DLLs)

Como criar DLLs usando Delphi? É possível criar DLLs para o Windows usando Delphi?

Quantidade de visualizações: 13420 vezes
As DLLs (Dynamic Link Libraries - Bibliotecas de Vínculo Dinâmico) são arquivos compilados bem similares aos arquivos .exe que estamos acostumados a criar em Delphi. Uma DLL contém rotinas, recursos ou ambos. Mas, não pode ser executada por si só, ou seja, se dermos duplo-clique em uma DLL nada acontecerá.

Isso acontece porque uma DLL é desenvolvida para ser usada juntamente como outros aplicativos e/ou outras DLLs. No ambiente Windows encontramos muitas DLLs. Na verdade, o Windows e sua Win32 API é uma coleção de DLLs. Se olharmos nos diretórios System ou System32 encontraremos várias delas, incluindo kernel32.dll, gdi32.dll, user32.dll, shell32.dll, comctl32.dll, entre outras.

Mas, para que servem as DLLs? É possível desenvolver aplicações Windows sem usá-las? Vamos às respostas.

As DLLs existem com o propósito de compartilhar código entre aplicações. Isso quer dizer que uma mesma DLL pode estar sendo usada por vários programas ao mesmo tempo. E isso é verdade no ambiente Windows. Todos os programas de interface gráfica escritos em Delphi, C, C++, etc e que usam os componentes gráficos do Windows estão de alguma forma fazendo uso de códigos disponíveis em DLLs do sistema. Sem o aproveitamente de tais códigos os executáveis ficariam enormes, visto que cada um teria que implementar as rotinas de desenho e diretivas de criação de janelas. Ao aproveitar as funcionalidades disponíveis nas DLLs do sistema esta tarefa se torna muito mais fácil.

Mas, além de usar DLLs de terceiros com códigos já prontos e devidamente testados, você também pode criar suas próprias DLLs. O motivo disso é que você pode querer compartilhar algumas de suas rotinas entre os vários aplicativos que você desenvolve. A maior vantagem disso é que, ao atualizar ou corrigir o código em uma DLL você estará certo de que todas as aplicações que fazem uso desta DLL automaticamente perceberão e tirarão proveito da atualização.

Entre as vantagens do uso de DLLs podemos citar:

a) Podemos compartilhar rotinas e códigos entre várias aplicativos;

b) Ao mantermos boa parte de nossos códigos em DLLs nós conseguimos economizar memória e espaço em disco;

c) Outros desenvolvedores poderão usar nossas rotinas e lógica mesmo sem ter acesso aos nossos códigos-fontes;

d) Podemos usar códigos escritos em outras linguagens em nossos programas Delphi. Isso quer dizer que uma DLL escrita em C/C++ poderá ser usada em um programa Delphi sem qualquer problema. A prova disso é que as DLLs do Windows são escritas em C/C++.

Hora de criar sua primeira DLL em Delphi. Consulte outras dicas nesta seção para aprender a fazê-lo.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes)

Como repetir os elementos de um vetor ou matriz usando a função repeat() da NumPy do Python

Quantidade de visualizações: 1073 vezes
A função repeat() da biblioteca NumPy do Python é usada quando queremos repetir os elementos de um vetor ou matriz um determinado número de vezes. Em sua forma mais simples esta função pede um array e um número inteiro indicando a quantidade de repetições.

Veja o código Python completo para o exemplo:

# vamos importar a biblioteca NumPy
import numpy as np

def main():
  # vamos criar um vetor contendo 5 elementos
  vetor = np.array([5, 3, 9, 1, 4])

  # agora vamos aplicar a função repeat() a este vetor
  novo_vetor = np.repeat(vetor, 3)

  # vamos mostrar o resultado
  print("O vetor original é: {0}".format(vetor))
  print("O novo vetor é: {0}".format(novo_vetor))

if __name__== "__main__":
  main()

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

O vetor original é: [5 3 9 1 4]
O novo vetor é: [5 5 5 3 3 3 9 9 9 1 1 1 4 4 4]

Veja agora o efeito desta função em uma matriz de 2 linhas por 3 colunas:

# vamos importar a biblioteca NumPy
import numpy as np

def main():
  # vamos criar uma matriz de 2 linhas e 3 colunas
  matriz = np.array([(1, 2, 3), (4, 5, 6)])

  # agora vamos aplicar a função repeat() a esta matriz
  nova_matriz = np.repeat(matriz, 3, 0)

  # vamos mostrar o resultado
  print("A matriz original é:\n\n{0}".format(matriz))
  print("A nova matriz é:\n\n{0}".format(nova_matriz))

if __name__== "__main__":
  main()

Note que informei o valor 0 para o terceiro parâmetro da função repeat(). Isso faz com que os elementos da matriz sejam repetidos no eixo x. Veja:

A matriz original é:

[[1 2 3]
 [4 5 6]]

A nova matriz é:

[[1 2 3]
 [1 2 3]
 [1 2 3]
 [4 5 6]
 [4 5 6]
 [4 5 6]]


Se trocarmos o valor 0 por 1, o resultado será:

A matriz original é:

[[1 2 3]
 [4 5 6]]

A nova matriz é:

[[1 1 1 2 2 2 3 3 3]
 [4 4 4 5 5 5 6 6 6]]



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: 8131 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 ::: VCL - Visual Component Library ::: TStringGrid

Como usar o evento OnDrawCell para controlar o desenho das células em um TStringGrid do Delphi

Quantidade de visualizações: 16477 vezes
O evento OnDrawCell, definido originalmente na classe TCustomDrawGrid, é disparado quando uma determinada célula do TStringGrid precisa ser desenhada. Este evento possui a seguinte assinatura:

property OnDrawCell: TDrawCellEvent;

O tipo Grids.TDrawCellEvent apresenta, no Delphi 2009, a seguinte lista de parâmetros:

TDrawCellEvent = procedure(Sender: TObject; ACol, ARow: Longint; 
  Rect: TRect; State: TGridDrawState) of object;

Vamos ver cada um destes parâmetros separadamente:

Sender - Representa a grid na qual a célula está sendo desenhada;

ACol, ARow - Índices da coluna e linha na qual a célula está sendo desenhada;

Rect - Localização da célula na área de desenho (canvas);

State - Um objeto Grids.TGridDrawState que indica se a célula possui o foco (gdFocused), está selecionada (gdSelected) e se a mesma é uma célula fixa (gdFixed). Células fixas permanecem vísiveis quando as barras de rolagem são acionadas.

Veja um trecho de código no qual usamos o evento OnDrawCell para colorir de amarelo o fundo de uma determinada célula do TStringGrid:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  conteudo: String;
begin
  // vamos obter o conteúdo da célula
  conteudo := StringGrid1.Cells[ACol, ARow];

  // vamos colorir a célula na segunda linha e terceira
  // coluna com o fundo amarelo
  if (ACol = 2) and (ARow = 1) then
    begin
      StringGrid1.Canvas.Brush.Color := clYellow;
      StringGrid1.Canvas.FillRect(Rect);
      StringGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top,
        conteudo);
    end;
end;

Para este exemplo deixei o valor da propriedade DefaultDrawing do TStringGrid como true. Isso faz com que o fundo da célula seja pintado antes que o evento DrawCell seja chamado e o efeito 3D das células fixas seja exibido ou o retângulo de foco ao redor da célula que possui o foco no momento seja desenhado após o evento. Experimente executar o exemplo com o valor false para a propriedade DefaultDrawing para ver o resultado.

Veja agora um trecho de código no qual definimos a cor vermelha para o texto das células cujo valor inteiro seja menor que 10:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  conteudo: String;
begin
  // vamos obter o conteúdo da célula
  conteudo := StringGrid1.Cells[ACol, ARow];

  // vamos definir a cor vermelha para o texto das células
  // contendo valores menores que 10
  if (conteudo <> '') and (StrToInt(conteudo) < 10) then
    begin
      StringGrid1.Canvas.Font.Color := clRed;
      StringGrid1.Canvas.FillRect(Rect);
      StringGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top,
        conteudo);
    end;
end;

Tenha cuidado para que o valor da célula possa ser convertido para inteiro por meio do uso da função StrToInt(). Caso a conversão não for possível, uma exceção do tipo EConvertError será lançada.


Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercícios Resolvidos de Portugol - Escreva um programa que leia o ano de nascimento de um rapaz e mostre a sua situação em relação ao alistamento militar

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

Escreva um programa que leia o ano de nascimento de um rapaz e mostre a sua situação em relação ao alistamento militar.

- Se estiver antes dos 18 anos, mostre em quantos anos faltam para o alistamento.
- Se já tiver depois dos 18 anos, mostre quantos anos já se passaram do alistamento.

Sua saída deverá ser parecida com:

Informe o ano atual: 2025
Informe o ano do seu nascimento: 1980

Você tem 45 anos.
Já se passaram 27 anos do alistamento militar.

Informe o ano atual: 2025
Informe o ano do seu nascimento: 2007

Você tem 18 anos.
Você já tem idade suficiente para fazer o alistamento militar.

Informe o ano atual: 2025
Informe o ano do seu nascimento: 2009

Você tem 16 anos.
Faltam 2 anos para você fazer o alistamento militar.
Resposta/Solução:

Veja a resolução comentada deste exercício usando Portugol Web Studio:

programa {
  funcao inicio() {
    // variáveis usadas na resolução do problema
    inteiro ano_nasc, ano_atual, idade, anos_faltam, anos_passaram
		
    // vamos pedir para o usuário informar o ano atual
    escreva("Informe o ano atual: ")
    leia(ano_atual)

    // vamos pedir para o usuário informar o ano de nascimento
    escreva("Informe o ano do seu nascimento: ")
    leia(ano_nasc)

    // vamos calcular a idade do usuário 
    idade = ano_atual - ano_nasc

    // vamos calcular os anos que faltam para o alistamento
    anos_faltam = 18 - idade

    // vamos calcular os anos que já se passaram do alistamento
    anos_passaram = idade - 18

    // vamos mostrar os resultados
    se (idade < 18) {
      escreva("\nVocê tem " + idade + " anos.")
      escreva("\nFaltam " + anos_faltam + 
        " anos para você fazer o alistamento militar.")
    }
    senao se (idade == 18) {
      escreva("\nVocê tem " + idade + " anos.")
      escreva("\nVocê já tem idade para o alistamento militar.")
    }
    senao {
      escreva("\nVocê tem " + idade + " anos.")
      escreva("\nJá se passaram " + anos_passaram +
        " anos do alistamento militar.")
    }
  }
}



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Portugol

Veja mais Dicas e truques de Portugol

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