Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 1015. Mostrar todas as postagens
Mostrando postagens com marcador 1015. Mostrar todas as postagens

quinta-feira, 8 de junho de 2023

URI (BEECROWD) - 1015 - Distância Entre Dois Pontos (Distance Between Two Points) - Iniciante (Beginner) - Haskell

Olá,

Hoje vamos dar continuidade aos posts resolvendo problemas do Beecrowd (antigo URI)

Plataforma: BEECROWD
Problema1015

Enunciado (em inglês):
Read the four values corresponding to the x and y axes of two points in the plane, p1 (x1, y1) and p2 (x2, y2) and calculate the distance between them, showing four decimal places after the comma, according to the formula:

Distance = ²√((x2 -x1)² + (y2 - y1)²)

Em português:
Leia os quatro valores correspondentes aos eixos x e y de dois pontos quaisquer no plano, p1(x1,y1) e p2(x2,y2) e calcule a distância entre eles, mostrando 4 casas decimais após a vírgula, segundo a fórmula: 

Distancia = ²√((x2 -x1)² + (y2 - y1)²)

Linguagem: Haskell

Solução:

Observando o enunciado, tudo que precisamos fazer é ler essas coordenadas e usar a fórmula acima.
Como as respostas utilizam sempre quatro casas decimais, decidi por usar o printf para melhor formatar esta saída, por isso faço import Text.Printf (printf).

Leio as coordenadas, que são informadas linha a linha, como valores String, portanto, utilizo getLine para ler a linha inteira. Depois, para cada linha, converto ela em uma lista de coordenadas. Como a entrada será composta por dois valores, já chamo a lista da primeira linha convertida de [x1, y1] e a da segunda linha de [x2, y2]. Para ambas utilizei o tipo de ponto flutuante de dupla precisão (Double).

Feita a conversão, basta utilizar o printf para imprimir o valor com quatro casas decimais e sem esquecer de quebrar a linha ao final (formatação "%.4f\n"). O valor que será formatado é exatamente o da fórmula da distância, ou seja, (sqrt((x2-x1)**2 + (y2-y1)**2)).

import Text.Printf (printf)
main :: IO ()
main = do 
   line1 <- getLine
   line2 <- getLine
   let [x1, y1] = map read (words line1) :: [Double]
   let [x2, y2] = map read (words line2) :: [Double]
   printf "%.4f\n" (sqrt((x2-x1)**2 + (y2-y1)**2))

Ajude o blog! O nosso PIX para doações é a chave aleatória 6d8bc7a8-5d74-493a-ab7a-3515baf35956

quarta-feira, 27 de maio de 2020

URI - 1015 - Distância Entre Dois Pontos - Iniciante - C++

Ajude o blog! PIX para doações: 6d8bc7a8-5d74-493a-ab7a-3515baf35956

Plataforma: URI
Problema1015

Enunciado:
Leia os quatro valores correspondentes aos eixos x e y de dois pontos quaisquer no plano, p1(x1,y1) e p2(x2,y2) e calcule a distância entre eles, mostrando 4 casas decimais após a vírgula, segundo a fórmula: 

Distancia = ²√((x2 -x1)² + (y2 - y1)²)

Linguagem: C++

Solução:


#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

int main() {
    double x1, y1, x2, y2;
  
    cin >> x1 >> y1 >> x2 >> y2;
    
    cout << fixed << setprecision(4)
         << sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1)) << endl;
  
    return 0;
}

quinta-feira, 30 de abril de 2020

URI (BEECROWD) - 1015 - Distância Entre Dois Pontos - Iniciante - C

Ajude o blog! PIX para doações: 6d8bc7a8-5d74-493a-ab7a-3515baf35956

Plataforma: BEECROWD (URI)
Problema1015

Enunciado:
Leia os quatro valores correspondentes aos eixos x e y de dois pontos quaisquer no plano, p1(x1,y1) e p2(x2,y2) e calcule a distância entre eles, mostrando 4 casas decimais após a vírgula, segundo a fórmula: 

Distancia = ²√((x2 -x1)² + (y2 - y1)²)

Linguagem: C

Solução:

#include <stdio.h>
#include <math.h>

int main() {
    double x1, y1, x2, y2;
    scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
    printf("%.4lf\n", sqrt(pow(x2-x1, 2.0) + pow(y2-y1, 2.0)));
}

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas