Python :: Aufgabe #338

3 Lösungen Lösungen öffentlich

Turmspringen/Wasserspringen (Punktewertung)

Anfänger - Python von JKooP - 02.04.2021 um 09:28 Uhr
Bei internationalen Wettkämpfen bewerten in Einzelwettbewerben sieben Wettkampfrichter die Sprünge.
Jeder vergibt pro Sprung 0 bis 10 Punkte, mit Schritten von halben Punkten.
Die zwei höchsten und niedrigsten Wertungen werden gestrichen.
Die verbleibenden drei Wertungen werden addiert und das Ergebnis mit dem Schwierigkeitsgrad multipliziert.
Das Endresultat entspricht der erzielten Punktzahl des Springers.

Beispiel 1:
Schwierigkeitsgrad: 2,1
Punkte: 7,5 | 7,5 | 7,0 | 8,0 | 8,0 | 7,5 | 8,5
Gestrichen: 7,5 | 7,5 | 7,0 | 8,0 | 8,0 | 7,5 | 8,5
Wertung: 7,5 + 7,5 + 8,0 = 23 * 2,1 = 48,3

Beispiel 2:
Schwierigkeitsgrad: 1,6
Punkte: 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5
Gestrichen: 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5 | 7,5
Wertung: 7,5 + 7,5 + 7,5 = 22,5 * 1,6 = 36

Erstelle eine Methode/Funktion, mit der die obige Aufgabenstellung gelöst werden kann.

Viel Spaß

Lösungen:

vote_ok
von bdoc137 (260 Punkte) - 05.04.2021 um 15:06 Uhr
Quellcode ausblenden Python-Code

import random

a=float(input('Schwierigkeitsgrad auswählen: '))

wertung=[]

for i in range(1,8):
    
    wertung.append((round(random.uniform(0,10)*2)/2))
 
wertung=sorted(wertung)

del wertung[0:2]   
del wertung[-1:-3:-1]      
print(wertung)
print('%2.2f' % (sum(wertung)*a))

vote_ok
von eisheiliger (3750 Punkte) - 05.04.2021 um 18:05 Uhr
Quellcode ausblenden Python-Code

"""
#338: Turmspringen/Wasserspringen (Punktewertung)
Die zwei höchsten und niedrigsten Wertungen werden gestrichen. Die verbleibenden drei Wertungen
werden addiert und das Ergebnis mit dem Schwierigkeitsgrad multipliziert.
"""


def punktewert(punkte, diff):
    punkte = sorted(punkte)
    summe = 0
    wert = []

    for i in range(2, len(punkte) - 2):
        summe += punkte[i]
        wert.append(punkte[i])

    print("gewertet  ", wert)
    print("gestrichen", [punkte[0], punkte[1], punkte[len(punkte) - 2], punkte[len(punkte) - 1]])
    print("Wertung   ", "%0.1f" % round((summe * diff), 1), "\n")


def main():
    punktewert([7.5, 7.5, 7.0, 8.0, 8.0, 7.5, 8.5], 2.1)
    punktewert([7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5], 1.6)


if __name__ == '__main__':
    main()


vote_ok
von AlexGroeg (2010 Punkte) - 06.04.2021 um 13:25 Uhr
Quellcode ausblenden Python-Code

grad = 2.1
punkte = [7.5, 7.5, 7.0, 8.0, 8.0, 7.5, 8.5]

def wertung(punkte,grad):
    for i in range(2):
        punkte.pop(punkte.index(min(punkte)))
        punkte.pop(punkte.index(max(punkte)))
    
    return sum(punkte) *grad

print('Das Enresultat ist {:.1f} Punkte.'.format(wertung(punkte,grad)))

1809770

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.