A distância entre várias cidades é dada pela tabela abaixo (em km):
1 2 3 4 5
00 15 30 05 12
2 15 00 10 17 28
3 30 10 00 03 11
4 05 17 03 00 80
5 12 28 11 80 00
Construa um programa que leia a tabela acima e informe ao usuário a distância entre duas cidades por ele requisitadas, até que ele entre com o código 0 para ambas as cidades;

Passo 1

O enunciado pede um programinha que leia uma tabela de distâncias (uma matriz 5×5) entre cidades e, a cada solicitação do usuário (dois códigos de cidade), informe a distância correspondente, repetindo até que o usuário digite 0 para ambas as cidades.
Conteúdo da matéria:
  • Estruturas de dados (matriz/array bidimensional)
  • Laços de repetição (while)
  • Comandos de entrada/saída e condicionais (if)
    O que vamos precisar:
  • Representar a tabela como uma matriz onde é a distância da cidade para a cidade .
  • Um laço que leia pares de códigos até ambos serem zero.

Passo 2

Primeiro, montamos a matriz de distâncias. Em código (por exemplo Python), a gente pode fazer assim:
D = [
  [ 0, 15, 30,  5, 12],
  [15,  0, 10, 17, 28],
  [30, 10,  0,  3, 11],
  [ 5, 17,  3,  0, 80],
  [12, 28, 11, 80,  0]
]
Aqui, é acessado por D[i-1][j-1] porque índices em Python começam em 0.

Passo 3

Agora a lógica do laço:
  1. A gente pede ao usuário dois números inteiros c1 e c2.
  2. Se c1 == 0 e c2 == 0, sai do laço (break).
  3. Senão, checa se 1 ≤ c1, c2 ≤ 5.
    • Se válido, exibe D[c1-1][c2-1].
    • Se inválido, mostra uma mensagem de “código inválido”.
  4. Volta pro passo 1 do laço.
Teoria aplicada:
  • Laço while para repetir até condição de parada.
  • Índices de matriz: para acessar , usamos D[i-1][j-1] em linguagens que começam em 0.
  • Condicional if para verificar terminação e validade de código.

Passo 4

Montagem final do programa (exibindo prompts e resultados). A cada iteração:
  • Leitura dos códigos
  • Checagem de término
  • Validação de intervalo
  • Impressão da distância ou mensagem de erro

Resposta

# Matriz de distâncias
D = [
  [ 0, 15, 30,  5, 12],
  [15,  0, 10, 17, 28],
  [30, 10,  0,  3, 11],
  [ 5, 17,  3,  0, 80],
  [12, 28, 11, 80,  0]
]

while True:
    c1 = int(input("Digite o código da primeira cidade (0 para sair): "))
    c2 = int(input("Digite o código da segunda cidade  (0 para sair): "))
    
    # condição de parada
    if c1 == 0 and c2 == 0:
        print("Encerrando o programa. Valeu!")
        break
    
    # validação de índices
    if 1 <= c1 <= 5 and 1 <= c2 <= 5:
        dist = D[c1-1][c2-1]      # acessa D_{c1,c2}
        print(f"Distância entre {c1} e {c2}: {dist} km")
    else:
        print("Código inválido! Use valores entre 1 e 5.")

Exercícios relacionados