Java :: Aufgabe #352 :: Lösung #1
2 Lösungen

#352
Turmspringen/Wasserspringen (Punktewertung)
Anfänger - Java
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ß
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ß
#1

von n1again (560 Punkte)
- 16.04.2021 um 18:01 Uhr

import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; /* #352 AUSGABENSTELLUNG: 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ß */ public class Turmspringen { public static void main(String[] args) { System.out.println("Wertung: "+valuation()); } public static float valuation() { //Schwierigkeitsgrad abfragen Scanner scanner = new Scanner(System.in); System.out.println("Geben Sie den Schwierigkeitsgrad ein: "); float difficulty = scanner.nextFloat(); //Neues Punkte-Array erzeugen float[] points = new float[7]; //Punkte-Array mit Bewertungen befüllen for(int i = 0; i < points.length; i++) { System.out.println("Geben Sie die "+(i+1)+". Bewertung ein (0 bis 10, mit Schritten von halben Punkten): "); points[i] = scanner.nextFloat(); } scanner.close(); //Punkte-Array sortieren Arrays.sort(points); //Punkte-Array zu einer ArrayList konvertieren ArrayList<Float> pointsList = new ArrayList<Float>(); for(int i = 0; i < points.length; i++) { pointsList.add(points[i]); } //ersten beiden und letzten beiden Bewertungen löschen pointsList.remove(0); pointsList.remove(0); pointsList.remove(pointsList.size()-1); pointsList.remove(pointsList.size()-1); //ArrayList wieder zu Array konvertieren float[] filteredArray = new float[pointsList.size()]; int index = 0; for(Float point : pointsList) { filteredArray[index++] = point; } //Summe aus Punkten bilden und mit Schwierigkeitsgrad multiplizieren float sum = 0; for(int i = 0; i < filteredArray.length; i++) { sum += filteredArray[i]; } float valuation = sum * difficulty; return valuation; } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1