Duvida exercicio (2) [RESOLVIDO]

1. Duvida exercicio (2) [RESOLVIDO]

thalis
himen3

(usa Arch Linux)

Enviado em 02/06/2018 - 16:47h

Em uma competição de salto em distância cada atleta tem direito a cinco saltos. No final da série de saltos de cada atleta, o melhor e o pior resultados são eliminados. O seu resultado fica sendo a média dos três valores restantes. Você deve fazer um programa que receba o nome e as cinco distâncias alcançadas pelo atleta em seus saltos e depois informe a média dos saltos conforme a descrição acima informada (retirar o melhor e o pior salto e depois calcular a média). Faça uso de uma lista para armazenar os saltos. Os saltos são informados na ordem da execução, portanto não são ordenados. O programa deve ser encerrado quando não for informado o nome do atleta. A saída do programa deve ser conforme o exemplo abaixo:
Atleta: Rodrigo Curvêllo

Primeiro Salto: 6.5 m
Segundo Salto: 6.1 m
Terceiro Salto: 6.2 m
Quarto Salto: 5.4 m
Quinto Salto: 5.3 m

Melhor salto: 6.5 m
Pior salto: 5.3 m
Média dos demais saltos: 5.9 m

Resultado final:
Rodrigo Curvêllo: 5.9 m

colocado = 'Primeiro','Segundo','Terceiro','Quarto','Quinto'
melhor_salto = pior_salto = contagem = media_saltos = total_saltos = media= 0
atleta = ' '
while atleta != '':
atleta = input("Atleta: ")
if atleta == '':
break
for c in range(0, 5):
salto = float(input(f"{colocado[c]} salto: "))
contagem += 1
media_saltos += 1
if salto > melhor_salto:
melhor_salto = salto
if salto < pior_salto or contagem == 1:
pior_salto = salto
total_saltos += salto
media = total_saltos / media_saltos

print("="*30)
print(f"Melhor salto: {melhor_salto}")
print(f"Pior salto: {pior_salto}")
print(f"Media dos demais saltos: {media:.2f}")
print("\n")
print("Resultado final: ")
print(f"{atleta}: {media:.2f}")


Minha duvida ai e que apos o usuario nao colocar o nome, nao mostra o nome no final, me parecia ser facil mudar, mas deu um branco, help!


  


2. MELHOR RESPOSTA

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 03/06/2018 - 11:29h

Segue o código com o laço de repetição:

# Lista com o nome de cada salto
texto_salto = ['Primeiro', 'Segundo', 'Terceiro', 'Quarto', 'Quinto']

while True:
# Lista com o valor dos saltos
saltos_do_atleta = [0.0, 0.0, 0.0, 0.0, 0.0]

# Outras variáveis
melhor_salto = pior_salto = media_saltos = 0

# Solicitado o nome do atleta
atleta = input("\nAtleta: ")

# Verificando se o nome do atleta foi digitado
if atleta != '':
for c in range(0, 5):
saltos_do_atleta[c] = float(input(f"{texto_salto[c]} salto: "))

# Ordenando a lista de saltos
saltos_do_atleta.sort()

# Melhor, Pior e Média
melhor_salto = max(saltos_do_atleta)
pior_salto = min(saltos_do_atleta)

# Excluindo o melhor e o pior salto da média
media_saltos = (saltos_do_atleta[1] + saltos_do_atleta[2] + saltos_do_atleta[3])/3

# Exibindo os resultados
print("="*30)
print(f"Melhor salto............: {melhor_salto}")
print(f"Pior salto..............: {pior_salto}")
print(f"Media dos demais saltos.: {media_saltos:.2f}\n")
print("Resultado final: ")
print(f"{atleta}: {media_saltos:.2f}")
else:
print('Informe o nome do atleta\n')

print('\nDeseja enviar os dados de outro atleta?\n1.Sim\n2.Não')
opcao = int(input('Opção: '))
if opcao == 2:
break


Abraço,
Diego M. Rodrigues

3. Re: Duvida exercicio (2) [RESOLVIDO]

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 02/06/2018 - 18:41h

Opa!

Você precisa armazenar os saltos em uma LISTA.

Segue a solução utilizando listas e funções de listas.

# Lista com o nome de cada salto
texto_salto = ['Primeiro', 'Segundo', 'Terceiro', 'Quarto', 'Quinto']

# Lista com o valor dos saltos
saltos_do_atleta = [0.0, 0.0, 0.0, 0.0, 0.0]

# Outras variáveis
melhor_salto = pior_salto = media_saltos = 0

# Solicitado o nome do atleta
atleta = input("Atleta: ")

# Verificando se o nome do atleta foi digitado
if atleta != '':
for c in range(0, 5):
saltos_do_atleta[c] = float(input(f"{texto_salto[c]} salto: "))

# Ordenando a lista de saltos
saltos_do_atleta.sort()

# Melhor, Pior e Média
melhor_salto = max(saltos_do_atleta)
pior_salto = min(saltos_do_atleta)
media_saltos = (saltos_do_atleta[1] + saltos_do_atleta[2] + saltos_do_atleta[3])/3

# Exibindo os resultados
print("="*30)
print(f"Melhor salto............: {melhor_salto}")
print(f"Pior salto..............: {pior_salto}")
print(f"Media dos demais saltos.: {media_saltos:.2f}\n")
print("Resultado final: ")
print(f"{atleta}: {media_saltos:.2f}")
else:
print('Informe o nome do atleta')


Abraço,
Diego M. Rodrigues


4. Re: Duvida exercicio (2)

thalis
himen3

(usa Arch Linux)

Enviado em 02/06/2018 - 19:25h

diegomrodrigues escreveu:

Opa!

Você precisa armazenar os saltos em uma LISTA.

Segue a solução utilizando listas e funções de listas.

# Lista com o nome de cada salto
texto_salto = ['Primeiro', 'Segundo', 'Terceiro', 'Quarto', 'Quinto']

# Lista com o valor dos saltos
saltos_do_atleta = [0.0, 0.0, 0.0, 0.0, 0.0]

# Outras variáveis
melhor_salto = pior_salto = media_saltos = 0

# Solicitado o nome do atleta
atleta = input("Atleta: ")

# Verificando se o nome do atleta foi digitado
if atleta != '':
for c in range(0, 5):
saltos_do_atleta[c] = float(input(f"{texto_salto[c]} salto: "))

# Ordenando a lista de saltos
saltos_do_atleta.sort()

# Melhor, Pior e Média
melhor_salto = max(saltos_do_atleta)
pior_salto = min(saltos_do_atleta)
media_saltos = (saltos_do_atleta[1] + saltos_do_atleta[2] + saltos_do_atleta[3])/3

# Exibindo os resultados
print("="*30)
print(f"Melhor salto............: {melhor_salto}")
print(f"Pior salto..............: {pior_salto}")
print(f"Media dos demais saltos.: {media_saltos:.2f}\n")
print("Resultado final: ")
print(f"{atleta}: {media_saltos:.2f}")
else:
print('Informe o nome do atleta')


Abraço,
Diego M. Rodrigues

Entao cara entendi oque foi dito, mas nao tem ciclo de repeticao. Minha duvida mesmo foi em fazer isso.



5. Re: Duvida exercicio (2) [RESOLVIDO]

thalis
himen3

(usa Arch Linux)

Enviado em 03/06/2018 - 11:51h

Valeu tinha feito parecido com isso mas nao coloquei outra opcao, me ensinou uma parada com listas que esta me ajudando muito na proxima fase dos exercicios, obrigado!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts