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

Como calcular o ponto médio entre dois pontos no plano usando Java - Geometria com Java

Quantidade de visualizações: 3201 vezes
Nesta dica mostrarei como é possível usar um trecho de código Java para obter o ponto médio entre dois pontos quaisquer no plano, ou seja, no R2. Em mais dicas dessa seção você aprenderá como isso pode ser feito no R3 (espaço)

Comece analisando a figura abaixo, na qual temos dois pontos A e B, com suas coordenadas correspondentes, e o ponto médio M:



Assim, dados dois pontos A = (2, 9) e B = (10, 2) no plano cartesiano R2, as coordenadas x e y do ponto médio são calculadas por meio da seguinte fórmula:

\[x = \frac{x_1 + x_2}{2}\]
\[y = \frac{y_1 + y_2}{2}\]

Colocando na fórmula os valores que já temos:

\[x = \frac{2 + 10}{2} = \frac{12}{2} = 6 \]
\[y = \frac{9 + 2}{2} = \frac{11}{2} = 5.5 \]

Assim, as coordenadas do ponto médio será (x = 6, y = 5.5).

E agora veja o código Java completo para calcular as coordenadas do ponto médio a partir de dois pontos no plano cartesiano (plano 2D ou R2):

package arquivodecodigos;

import java.util.Scanner;

public class Estudos{
  public static void main(String[] args){
    Scanner entrada = new Scanner(System.in);
    
    // x e y do primeiro ponto
    System.out.print("Coordenada x do primeiro ponto: ");
    float x1 = Float.parseFloat(entrada.nextLine());
    System.out.print("Coordenada y do primeiro ponto: ");
    float y1 = Float.parseFloat(entrada.nextLine());
    
    // x e y do segundo ponto
    System.out.print("Coordenada x do segundo ponto: ");
    float x2 = Float.parseFloat(entrada.nextLine());
    System.out.print("Coordenada y do segundo ponto: ");
    float y2 = Float.parseFloat(entrada.nextLine());
    
    // vamos calcular as coordenadas x e y do ponto médio    
    float x = (x1 + x2) / 2;
    float y = (y1 + y2) / 2;
    
    // vamos mostrar o resultado
    System.out.println("As coordenadas do ponto médio são: (x = " +
      x + ", y = " + y + ")");
  }
}

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

Coordenada x do primeiro ponto: 2
Coordenada y do primeiro ponto: 9
Coordenada x do segundo ponto: 10
Coordenada y do segundo ponto: 2
As coordenadas do ponto médio são: (x = 6.0, y = 5.5)


VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: VisuAlg Básico

Exercícios Resolvidos de VisuAlg - Escreva um programa VisuAlg que pergunte a velocidade de um carro. Caso ultrapasse 80km/h, exiba uma mensagem dizendo que

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

Escreva um programa VisuAlg que pergunte a velocidade de um carro. Caso ultrapasse 80km/h, exiba uma mensagem dizendo que o usuário foi multado. Nesse caso, exiba o valor da multa, cobrando R$ 5,00 por cada quilômetro acima da velocidade permitida.

Sua saída deve ser parecida com:

Velocidade do carro: 85
Você foi multado.
A multa a ser paga é: 25.0

Velocidade do carro: 75
Você não foi multado

Velocidade do carro: 110
Você foi multado.
A multa a ser paga é: 150.0
Resposta/Solução:

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

algoritmo "Calcular a velocidade de um carro em VisuAlg"

var
  // variáveis usadas na resolução do problema
  velocidade, multa: real

// função principal do programa
inicio
  // vamos pedir para o usuário informar a velocidade
  // do carro
  escreva("Informe a velocidade do carro: ")
  leia(velocidade)

  // vamos verificar se o usuário foi multado
  se (velocidade > 80) entao
    escreval("Você foi multado.")
    // vamos calcular a multa
    multa <- (velocidade - 80) * 5.0
    escreval("A multa a ser paga é: ", multa)
  senao
    escreval("Você não foi multado")
  fimse

  escreval()

fimalgoritmo



C++ ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em C++

Quantidade de visualizações: 1039 vezes
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem C++.

Comece observando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos que fazer é mudar a fórmula para:

\[a^2 = c^2 - b^2\]

Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem C++:

#include <iostream>
#include <math.h>
#include <cstdlib>
 
using namespace std;
 
int main(int argc, char *argv[]){
  float c = 36.056; // medida da hipotenusa
  float b = 30; // medida do cateto adjascente
  
  // agora vamos calcular o comprimento da cateto oposto
  float a = sqrt(pow(c, 2) - pow(b, 2));
 
  // e mostramos o resultado
  cout << "A medida do cateto oposto é: " << a << "\n\n";
	 
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

A medida do cateto oposto é: 20.0009

Como podemos ver, o resultado retornado com o código C++ confere com os valores da imagem apresentada.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Escreva um programa Java para calcular e imprimir o número de lâmpadas necessárias

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

Escreva um programa Java para calcular e imprimir o número de lâmpadas necessárias para iluminar um determinado cômodo de uma residência. Dados de entrada: a potência da lâmpada utilizada (em watts), as dimensões (largura e comprimento, em metros) do cômodo. Considere que a potência necessária é de 18 watts por metro quadrado.

Sua saída deverá ser parecida com:

Informe a potência da lâmpada (em watts): 100
Informe a largura do cômodo (em metros): 6
Informe o comprimento do cômodo (em metros): 4
Serão necessárias 4 lâmpadas.
Resposta/Solução:

Veja a resolução completa para o exercício em Java, comentada linha a linha:

// Como calcular o número de lâmpadas necessárias
package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // variáveis usadas na resolução do problema
    double potencia_lampada, largura_comodo, comprimento_comodo;
    double area_comodo, potencia_total;
    int quant_lampadas;

    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler a potência da lâmpada
    System.out.print("Informe a potência da lâmpada (em watts): ");
    potencia_lampada = Double.parseDouble(entrada.nextLine());

    // vamos ler a largura do cômodo
    System.out.print("Informe a largura do cômodo (em metros): ");
    largura_comodo = Double.parseDouble(entrada.nextLine());

    // agora vamos ler o comprimento do cômodo  
    System.out.print("Informe o comprimento do cômodo (em metros): ");
    comprimento_comodo = Double.parseDouble(entrada.nextLine());

    // agora vamos calcular a área do cômodo
    area_comodo = largura_comodo * comprimento_comodo;

    // calculamos a potência total necessária para iluminar
    // todo o cômodo
    potencia_total = area_comodo * 18;

    // e finalmente calculamos a quantidade de lâmpadas necessárias
    quant_lampadas = (int)(potencia_total / potencia_lampada);

    // será necessário no mínimo uma lâmpada
    if (quant_lampadas == 0) {
      quant_lampadas = quant_lampadas + 1;
    }

    // e mostramos o resultado  
    System.out.println("Serão necessárias " + quant_lampadas +
      " lâmpadas.");
  }
}



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

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

Quantidade de visualizações: 18980 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


C# ::: Datas e Horas ::: DateTime

Como construir uma data em C# usando o objeto DateTime e fornecendo o dia, mês e ano da data desejada

Quantidade de visualizações: 7154 vezes
Aplicações que lidam com datas e horas geralmente precisam ser capazes de criar suas próprias datas. Isso pode ser feito com o auxílio de um dos vários construtores da estrutura DateTime. Para esta dica eu mostrarei como criar uma data no formato 23/05/2008. O construtor a ser usado é:

DateTime(Int32, Int32, Int32)

Este construtor pede valores inteiros representando o ano, mês e dia da data que queremos construir e retorna um objeto DateTime representando a data recém-construida. Veja um exemplo:

static void Main(string[] args){
  // cria um objeto DateTime para a data 10/04/2008
  DateTime data = new DateTime(2008, 4, 10);

  // exibe o resultado
  System.Console.WriteLine(data.ToString("dd/MM/yyyy"));

  // pausa o programa
  Console.ReadKey();
}

Note que, quando usamos este construtor, a parte do DateTime relativa às horas é inicializada como meia-noite.

Tome cuidade. Este método pode lançar exceções dos tipos ArgumentOutOfRangeException e ArgumentException se os valores fornecidos para o ano, mês e dia estiverem fora das faixas permitidas.


Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Manipulação de imagens em Java - Como carregar imagens JPG (JPEG), GIF ou PNG usando o método getImage() da classe Toolkit

Quantidade de visualizações: 23880 vezes
O método getImage() da classe Toolkit retorna um objeto da classe Image que obtém informações de imagem (pixels) a partir do caminho informado. Veja que este método não verifica se a imagem informada para o método existe ou se foi carregada com sucesso. Veja mais dicas nesta seção para aprender a realizar tais tarefas.

O código abaixo mostra como chamar o método getImage() para carregar uma imagem ao clicar em um botão:

package arquivodecodigos;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class Estudos extends JFrame{
  private Image imagem = null;  
 
  public Estudos() {
    super("Estudos Java");
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
     
    JButton btn = new JButton("Carregar Imagem");
    btn.addActionListener(
      new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
          // imagem a ser carregada
          String minhaImagem = "C:\\estudos_java\\lago.jpg";          
 
          // Obtém o Toolkit padrão
          Toolkit toolkit = 
            Toolkit.getDefaultToolkit();
          imagem = toolkit.getImage(minhaImagem);
 
          JOptionPane.showMessageDialog(null, 
            "A imagem  foi carregada. Agora é só manipulá-la.");
        }
      }
    );
 
    c.add(btn);
         
    setSize(400, 300);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

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

A imagem foi carregada. Agora é só manipulá-la.


CSS ::: Dicas & Truques ::: Cores de Fundo e Imagens de Fundo

Apostila CSS - Como definir a cor de fundo de um elemento HTML usando um valor rgb

Quantidade de visualizações: 7432 vezes
A propriedade background-color aceita um valor de cor que pode ser informado por meio da função rgb(). Esta função aceita valores de 0 até 255 para a cores vermelho, verde e azul, ou seja Red, Green e Blue.

Veja a figura abaixo:



A cor de fundo para esta página for gerada com o seguinte código:

<html>
<head>
<title>Estudando CSS</title>

<meta name="viewport" content="width=device-width, 
  initial-scale=1">

</head>
<body style="background-color: rgb(201, 20, 58)">
 
</body>
</html>



Delphi ::: Dicas & Truques ::: Rotinas de Conversão

Como converter strings em valores TDateTime usando as funções StrToDate() e StrToDateDef() do Delphi

Quantidade de visualizações: 18477 vezes
A função StrToDate() da unit SysUtils é usada quando queremos converter strings em valores TDateTime. No Delphi 2009 esta função possui duas assinaturas:

function StrToDate(const S: string): TDateTime; overload;
function StrToDate(const S: string; const FormatSettings: 
  TFormatSettings): TDateTime; overload;


A primeira versão de StrToDate() recebe uma string contendo uma data e retorna um objeto TDateTime. Veja o seguinte trecho de código:

procedure TForm1.Button1Click(Sender: TObject);
var
  data: string;
  data2: TDateTime;
begin
  // vamos converter a data 22/02/2005
  data := '22/02/2005';

  // a conversão acontece aqui. Note que, caso a conversão
  // não seja possível, uma exceção do tipo EConvertError será
  // disparada (lançada)
  try
    data2 := StrToDate(data);
    ShowMessage(DateTimeToStr(data2));
  except
    on e: EConvertError do
      ShowMessage('Não foi possível efetuar a conversão: ' +
        e.Message);
  end;
end;


Note que a função StrToDate() lançará uma exceção do tipo EConvertError se a string não possuir uma data válida. Os valores de strings representando datas válidas incluem mês/dia/ano, dia/mês/ano e ano/mês/dia. A ordem de dia, mês e ano é determinada pela variáve global ShortDateFormat. Se fornecermos valores apenas para o dia e o mês a função incluirá o ano atual. Não podemos esquecer a barra de separação de datas. Se seu aplicativo foi desenvolvido para rodar em outras localidades, obtenha o separador de datas por meio da variável global DateSeparator.

A primeira versão da função StrToDate() não é segura em relação a threads (thread-safe) devido ao uso de informações de localização contidas em variáveis globais, ou seja, se uma thread modificar os valores de tais variáveis, código sendo executado em outras threads sofrerão as consequencias. Para evitar isso podemos usar a segunda versão de StrToDate(), que usa um objeto FormatSettings para guardar as informações de localização. Veja um exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  data: string;
  data2: TDateTime;
  formato: TFormatSettings;
begin
  // vamos converter a data 22/02/2005
  data := '22/02/2005';

  // a conversão acontece aqui. Note que, caso a conversão
  // não seja possível, uma exceção do tipo EConvertError será
  // disparada (lançada)
  try
    GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formato);
    data2 := StrToDate(data, formato);
    ShowMessage(DateTimeToStr(data2));
  except
    on e: EConvertError do
      ShowMessage('Não foi possível efetuar a conversão: ' +
        e.Message);
  end;
end;

A função StrToDateDef() é similar à função StrToDate(). A diferença é que, se a string possuir uma data inválida, a função StrToDateDef() retorna uma data padrão, ou seja, não haverá nenhuma exceção atirada. Veja:

procedure TForm1.Button1Click(Sender: TObject);
var
  data: string;
  data2: TDateTime;
begin
  // vamos converter a data 2s2/02/2005 (inválida)
  data := '2s2/02/2005';

  // a conversão acontece aqui. Note que, caso a conversão
  // não seja possível, a data atual será retornada
  data2 := StrToDateDef(data, Now);
  ShowMessage(DateTimeToStr(data2));
end;

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


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

Como acessar os caracteres de uma string C++ individualmente usando um iterador

Quantidade de visualizações: 11189 vezes
Nesta dica mostrarei como podemos usar um iterador para percorrer todos os caracteres de uma palavra, frase ou texto em C++. Para isso nós vamos combinar um iterator e as funções begin() e end().

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

#include <string>
#include <iostream>
 
using namespace std;
 
// função principal do programa C++ 
int main(int argc, char *argv[]){
  // vamos declarar um objeto da classe string
  string palavra("FACULDADE");
  
  // agora criamos um iterador para a string
  string::iterator it;
   
  // e usamos um laço for para percorrer o iterador
  // do início ao fim 
  for(it = palavra.begin(); it < palavra.end(); it++){
    // e mostramos os caracteres individuais
    cout << *it << "\n";
  } 
     
  cout << "\n" << endl;	    
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

F
A
C
U
L
D
A
D
E

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

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

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



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