Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com;
- import javax.swing.plaf.synth.SynthOptionPaneUI;
- import java.util.Scanner;
- public class Race
- {
- public static void main(String[] args)
- {
- Scanner scanner = new Scanner(System.in);
- System.out.println("Въведете участници в състезанието, минимум 1 !");
- int racers = checkInputIsPositiveDigit(scanner);
- double[] race = new double[racers];
- int racer;
- double result = 0;
- int counter = racers;
- while (counter > 0) {
- do {
- System.out.println("Въведете желаният участник от 1 до " + racers);
- racer = checkInputIsPositiveDigit(scanner);
- }
- while (racer > racers);
- String input;
- do {
- System.out.println("Въведете резултата на състезател " + racer);
- input = scanner.nextLine();
- boolean isDigit = true;
- for (int i = 0; i < input.length(); i++) {
- if (Character.isLetter(input.charAt(i))) {
- System.out.println("Въвели сте неоторизирана стойност, опитайте пак.");
- isDigit = false;
- break;
- }
- }
- if (isDigit) {
- result = Double.parseDouble(input);
- }
- }
- while (result <= 0);
- race[racer - 1] = result;
- System.out.println("Въведохте резултат " + result + " на състезател " + racer);
- // може да се проверява дали вече няма въведена стойност и ако има да пита дали иска да я заменя или да е забранено
- counter--;
- }
- System.out.println("Резултати от проведено състезание : ");
- //ако има два състезатели с равен резултат .. ;)
- double min = Double.MAX_VALUE;
- int minId = 0;
- double max = Double.MIN_VALUE;
- int maxId = 0;
- double sum = 0;
- for (int i = 0; i < race.length; i++) {
- sum += race[i];
- if (race[i] < min) {
- min = race[i];
- minId = i;
- }
- if (race[i] > max) {
- max = race[i];
- maxId = i;
- }
- if (race[i] == 0) {
- System.out.printf("Състезател %d e с контузия и служебно получава 0.%n ", i + 1);
- }
- else {
- System.out.printf("Състезател %d с резултат %.2f%n", i + 1, race[i]);
- }
- }
- double avg = sum / race.length;
- System.out.printf("Най-бърз състезател е %d с резултат : %.2f.%n", maxId + 1, race[maxId]);
- System.out.printf("Най-бавен състезател е %d с резултат : %.2f.%n", minId + 1, race[minId]);
- System.out.printf("Средно аритметичното време е %.2f.%n ", avg);
- double sumOfSquare = 0;
- for (int i = 0; i < race.length; i++) {
- sumOfSquare += Math.pow((race[i] - avg), 2);
- }
- double diversion = stdDev(racers,sumOfSquare);
- System.out.printf("Стандартното отклонение е : %.2f.%n", diversion);
- }
- static int checkInputIsPositiveDigit(Scanner scanner)
- {
- String input;
- int number;
- do {
- while (!scanner.hasNextInt()) {
- System.out.println("Въвели сте неоторизирана стойност, опитайте пак.");
- scanner.nextLine();
- }
- input = scanner.nextLine();
- number = Integer.parseInt(input);
- if (number <= 0) {
- System.out.println("Въвели сте неоторизирана стойност, опитайте пак.");
- }
- }
- while (number <= 0);
- return number;
- }
- static double stdDev(int racers, double... values)
- {
- int sum = 0;
- for (int i = 0; i < values.length; i++) {
- sum += values[i];
- }
- return Math.sqrt(sum / (racers));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement