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

2 Lösungen Lösungen öffentlich
#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ß
#1
vote_ok
von n1again (560 Punkte) - 16.04.2021 um 18:01 Uhr
Quellcode ausblenden Java-Code
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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben