Faça um programa no qual sejam definidos dois vetores de números inteiros com quaisquer tamanhos e quaisquer valores e seja impresso na tela se esses vetores são iguais. Considere dois vetores iguais se eles possuem o mesmo tamanho e se os elementos das posições correspondentes dos dois vetores são iguais (isto é, o elemento da primeira posição do primeiro vetor é igual ao elemento da primeira posição do segundo vetor, o elemento da segunda posição do primeiro vetor é igual ao elemento da segunda posição do segundo vetor, e assim por diante).
Passo 1
O enunciado pede um programa que defina dois vetores (listas) de números inteiros com quaisquer tamanhos e quaisquer valores e imprima na tela se esses vetores são iguais. As regras para considerar vetores iguais são claramente dadas: eles devem ter o mesmo tamanho e, para cada posição, os elementos correspondentes devem ser iguais (ou seja, o elemento da posição 1 do primeiro vetor igual ao da posição 1 do segundo vetor, o elemento da posição 2 igual ao da posição 2 do outro, e assim por diante).
Informações relevantes extraídas do enunciado:
- Os vetores podem ter quaisquer tamanhos (ou seja, tamanhos diferentes são possíveis).
- Os vetores contêm números inteiros.
- A comparação deve ser posição a posição.
- O programa deve imprimir na tela se os vetores são iguais (ou não).
Passo 2
Escolha de linguagem e abordagem: vou usar Python porque é simples, legível e muito usado em provas e exercícios práticos. Além disso, Python permite mostrar tanto a maneira explícita (passo a passo) de comparar vetores — que é o que o professor costuma cobrar — quanto a maneira mais direta/idiomática.
Se houver múltiplas maneiras de resolver, prefiro mostrar:
- A abordagem manual (que explica bem o raciocínio que você precisa na prova).
- A abordagem “pythônica” (apenas para saber que existe uma forma direta pronta).
Passo 3
Descrição do algoritmo (em linguagem simples, passo a passo):
- Ler o primeiro vetor (saber seu tamanho e seus elementos).
- Ler o segundo vetor.
- Comparar os tamanhos: se forem diferentes, os vetores não são iguais.
- Se os tamanhos forem iguais, comparar elemento por elemento:
- Para cada índice, verificar se o elemento do primeiro vetor é igual ao elemento do segundo vetor.
- Se encontrar qualquer diferença, declarar “não iguais” e encerrar a comparação.
- Se terminar a verificação sem encontrar diferenças, declarar “iguais”.
Esse algoritmo é direto e é exatamente o que o enunciado pede (mesmo tamanho + elementos correspondentes iguais).
Passo 4
Conceitos e funções que usaremos em Python (explicados devagarzinho):
- Lista (vetor): em Python, um vetor de inteiros é representado por uma lista, por exemplo
. - Comprimento de uma lista: usamos a função
para obter quantos elementos o vetor tem. - Acesso por índice:
dá o elemento na posição (em Python os índices começam em ). - Comparação de elementos: use o operador
para comparar dois inteiros. Para listas, em Python, a expressão já verifica se têm o mesmo tamanho e todos os elementos correspondentes são iguais — isso é útil, mas é bom saber fazer manualmente. - Laço para comparar manualmente: um
para percorrer índices e comparar com .
Importante para prova: mesmo que Python tenha
, mostre também o algoritmo manual, porque muitos professores esperam ver a checagem de tamanhos seguida de um loop que compara elementos.
Passo 5
Programa passo a passo (implementação manual da comparação). Vou explicar cada parte do código enquanto o apresento.
Explicação das entradas que o programa espera (forma simples e robusta):
- O programa lê primeiro um inteiro que representa o tamanho do primeiro vetor.
- Depois lê os elementos do primeiro vetor (em uma ou mais linhas, separados por espaços).
- Em seguida lê o tamanho do segundo vetor e seus elementos do mesmo modo.
Essa forma permite tamanhos quaisquer e facilita a testagem.
Agora o código (comentado) — este código implementa a leitura robusta e a comparação manual elemento a elemento.
# Função para ler um vetor de inteiros dado seu tamanho
def ler_vetor():
# lê o tamanho (inteiro)
n = int(input().strip())
# coleciona elementos até ter n
elementos = []
while len(elementos) < n:
linha = input().strip()
if linha == "":
continue
partes = linha.split()
elementos.extend(partes)
# converte para inteiros e pega apenas os primeiros n
return [int(x) for x in elementos[:n]]
# Função que compara manualmente dois vetores (retorna True se iguais, False se diferentes)
def vetores_iguais(v1, v2):
# primeiro passo: ver se têm o mesmo tamanho
if len(v1) != len(v2):
return False
# segundo passo: comparar elemento a elemento
for i in range(len(v1)):
if v1[i] != v2[i]:
return False
# se passou por todos sem encontrar diferença, são iguais
return True
# Programa principal
def main():
# Leitura do primeiro vetor
# Ex.: se for testar manualmente, digite primeiro o tamanho e depois os elementos
v1 = ler_vetor()
# Leitura do segundo vetor
v2 = ler_vetor()
# Comparação
if vetores_iguais(v1, v2):
print("Iguais")
else:
print("Diferentes")
if __name__ == "__main__":
main()
Comentário sobre o código:
- A função
é robusta: mesmo que o usuário escreva os elementos em várias linhas, ela continuará lendo até ter todos os elementos exigidos pelo tamanho. - A função
implementa exatamente a condição pedida no enunciado: primeiro verifica o mesmo tamanho e depois verifica posição a posição. - A saída está em português: imprime “Iguais” quando são iguais e “Diferentes” caso contrário.
Passo 6
Versão curta (idiomática) em Python: se você quiser usar a funcionalidade pronta da linguagem, Python permite fazer a comparação diretamente com
. O trecho essencial fica assim:
if v1 == v2:
print("Iguais")
else:
print("Diferentes")
Mas atenção: para fins de prova, recomendo escrever a versão manual (como mostrei no passo anterior), para demonstrar que você entendeu o critério de igualdade (tamanho igual e elementos correspondentes iguais).
Passo 7
Exemplo de execução (explicado devagar):
-
Suponha que você entre com o tamanho do primeiro vetor
e envie os elementos . -
Depois entre com o tamanho do segundo vetor
e os elementos .
O programa vai imprimir:
Iguais -
Se o segundo vetor for de tamanho
com elementos , o programa vai imprimir:
Diferentes -
Se o segundo vetor tiver tamanho
com elementos , o programa vai imprimir:
Diferentes
Observação: nos exemplos acima escrevi os números explicitamente para você entender; quando for rodar, digite os números conforme a ordem de leitura do programa.
Passo 8
Complexidade e observações úteis para a prova:
- Complexidade de tempo: no pior caso (mesmo tamanho e todos elementos iguais) o algoritmo faz
comparações, onde é o tamanho dos vetores — ou seja, linear. - Complexidade de espaço: usamos espaço extra pequeno (listas já dadas), sem estruturas auxiliares grandes.
- Casos de borda a lembrar na prova: vetores vazios (tamanho
) — dois vetores vazios são iguais; vetores com sinais negativos — funcionam normalmente; entrada com espaços extras — a função de leitura que mostrei lida com isso. - Dica para a prova: escreva primeiro a checagem de tamanho e depois o laço de comparação. É a sequência lógica esperada.
Resposta
def ler_vetor():
n = int(input().strip())
elementos = []
while len(elementos) < n:
linha = input().strip()
if linha == "":
continue
partes = linha.split()
elementos.extend(partes)
return [int(x) for x in elementos[:n]]
def vetores_iguais(v1, v2):
if len(v1) != len(v2):
return False
for i in range(len(v1)):
if v1[i] != v2[i]:
return False
return True
def main():
v1 = ler_vetor()
v2 = ler_vetor()
if vetores_iguais(v1, v2):
print("Iguais")
else:
print("Diferentes")
if __name__ == "__main__":
main()