Escreva um programa que leia as coordenadas de N pontos do plano cartesiano e que exiba as distâncias mínima, máxima e média entre esses pontos. O programa deve representar os pontos como uma lista de tuplas e deve adotar a distância euclidiana para aferir a distância dentre dois pontos.

Passo 1

Beleza, o exercício pede pra escrever um programa que, dado um conjunto de N pontos no plano (cada ponto é uma tupla (x,y)), calcule:
  • a menor distância entre quaisquer dois desses pontos,
  • a maior distância,
  • a distância média.
Conteúdo envolvido:
  1. Representação de pontos como lista de tuplas.
  2. Fórmula da distância euclidiana entre dois pontos: dl((x1,y1),(x2,y2)r) = raiz(x2 - x1)^2 + (y2 - y1)^2,
  3. Percorrer todas as combinações de pares de pontos (combinação, porque a distância A→B é a mesma B→A).
  4. Manter um acumulador de somas, contador de pares, e variáveis para mínimo e máximo.

Passo 2

Primeiro a gente lê N, depois lê N pares (x,y) e monta uma lista pontos = [(x1,y1), (x2,y2), …]. Em Python, por exemplo:
N = int(input())
pontos = []
for _ in range(N):
    x, y = map(float, input().split())
    pontos.append((x, y))

Passo 3

Agora precisamos percorrer todos os pares distintos de índices i < j. Usamos dois laços aninhados:
import math

min_dist = float('inf')
max_dist = 0.0
soma_dist = 0.0
cont = 0

for i in range(N):
    for j in range(i+1, N):
        x1, y1 = pontos[i]
        x2, y2 = pontos[j]
        # fórmula da distância euclidiana:
        d = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
        # atualiza mínimo e máximo:
        if d < min_dist:
            min_dist = d
        if d > max_dist:
            max_dist = d
        # acumula para média:
        soma_dist += d
        cont += 1

Passo 4

Depois de sair dos laços, cont vai ser o número total de pares, que é média = somadistcont .
A distância média é simplesmente
é
Então fazemos:
media_dist = soma_dist / cont  # cont nunca será zero se N>=2

Passo 5

Por fim, a gente exibe os resultados (formatando como quiser, com 2 casas decimais, por exemplo):
print(f"Menor distância: {min_dist:.2f}")
print(f"Maior distância: {max_dist:.2f}")
print(f"Distância média: {media_dist:.2f}")

Resposta

O programa acima lê N pontos, calcula todas as distâncias entre pares, e retorna:
  • min_dist = menor distância encontrada,
  • max_dist = maior distância encontrada,
  • media_dist = soma de todas as distâncias dividida por .

Exercícios relacionados