Questão de Python
2 participantes
Página 1 de 1
Questão de Python
O Salto em distância é uma modalidade olímpica de atletismo, onde os atletas combinam velocidade, força e
agilidade para saltarem o mais longe possível a partir de um ponto pré-determinado. Existe desde os Jogos
Olímpicos da Antiguidade e, na Era Moderna, é disputado desde a primeira edição em Atenas 1896, para homens,
e desde Londres 1948, para mulheres. A maioria das competições disputadas é composta de seis saltos, sendo
que algumas delas, que tem marcas mais baixas, constam de apenas três saltos por atleta.
A Federação Sergipana de Atletismo decidiu promover um torneio de Salto em Distância onde cada atleta poderia
realizar três saltos. Para efeito de classificação será considerada a média aritmética dos dois melhores
saltos.
Considerando as informações acima, faça um programa em Python com os seguintes recursos:
a) Permitir a leitura da quantidade de atletas inscritos;
b) Permitir ao operador informar o nome do atleta e a distância obtida em cada um dos seus 3 saltos; (0,2)
c) Ao final da digitação, o programa deve imprimir (em ordem crescente da média aritmética dos dois
melhores saltos) a lista dos atletas inscritos, a distância de cada salto e a respectiva média do atleta; (0,6)
(Veja o exemplo a seguir)
d) A média da competição (considerando o critério de classificação, ou seja, a média dos dois melhores
saltos de cada atleta); (0,2)
e) Use uma função calcula_media(x,y,z) que retorna a média aritmética dos dois maiores valores de um
grupo de três. (1,0)
Exemplo: (foram informados valores inteiros para facilitar a conferência dos cálculos)
Competidores ordenados pela média dos melhores saltos:
Nome S1 S2 S3 Med
Pedro 2.0 5.0 3.0 4.0
Maria 4.0 3.0 5.0 4.5
Jose 5.0 6.0 8.0 7.0
Bruno 5.0 4.0 9.0 7.0
Saulo 9.0 6.0 8.0 8.5
Consegui fazer a letra A e B, porem não sei como fazer a C D e a E.
agilidade para saltarem o mais longe possível a partir de um ponto pré-determinado. Existe desde os Jogos
Olímpicos da Antiguidade e, na Era Moderna, é disputado desde a primeira edição em Atenas 1896, para homens,
e desde Londres 1948, para mulheres. A maioria das competições disputadas é composta de seis saltos, sendo
que algumas delas, que tem marcas mais baixas, constam de apenas três saltos por atleta.
A Federação Sergipana de Atletismo decidiu promover um torneio de Salto em Distância onde cada atleta poderia
realizar três saltos. Para efeito de classificação será considerada a média aritmética dos dois melhores
saltos.
Considerando as informações acima, faça um programa em Python com os seguintes recursos:
a) Permitir a leitura da quantidade de atletas inscritos;
b) Permitir ao operador informar o nome do atleta e a distância obtida em cada um dos seus 3 saltos; (0,2)
c) Ao final da digitação, o programa deve imprimir (em ordem crescente da média aritmética dos dois
melhores saltos) a lista dos atletas inscritos, a distância de cada salto e a respectiva média do atleta; (0,6)
(Veja o exemplo a seguir)
d) A média da competição (considerando o critério de classificação, ou seja, a média dos dois melhores
saltos de cada atleta); (0,2)
e) Use uma função calcula_media(x,y,z) que retorna a média aritmética dos dois maiores valores de um
grupo de três. (1,0)
Exemplo: (foram informados valores inteiros para facilitar a conferência dos cálculos)
Competidores ordenados pela média dos melhores saltos:
Nome S1 S2 S3 Med
Pedro 2.0 5.0 3.0 4.0
Maria 4.0 3.0 5.0 4.5
Jose 5.0 6.0 8.0 7.0
Bruno 5.0 4.0 9.0 7.0
Saulo 9.0 6.0 8.0 8.5
Consegui fazer a letra A e B, porem não sei como fazer a C D e a E.
AlvaroSTK- Iniciante
- Mensagens : 42
Data de inscrição : 25/02/2014
Idade : 25
Localização : S
Re: Questão de Python
Questão antiga.
Mas vi só hoje
Mas vi só hoje
- Código:
class Atleta(object):
def __init__(self, nome, dist_saltos):
self.nome = nome
self.dist_saltos = dist_saltos
def media_saltos(self):
return self.media(self.dist_saltos)
def media_dois_melhores_saltos(self):
dois_melhores = sorted(self.dist_saltos)[1:]
return self.media(dois_melhores)
def __str__(self):
saltos = '\t'.join(['{:.1f}'.format(dist) for dist in self.dist_saltos])
return '{}\t{}\t{:.1f}'.format(self.nome, saltos, self.media_dois_melhores_saltos())
def __repr__(self):
return 'Atleta {}'.format(self.nome)
def __eq__(self, atleta):
return self.media_dois_melhores_saltos() == atleta.media_dois_melhores_saltos()
def __lt__(self, atleta):
return self.media_dois_melhores_saltos() < atleta.media_dois_melhores_saltos()
@staticmethod
def media(lista):
return sum(lista)/len(lista)
def main():
n = int(input())
atletas = {}
for _ in range(n):
nome, *dist = input().split()
for i in range(len(dist)):
dist[i] = float(dist[i])
atletas[nome] = Atleta(nome, dist)
print('Nome\tS1\tS2\tS3\tMed')
for atleta in sorted(atletas.values()):
print('{}'.format(atleta))
if __name__ == '__main__':
main()
____________________________________________
"Nós somos o que fazemos repetidamente. Excelência, então, não é um modo de agir, é um hábito." Aristóteles
Baltuilhe- Fera
- Mensagens : 711
Data de inscrição : 23/12/2015
Idade : 47
Localização : Campo Grande, MS, Brasil
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|