Escreva um programa que leia números inteiros no intervalo [0,50] e os armazene em um vetor com 10 posições. Preencha um segundo vetor apenas com os números ímpares do primeiro vetor. Imprima os dois vetores, 2 elementos por linha. programa em Python
Soluções para a tarefa
O programa abaixo (também anexado) conta com uma validação simples dos dados enviados pelo usuário para que seja garantido o envio de números no intervalo solicitado pelo usuário.
Para mostrar os vetores no formato especificado no texto, utilizamos uma função, já que essa rotina é utilizada duas vezes, uma para o vetor original e outra para o vetor de números impares formado a partir do primeiro vetor.
Obs.: Os pontos que precedem algumas linhas de programação não fazem parte do programa, foram colocados apenas para garantir a indentação do código aqui no site.
[Python 3.8]
def mostra_vetor(lst):
.....cont = 0
.....while True:
..........try:
...............print(lst[cont], end=' ')
...............cont += 1
...............if cont%2 == 0:
....................print()
..........except:
...............break
lst_int = list()
lst_impares = list()
print('Envie 10 números inteiros no intervalo fechado [0,50]')
for i in range(10):
.....while True:
..........try:
...............num = int(input(f'Digite o {i+1}° número: '))
...............if 0 <= num <= 50:
....................lst_int.append(num)
....................break
...............else:
....................print('Entrada inválida! O número deve estar no intervalo [0,50]')
....................continue
..........except:
...............print('Entrada inválida! Digite um número inteiro no intervalo [0,50]')
for numero in lst_int:
.....if numero%2 != 0:
..........lst_impares.append(numero)
print('\nPrimeiro vetor:')
mostra_vetor(lst_int)
print('\nSegundo vetor vetor:')
mostra_vetor(lst_impares)
Começamos a função inicializando um contador "cont" com valor 0 e um laço while "infinito".
Dentro deste laço, "tentamos" (try) imprimir o elemento de índice "cont" e permanecemos na mesma linha com um espaço simples (end=' ').
Tentamos imprimir o primeiro elemento lst[0].
O elemento é imprimido junto a um espaço simples ("1 ")
cont = 1
cont é impar, então passamos para próxima iteração do laço.
Tentamos imprimir o segundo elemento lst[1]
O elemento é imprimido junto a um espaço simples ("2 ")
cont = 2
cont é par, trocamos a linha.
O elemento é imprimido junto a um espaço simples ("3 ")
cont = 3
cont é impar, então passamos para próxima iteração do laço.
Tentamos imprimir o primeiro elemento lst[3].
Este elemento não existe (acabou o vetor), saímos do loop.
Caso fique alguma dúvida, por favor, deixe msg e, assim que possível, respondo.