Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Física - Mecânica - Movimento Retilíneo Uniforme (MRU)

Exercícios Resolvidos de Física usando Java - Dois automóveis, A e B, movem-se em movimento uniforme e no mesmo sentido. Suas velocidades escalares têm módulos respectivamente iguais a... - Exercícios Resolvidos de Java

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

Dois automóveis, A e B, movem-se em movimento uniforme e no mesmo sentido. Suas velocidades escalares têm módulos respectivamente iguais a 15 m/s e 10 m/s. No instante t = 0, os automóveis encontram-se nas posições indicadas abaixo:



Determine:

a) o instante em que A alcança B;
b) a que distância da posição inicial de A ocorre o encontro.

Resposta/Solução:

Este é um dos exemplos clássicos que encontramos nos livros de Física Mecânica, nos capítulos dedicados ao Movimento Retilíneo Uniforme (MRU). Em geral, tais exemplos são vistos como parte dos estudos de encontro e ultrapassagem de partículas.

Por se tratar de Movimento Retilíneo Uniforme (MRU), as grandezas envolvidas nesse problema são: posição (deslocamento), velocidade e tempo. Assim, já sabemos de antemão que o veículo B está 100 metros à frente do veículo A. Podemos então começar calculando a posição atual na qual cada um dos veículos se encontra. Isso é feito por meio da Função Horária da Posição ou Deslocamento em Movimento Retilíneo Uniforme - MRU.

Veja o código Java que nos retorna a posição inicial (em metros) dos dois veículos:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    // valocidade do veículo A
    double vA = 15; // em metros por segundo    
    // valocidade do veículo B
    double vB = 10; // em metros por segundo
    
    // posição inicial dos dois veículos
    double sInicialA = 0;
    double sInicialB = 100;
    
    // tempo inicial em segundos
    double tempo_inicial = 0;
    
    // calcula a posição atual dos dois veículos
    double sA = sInicialA + (vA * tempo_inicial);
    double sB = sInicialB + (vB * tempo_inicial);
    
    // mostra os resultados
    System.out.println("A posição do veículo A é: " + sA + " metros");
    System.out.println("A posição do veículo B é: " + sB + " metros");
  }
} 

Ao executar esta primeira parte do código Java nós teremos o seguinte resultado:

A posição do veículo A é: 0.0 metros
A posição do veículo B é: 100.0 metros

Agora que já temos o código que calcula a posição de cada veículo, já podemos calcular o tempo no qual o veículo A alcança o veículo B. Para isso vamos pensar direito. Se o veículo A vai alcançar o veículo B, então já sabemos que a velocidade do veículo A é maior que a velocidade do veículo B.

Sabemos também que a posição do veículo B é maior que a posição do veículo A. Só temos que aplicar a fórmula do tempo, que é a variação da posição dividida pela variação da velocidade. Veja o código Java que efetua este cálculo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    // valocidade do veículo A
    double vA = 15; // em metros por segundo    
    // valocidade do veículo B
    double vB = 10; // em metros por segundo
    
    // posição inicial dos dois veículos
    double sInicialA = 0;
    double sInicialB = 100;
    
    // tempo inicial em segundos
    double tempo_inicial = 0;
    
    // calcula a posição atual dos dois veículos
    double sA = sInicialA + (vA * tempo_inicial);
    double sB = sInicialB + (vB * tempo_inicial);
    
    // calculamos o tempo no qual o veículo A alcança o veículo B
    double tempo = (sB - sA) / (vA - vB);
    
    // mostra os resultados
    System.out.println("A posição do veículo A é: " + sA + " metros");
    System.out.println("A posição do veículo B é: " + sB + " metros");
    System.out.println("O veículo A alcança o veículo B em " + tempo + 
      " segundos");
  }
} 

Ao executar esta modificação do código Java nós teremos o seguinte resultado:

A posição do veículo A é: 0.0 metros
A posição do veículo B é: 100.0 metros
O veículo A alcança o veículo B em 20.0 segundos

O item b pede para indicarmos a que distância da posição inicial de A ocorre o encontro entre os dois veículos. Agora que já sabemos o tempo do encontro, fica muito fácil. Basta multiplicarmos a velocidade do veículo A pelo tempo do encontro. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    // valocidade do veículo A
    double vA = 15; // em metros por segundo    
    // valocidade do veículo B
    double vB = 10; // em metros por segundo
    
    // posição inicial dos dois veículos
    double sInicialA = 0;
    double sInicialB = 100;
    
    // tempo inicial em segundos
    double tempo_inicial = 0;
    
    // calcula a posição atual dos dois veículos
    double sA = sInicialA + (vA * tempo_inicial);
    double sB = sInicialB + (vB * tempo_inicial);
    
    // calculamos o tempo no qual o veículo A alcança o veículo B
    double tempo = (sB - sA) / (vA - vB);
    
    // a que distância da posição inicial de A ocorre o encontro
    double distancia_encontro = vA * tempo;
    
    // mostra os resultados
    System.out.println("A posição do veículo A é: " + sA + " metros");
    System.out.println("A posição do veículo B é: " + sB + " metros");
    System.out.println("O veículo A alcança o veículo B em " + tempo + 
      " segundos");
    System.out.println("O encontro ocorreu a " + distancia_encontro + 
      " metros da distância inicial do veículo A");
  }
} 

Agora o código Java completo nos mostra o seguinte resultado:

A posição do veículo A é: 0.0 metros
A posição do veículo B é: 100.0 metros
O veículo A alcança o veículo B em 20.0 segundos
O encontro ocorreu a 300.0 metros da distância inicial do veículo A

Para demonstrar a importância de se saber calcular a Função Horária da Posição ou Deslocamento em Movimento Retilíneo Uniforme (MRU), experimente indicar que o veículo A saiu da posição 20 metros, e defina a posição inicial do veículo B para 120 metros, de modo que ainda conservem a distância de 100 metros entre eles.

Você verá que o tempo do encontro e a distância do encontro em relação à posição inicial do veículo A continuam os mesmos. Agora experimente mais alterações nas posições iniciais, na distância e também nas velocidades dos dois veículos para entender melhor os conceitos que envolvem o Movimento Retilíneo Uniforme (MRU).

Link para compartilhar na Internet ou com seus amigos:

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

Como calcular o coeficiente angular de uma reta em Delphi dados dois pontos no plano cartesiano

Quantidade de visualizações: 1076 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem Delphi que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm4.Button2Click(Sender: TObject);
var
  x1, y1, x2, y2, m: Double;
begin
  // x e y do primeiro ponto
  x1 := 3;
  y1 := 6;

  // x e y do segundo ponto
  x2 := 9;
  y2 := 10;

  // agora vamos calcular o coeficiente angular
  m := (y2 - y1) / (x2 - x1);

  // e mostramos o resultado
  Memo1.Lines.Add('O coeficiente angular é: ' +
    FloatToStr(m));
end;

Ao executar este código em linguagem Delphi nós teremos o seguinte resultado:

O coeficiente angular é: 0,666666666666667

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm4.Button2Click(Sender: TObject);
var
  x1, y1, x2, y2, tangente: Double;
  cateto_oposto, cateto_adjascente, tetha: Double;
begin
  // incluir a unit Math

  // x e y do primeiro ponto
  x1 := 3;
  y1 := 6;

  // x e y do segundo ponto
  x2 := 9;
  y2 := 10;

  // vamos obter o comprimento do cateto oposto
  cateto_oposto := y2 - y1;
  // e agora o cateto adjascente
  cateto_adjascente := x2 - x1;
  // vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
  // (em radianos, não se esqueça)
  tetha := ArcTan2(cateto_oposto, cateto_adjascente);
  // e finalmente usamos a tangente desse ângulo para calcular
  // o coeficiente angular
  tangente := Tan(tetha);

  // e mostramos o resultado
  Memo1.Lines.Add('O coeficiente angular é: ' +
    FloatToStr(tangente));
end;

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


C# ::: Dicas & Truques ::: Gráficos

Como desenhar linhas em C# usando o método DrawLine() da classe Graphics - Computação Gráfica usando C#

Quantidade de visualizações: 12952 vezes
Uma das tarefas mais simples que realizamos quando estamos desenhando em C# é o desenho de linhas. Para isso usamos o método DrawLine() da classe Graphics. Este método recebe um objeto da classe Pen (representando a cor e espessura da caneta de desenho) e as coordenadas iniciais e finais da linha a ser desenhada.

Veja um trecho de código no qual desenhamos uma linha na cor vermelha e com a espessura de dois pixels:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e){
  // vamos obter o Graphics do formulário
  Graphics g = this.CreateGraphics();

  // vamos desenhar uma linha na cor vermelha e com espessura
  // de dois pixels
  g.DrawLine(new Pen(Color.Red, 2), new Point(100, 150), 
    new Point(400, 450));

  // vamos liberar o objeto Graphics
  g.Dispose();
}

Execute este código e verá uma linha vermelha na vertical ser desenhada quando você clicar no botão. Aqui nós usamos dois objetos da classe Point. Um para as coordenadas iniciais (x = 100; y = 150) e outro para as coordenadas finais (x = 400; y = 450). É possível fornecer os valores das coordenadas diretamente. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

g.DrawLine(new Pen(Color.Red, 2), 100, 150, 400, 450);

É possível também desenhar múltiplas linhas de uma só vez. Para isso podemos usar o método DrawLines(). Este método recebe um objeto da classe Pen e um array de objetos da classe Point representando as diversas coordenadas. Desta forma, todas as linhas serão conectadas. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e){
  // vamos obter o Graphics do formulário
  Graphics g = this.CreateGraphics();

  // vamos criar várias coordenadas x e y
  Point[] coordenadas = {new Point(15,  20), new Point(15, 300),
     new Point(400,  300), new Point(400, 20), new Point(15,  20)};

  // vamos desenhar todas as linhas conectadas usando a cor azul e a 
  // espessura de um pixel
  g.DrawLines(new Pen(Color.Blue, 1), coordenadas);

  // vamos liberar o objeto Graphics
  g.Dispose();
}

Execute este código e clique no botão. Você verá um retângulo azul e com a espessura de 1 pixel ser desenhado no formulário.


C# ::: Dicas & Truques ::: Data e Hora

Como retornar o ano da data atual em C# usando a propriedade Year da classe DateTime

Quantidade de visualizações: 19388 vezes
Nesta dica eu mostrarei como podemos usar a propriedade Year da classe DateTime da linguagem C# para obter o ano de uma determinada data como um inteiro.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // vamos obter a data e hora atual
      DateTime agora = DateTime.Now;

      // e agora o ano da data como um inteiro
      int ano = agora.Year;

      // e finalmente mostramos o resultado
      Console.WriteLine("Estamos no ano: {0}", ano);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

Estamos no ano: 2022


C++ ::: Dicas & Truques ::: Strings e Caracteres

Como retornar uma substring de uma string em C++ usando a função substr()

Quantidade de visualizações: 9991 vezes
Este exemplo usa a função substr() para obter uma substring a partir de uma string. A assinatura para essa função é:

string substr(size_t pos = 0, size_t n = npos) const;
Veja que só precisamos fornecer a posição do caractere inicial da substring (pos) e a quantidade de caracteres que serão retornados (n).

Se a posição inicial da substring for maior que o tamanho da string, uma exceção do tipo out_of_range será atirada. Nenhum erro é indicado se o tamanho da substring exceder o tamanho da string.

Veja o código C++ completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // vamos criar uma string	
  string frase = "Gosto de Java e C++";
  cout << "A frase e: " << frase << endl;
  
  // agora vamos obter uma parte da frase
  string sub = frase.substr(9, 4);

  // e mostramos o resultado
  cout << "A substring retornada e: " << sub << endl; // retorna "Java"
	  
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

A frase é: Gosto de Java e C++
A substring retornada é: Java


C# ::: Dicas & Truques ::: Strings e Caracteres

Como retornar o índice da primeira ocorrência de um caractere em uma string C# usando o método IndexOf() da classe String

Quantidade de visualizações: 8286 vezes
Em alguma ocasião nós precisaremos verificar se um determinado caractere está contido em uma palavra, frase ou texto, e poderemos querer também retornar o índice da primeira ocorrência de tal caractere.

Para isso nós podemos usar a função IndexOf() da classe String. Este método recebe o caractere ou substring desejada e retorna um valor inteiro indicando o índice da primeira ocorrência. Se o caractere não for encontrado, o valor -1 é retornado.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto de Java e C#";

      // vamos obter o índice da primeira ocorrência da letra "J"
      int pos = frase.IndexOf("J");

      // o caractere for encontrado?
      if (pos != -1) {
        Console.WriteLine("O caractere foi encontrado" +
          " na posição " + pos);
      }
      else {
        Console.WriteLine("O caractere não foi encontrado");
      }

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

O caractere foi encontrado na posição 9

Tenha em mente que o método IndexOf() da classe String do C# diferencia letras maiúsculas de letras minúsculas.


Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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