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 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:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

POO - Programação Orientada a Objetos - Exercícios Resolvidos de Java - Ex. 2 - A classe Circulo (construtores, métodos, getters e setters e encapsulamento)

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

Escreva uma classe Circulo para representar círculos. Esta classe deverá conter os seguintes atributos e métodos:

a) Uma variável privada do tipo double chamada raio que guardará o valor do raio atual do circulo.

b) Métodos get() e set() públicos que permitem definir e acessar o valor da variável raio.

c) Um construtor que recebe o valor do raio como argumento.

d) Um método getArea() que calcula e retorna a área do círculo.

e) Um método getCircunferencia() que calcula e retorna a circunferência do círculo.

f) Um método aumentarRaio() que recebe um valor double e o usa como percentual para aumentar o raio do círculo.

Crie uma classe contendo um método main() para testar a funcionalidade da classe Circulo. Eis um exemplo de entrada e saída:



Resposta/Solução:

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

Circulo.java:

package estudos;

public class Circulo{
  private double raio; // guarda o raio atual do círculo

  // construtor que recebe o valor do raio como argumento
  public Circulo(double raio){
    this.raio = raio;  
  }
  
  // permite obter o raio do círculo
  public double getRaio(){
    return raio;
  }

  // permite definir o raio do círculo
  public void setRaio(double raio){
    this.raio = raio;
  }
  
  // obtém a área do círculo
  public double getArea(){
    double area = Math.PI * Math.pow(this.raio, 2); 
    return area;  
  }
  
  // obtém a circunferência do círculo
  public double getCircunferencia(){
    double circunferencia = (2 * Math.PI) * this.raio; 
    return circunferencia;  
  }
  
  // permite aumentar o raio de acordo com uma porcentagem fornecida
  public void aumentarRaio(double porcentagem){
    this.raio = this.raio + (porcentagem / 100.0) * this.raio;    
  }
}

Veja agora o método main() que nos permite testar a funcionalidade da classe Circulo:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar uma instância da classe Circulo
    Scanner entrada = new Scanner(System.in);
    System.out.print("Informe o raio do círculo: ");
    double raio = Double.parseDouble(entrada.nextLine());
    Circulo c = new Circulo(raio);
    
    // vamos mostrar o valor do raio atual
    System.out.println("Raio: " + c.getRaio());
    // vamos mostrar a área
    System.out.println("Área: " + c.getArea() + " metros quadrados");
    // vamos mostrar a circunferência
    System.out.println("Circunferência: " + c.getCircunferencia() + " metros");
    
    // vamos aumentar o raio do circulo em uma determinada porcentagem
    System.out.print("\nInforme o percentual de aumento do raio: ");
    double percentual = Double.parseDouble(entrada.nextLine());
    c.aumentarRaio(percentual);
    
    // vamos mostrar o valor do raio atual
    System.out.println("Raio: " + c.getRaio());
    // vamos mostrar a área
    System.out.println("Área: " + c.getArea() + " metros quadrados");
    // vamos mostrar a circunferência
    System.out.println("Circunferência: " + c.getCircunferencia() + " metros");
  }
}



Android Java ::: androidx.appcompat.app ::: AppCompatActivity

Como usar o método startActivity() da classe Activity ou AppCompatActivity do Android para mudar de telas

Quantidade de visualizações: 2721 vezes
Por mais simples que nossas aplicações Android sejam, elas serão compostas de duas ou mais telas, ou seja, duas ou mais Activity ou AppCompatActivity. Nesta dica mostrarei como usar o método startActivity() dessas duas classes para levar o usuário da primeira tela para a segunda. Lembre-se de que AppCompatActivity herda de Activity e, nos dias atuais, é a classe preferida para representar as telas individuais das aplicações Android.

Comece criando um novo projeto no Android Studio. Escolha Empty Activity e dê o nome "App Duas Telas" ao projeto. Observe que o Android Studio já criou uma Activity ou AppCompatActivity com o nome MainActivity.java.

Vamos nos certificar de que esta Activity é de fato a tela principal da aplicação. Abra o arquivo AndroidManifest.xml e veja se seu elemento <activity> se parece com o que temos abaixo:

<activity android:name=".MainActivity">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>

Se tudo estiver Ok, vamos agora criar a segunda tela. Clique com o botão direito em cima do pacote "com.example.appduastelas" e escolha New -> Activity -> Empty Activity. Dê o nome "SegundaTela", desmarque a opção Launcher Activity e clique o botão Finish.

Se você observar o arquivo AndroidManifest.xml novamente, você verá que a segunda tela já foi adicionada lá.

Agora vamos examinar o arquivo XML de layout para a primeira tela (layout\activity_main.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:padding="16dp"
  android:orientation="vertical"
  tools:context="com.example.appduastelas.MainActivity">

  <Button
   android:id="@+id/abrir_tela"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_marginTop="20dp"
   android:onClick="abrirSegundaTela"
   android:text="@string/abrir_tela" />
</LinearLayout>

Note que temos um elemento <LinearLayout> e, dentro dele, um elemento <Button>. No botão nós declaramos o método abrirSegundaTela para seu atributo onClick. Não esqueça de atualizar o arquivo strings.xml para refletir o texto do botão "@string/abrir_tela".

Pronto. Agora vamos ver o arquivo XML de layout para a segunda tela (layout\activity_segunda_tela.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:padding="16dp"
  android:orientation="vertical"
  tools:context="com.example.appduastelas.SegundaTela">

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sou a segunda tela."/>
</LinearLayout>

Nesse layout nós temos um elemento <LinearLayout> e, dentro dele, um elemento <TextView>, que serve apenas para exibir um texto qualquer na segunda tela.

Para finalizar, só precisamos escrever o método abrirSegundaTela() na MainActivity.java. Veja o código completo:

package com.example.appduastelas;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }

  // método usado para abrir a segunda tela
  public void abrirSegundaTela(View view) {
    Intent intent = new Intent(this, SegundaTela.class);
    startActivity(intent);
  }
}

Veja que dentro do método abrirSegundaTela(), que recebe uma View com parâmetro, nós criamos um novo objeto da classe Intent e fornecemos o nome da segunda tela. Em seguida fazemos uma chamada ao método startActivity() passando o Intent recém-criado como argumento.

Pronto! É só isso. Execute a aplicação, clique no botão e veja a segunda tela ser exibida. Pressione o botão Voltar e repita quantas vezes quiser. Agora é só criar mais telas e desenvolver vários e vários apps Android.


Java ::: Projetos Java Completos - Códigos Fonte Completos Java ::: Projetos Java Programação Orientada a Objetos - Exemplos Java

Simulação de Sistema Bancário usando Programação Orientada a Objetos em Java - Projeto completo com código fonte - Versão console

Quantidade de visualizações: 19666 vezes
Sobre este projeto Java

Durante estes anos que tenho trabalhado como freelancer, mais da metade das requisições dos meus clientes foram ajuda para desenvolver idéias de programação orientada a objetos em Java para projeto de faculdades e universidades.

Com isso percebi que boa parte dos alunos e iniciantes em programação orientada a objetos já entendem toda a teoria. O que lhes falta é prática, ou seja, aplicar estes conhecimentos em aplicações do mundo real.

Pensando nisso, apresento a você um projeto muito interessante e que, se bem entendido e praticado, o ajudará a desenvolver qualquer tipo de aplicação, seja comercial ou para solucionar problemas cotidianos.

O projeto Java apresentado nesta dica é uma simulação completa de um Sistema Bancário, tudo com código fonte em Java, comentado, com variáveis em português, em um nível médio de programação, para facilitar o entendimento de todos.

Nesta simulação nós temos a criação de classes Java, construtores, encapsulamento de dados, agregação e composição, métodos com retorno e sem retorno, variáveis estáticas, variáveis públicas e privadas, e relacionamento entre objetos (um para um, um para muitos, muitos para um) usando ArrayList. Sim, o projeto faz uso extensivo de ArrayList, o que o torna muito rico para o aprendizado e fixação dos conhecimentos da linguagem Java e suas classes principais.

O Diagrama de Classes Java

Antes de falarmos mais sobre o projeto, dê uma boa olhada no seu diagrama de classes:



Como a aplicação está estruturada?

Como podemos ver no diagrama de classes, nós temos uma classe Sistema que contém zero ou vários objetos da classe Banco (relacionamento um para muitos). A classe Banco, por sua vez, possui uma ArrayList de objetos da classe Agência, ou seja, mais um relacionamento um para muitos, já que cada agência pertence a um único banco.

Cada agência pode possuir zero ou mais contas, e cada conta possui um ArrayList de objetos da classe Transação, o que nos permite registrar todas as operações nas contas e emitir o extrato bancário, com os débitos, créditos e transferências entre contas.

Tudo isso é feito por meio de vários menus de opções, como podemos ver na imagem a seguir:



Devo usar ArrayList do Java para desenvolver o sistema?

Sim, objetos da classe ArrayList são perfeitos quando precisamos representar relacionamentos um para muitos e muitos para um. É claro que poderíamos usar vetores de objetos (usando array), mas ficaríamos restritos a tamanhos fixos, enquanto o ArrayList nos permite cadastrar quantos bancos, pessoas, agências e contas quisermos.

Dessa forma, veja, por exemplo, o trecho de código que cria um novo banco:

switch(opcao){
  case 1: // vamos cadastrar um novo banco
    System.out.print("\nNúmero do Banco: ");
    String numeroBanco = entrada.nextLine();
    System.out.print("Nome do Banco: ");
    String nomeBanco = entrada.nextLine();
        
    // vamos incrementar o contador de bancos
    Banco.contadorBancos++;
        
    // agora vamos criar um novo objeto da classe Banco
    Banco b = new Banco(Banco.contadorBancos, nomeBanco,
      numeroBanco);
    // e o adicionamos no ArrayList de bancos
    bancos.add(b);
        
    // e finalmente mostramos uma mensagem de sucesso.
    System.out.println("\nO banco criado com sucesso");
        
    break;


Note que este trecho de código é parte do case da opção Novo Banco do menu Gerenciar Bancos. Veja como usamos uma variável estática contadorBancos da classe Banco para criarmos um valor inteiro auto-incremento que nos permite identificadores únicos para cada banco.

Veja agora mais um trecho de código muito interessante. Trata-se

case 3: // vamos pesquisar uma conta
  System.out.print("\nId, número ou nome cliente da conta: ");
  pesquisaConta = entrada.nextLine();
  // chamamos o método que pesquisa a conta
  temp = pesquisarConta(agenciaAtual, pesquisaConta);
  if(temp == null){ // conta não encotrada
    System.out.println("\nConta não encontrada na agência.");  
  }
  else{
    // mostra a conta encontrada
    System.out.println("\nId da conta bancária: " +
      temp.getId());
    System.out.println("Número da conta: " +
      temp.getNumero());
    System.out.println("Cliente: " + 
      temp.getCliente().getNome());
    System.out.println("Agência: " + agenciaAtual.getNumero() +
      " - " + agenciaAtual.getCidade());
    System.out.println("Banco: " + 
      bancoAtual.getNumero() + " - " + bancoAtual.getNome());
    System.out.println("Saldo atual: " + temp.getSaldo());
    System.out.println("Limite atual: " + temp.getLimite());
  }
        
  break;


Viu que código mais lindo? Note como a Programação Orientada a Objetos em Java nos permite desenvolver idéias de forma bem parecida mesmo ao mundo real.

O fechamento com chave de ouro

O produto final da aplicação Java deverá ser um extrato bancário mostrando os dados da conta escolhida, o histórico de transações com data, tipo da transação e valor, e o saldo atual da conta, com ou sem limite. Veja na imagem abaixo a formatação apresentada (mesmo em modo texto):



Como posso obter este código fonte?

Os links para você baixar todas as versões deste projeto estão abaixo:

1) SBJCNB-A - Sistema Bancário em Java com Código Fonte Versão Console - NetBeans IDE - Faça o Download.

2) SBJCNB-B - Sistema Bancário em Java com Código Fonte Versão Console - Lê e salva os dados em arquivo usando serialização (Serializable), ou seja, os métodos readObject() e writeObject() - NetBeans IDE - Faça o Download.

Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto Java do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes.


VB.NET ::: Dicas & Truques ::: Strings e Caracteres

Como concatenar strings em VB.NET usando o método Concat() da classe String

Quantidade de visualizações: 12314 vezes
Nesta dica mostrarei como podemos concatenar strings em VB.NET por meio do método Concat() da classe String do .NET Framework. Este método recebe uma ou mais strings e retorna um novo objeto da classe String.

Veja um exemplo de seu uso:

Imports System

Module Program
  Sub Main(args As String())
    ' declara uma variável do tipo String
    Dim frase, nome, cidade As String

    nome = "Osmar"
    cidade = "Goiânia"
    frase = "Meu nome é "
    frase = String.Concat(frase, nome)
    frase = String.Concat(frase, " e eu moro em ",
      cidade)

    ' e mostramos o resultado
    Console.WriteLine(frase)

    Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

Ao executar este código VB.NET nós teremos o seguinte resultado:

Meu nome é Osmar e eu moro em Goiânia


Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid

Como navegar (percorrer) pelas células do TDBGrid do Delphi usando a tecla Enter

Quantidade de visualizações: 13011 vezes
Há situações nas quais queremos que os usuários de nossas aplicações Delphi sejam capazes de pressionar a tecla Enter para passar (ou saltar) pelas células dos controles DBGrid. A navegação padrão é com a tecla Tab e/ou as teclas de direção.

Nesta dica eu mostro como isso pode ser feito. Suponha que você tem um componente TDBGrid com o nome "DBGrid1". Vá ao seu evento OnKeyPress e modifique-o para o código abaixo:

procedure TForm3.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  // o usuário pressionou a tecla Enter?
  if Key = #13 then
    begin
      // ainda não estamos na última coluna
      if DBGrid1.Columns.Grid.SelectedIndex < DBGrid1.Columns.Count - 1 then
        // vamos passar para a próxima célula
        DBGrid1.Columns[DBGrid1.Columns.Grid.SelectedIndex + 1].Field.FocusControl
      else begin
        // vamos passar para o próximo registro da tabela
        DBGrid1.DataSource.DataSet.Next;
        DBGrid1.Columns[0].Field.FocusControl;
      end;
    end;
end;

Execute a aplicação e experimente o efeito. É claro que a navegação com a tecla Enter só funciona em uma direção (tal qual a tecla Tab). Para voltar para as células anteriores você ainda terá que acionar as teclas de direção. Note o uso do método Next da classe TDataSet para forçarmos o foco a ir para a próxima linha do TDBGrid.

Esta dica foi escrita e testada no Delphi 2009.


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

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