Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Delphi ::: Dicas & Truques ::: Aplicativos e Outros

Como calcular a distância entre dois pontos na terra em Delphi

Quantidade de visualizações: 896 vezes
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado.

O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes.

Veja o código Delphi completo:

// função que recebe dois pontos na terra e retorna a distância
// entre eles em quilômetros
function CalcularDistancia(lat1: double; lat2: double; lon1: double;
  lon2: double): double;
var
  raio_terra, dlon, dlat, a, c: double;
begin
  raio_terra := 6378.137; // raio da terra em quilômetros

  // o primeiro passo é converter as latitudes e longitudes
  // para radianos
  // não esqueça de adicionar a unit Math
  lon1 := DegToRad(lon1);
  lon2 := DegToRad(lon2);
  lat1 := DegToRad(lat1);
  lat2 := DegToRad(lat2);

  // agora aplicamos a Fórmula de Haversine
  dlon := lon2 - lon1;
  dlat := lat2 - lat1;
  a := Power(Sin(dlat / 2), 2) + Cos(lat1) * Cos(lat2)
    * Power(Sin(dlon / 2),2);
......


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

Informe a primeira latitude: -16,674551
Informe a primeira longitude: -49,303598
Informe a segunda latitude: -15,579321
Informe a segunda longitude: -56,10009
A distância entre os dois pontos é: 736,9 kms

Aqui as informações sobre as latitudes e longitudes vieram de campos de texto TEdit, e o código foi disparado a partir do clique de um botão TButton.

Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuiabá-MT.

A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador.

Link para compartilhar na Internet ou com seus amigos:

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

Exercícios Resolvidos de Java - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equilátero

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

Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra:

A < (B + C), B < (A + C) e C < (A + B).

Escreva um programa Java que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais).

Sua saída deverá ser parecida com:

Informe o primeiro lado do triângulo: 30
Informe o segundo lado do triângulo: 40
Informe o terceiro lado do triângulo: 60
O triângulo é escaleno
Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
      
    // vamos ler o primeiro lado do triângulo
    System.out.print("Informe o primeiro lado do triângulo: ");
    int ladoA = Integer.parseInt(entrada.nextLine());
    
    // vamos ler o segundo lado do triângulo
    System.out.print("Informe o segundo lado do triângulo: ");
    int ladoB = Integer.parseInt(entrada.nextLine());
    
    // vamos ler o terceiro lado do triângulo
    System.out.print("Informe o terceiro lado do triângulo: ");
    int ladoC = Integer.parseInt(entrada.nextLine());
    
    // os lados informados formam um triângulo?
......



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

Como converter radianos em graus em PHP usando a função rad2deg()

Quantidade de visualizações: 9535 vezes
As unidades graus e radianos são muito usadas em cálculos de trigonometria, especialmente em aplicações que lidam com geometria, topografia e engenharia.

O grau é de uso mais no cotidiano, pela sua praticidade, pois envolve na maioria dos casos números inteiros. O radiano, por sua vez, é de uso em cálculos envolvendo geralmente números racionais.

Este trecho de código PHP mostra como converter radianos em graus usando a função rad2deg().

<?php
  // vamos definir um valor em radianos 
  $radianos = 1.45;
  
  // agora vamos converter para graus
  $graus = rad2deg($radianos);
  echo $radianos . " radianos convertido para graus é " .
......


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

1.45 radianos convertido para graus é 83.078880293969


Java ::: Pacote java.awt ::: Graphics

Como desenhar linhas no Java Swing usando o método drawLine() da classe Graphics

Quantidade de visualizações: 15002 vezes
O método drawLine() da classe Graphics nos permite desenhar linhas retas. Observe atentamente a assinatura deste método:

public abstract void drawLine(int x1,
  int y1, int x2, int y2)


Neste método, os parâmetros x1 e x2 representam as coordenadas iniciais da linha e x2 e y2 representam as coordenadas finais. Veja um trecho de código no qual desenhamos quatro linhas em um JLabel:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Estudos extends JFrame{
  JLabel label;  

  public Estudos() {
    super("Desenhando em um JLabel");
    
    Container c = getContentPane();
    c.setLayout(new BorderLayout());

    // Cria um JLabel
    label = new JLabel();
    c.add(label, BorderLayout.CENTER);

    // Cria um botão
    JButton btn = new 
      JButton("Desenhar Linhas");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          
          Graphics graphics = label.getGraphics();
......


Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso.


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

Exercício Resolvido de Java - Como calcular o restante de um salário após o pagamento de duas contas com juros

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

Cintia acaba de receber seu salário mas precisa pagar duas contas atrasadas. Por causa do atraso, ela deverá pagar multa de 2% sobre cada conta. Faça um programa que leia o valor do salário e das duas contas e que calcule e mostre quanto restará do salário de Cintia.

Sua saída deverá ser parecida com:

Informe o salário: 1350
Valor da primeira conta: 140
Valor da segunda conta: 300

Total das contas sem juros: 440.0
Total dos juros: 8.8
Total das contas com juros: 448.8
Sobra do salário: 901.2
Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);  
    
    // vamos pedir que o usuário informe o valor do salário e das duas contas
    System.out.print("Informe o salário: ");
    double salario = Double.parseDouble(entrada.nextLine());
    System.out.print("Valor da primeira conta: ");
    double conta1 = Double.parseDouble(entrada.nextLine());
    System.out.print("Valor da segunda conta: ");
    double conta2 = Double.parseDouble(entrada.nextLine());
    
    // total a ser pago nas duas contas sem os juros
......



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

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

Quantidade de visualizações: 7453 vezes
Este trecho de código mostra como obter o índice da primeira ocorrência de uma substring em uma string. Se a substring não for encontrada, o valor -1 é retornado.

Note que o método IndexOf() da classe String recebe a substring a ser pesquisada e retorna o índice de sua primeira ocorrência (começando sempre em 0). Além disso, este método diferencia maiúsculas de minúsculas.

Veja o código para o exemplo:

using System;

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

      // obtém o índice da primeira ocorrência
      int pos = frase.IndexOf("de");

      if (pos != -1) {
        Console.WriteLine("A substring foi encontrada" +
......


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

A substring foi encontrada na posição 6


Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

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