Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nith.stream.lession_array;
- import java.util.Arrays;
- import java.util.InputMismatchException;
- import java.util.Scanner;
- /*
- * Denne klassen tar input fra brukeren 5 ganger, sorterer etter hvilkent tall som er det største
- * Og skriver dette deretter ut.
- *
- * Her kan dere også se et godt eksempel på forskjelden mellom Arrays og ikke Arrays i kodesammenheng.
- *
- * @author Arne Christian Blystad
- */
- public class UserInputSorting {
- public static void main(String[] argv) {
- // Først uten bruk av arrays
- System.out
- .println("Du må skrive inn 5 tall nå etterpå. Du klarer det håper jeg.");
- mainNoArrays();
- // Så med bruk av arrays
- System.out
- .println("Du må skrive inn 5 tall nå etterpå. Du klarer det håper jeg.");
- mainWithArrays();
- }
- /**
- * Først uten bruk av arrays. Les denne koden og fortell meg hva dere
- * tenker.
- */
- private static void mainNoArrays() {
- // Vi vil ha 5 tall, alright.
- int tall1, tall2, tall3, tall4, tall5;
- Scanner console = new Scanner(System.in);
- // Hent alle de forskjellige tallene.
- tall1 = getInteger(console);
- tall2 = getInteger(console);
- tall3 = getInteger(console);
- tall4 = getInteger(console);
- tall5 = getInteger(console);
- /*
- * For å gjøre det lett, så ønsker vi kun å hente det lavest, høyeste og
- * gjennomsnittet. Skulle jeg listet opp alle tallene, så måtte vi ha
- * 5^5 if/else statements...da blir jeg sittende her en stund.
- */
- int max = 0;
- int min = Integer.MAX_VALUE;
- int avg = 0;
- if (tall1 > max) max = tall1;
- if (tall1 < min) min = tall1;
- if (tall2 > max) max = tall2;
- if (tall2 < min) min = tall2;
- if (tall3 > max) max = tall3;
- if (tall3 < min) min = tall3;
- if (tall4 > max) max = tall4;
- if (tall4 < min) min = tall4;
- if (tall5 > max) max = tall5;
- if (tall5 < min) min = tall5;
- avg = (tall1 + tall2 + tall3 + tall4 + tall5) / 5;
- // Phouf....endelig ferdig....Da var det å skrive det hele ut.
- System.out.println("Det høyeste tallet var " + max
- + " og det laveste var " + min
- + " og gjennomsnittet...det var " + avg);
- /**
- *
- * My thoughts? For et jævla rot... -10DKP
- *
- */
- }
- /**
- * Her har vi da et eksempel MED arrays istede, så dere kan se forskjelden.
- */
- private static void mainWithArrays() {
- // Arrays fungerer ved at vi definerer størrelsen på arrayen. Vi KAN
- // predefinere innholdet, men mer om dette under streamen.
- int[] tall = new int[5];
- Scanner console = new Scanner(System.in);
- // Og dette var hele koden som var nødvendig for å spør brukeren 5
- // ganger.
- for (int i = 0; i < tall.length; i++)
- tall[i] = getInteger(console);
- // Også sorteringa...Her har vi mye mer options.
- // Men vi gjør det samme som i det forrige programmet.
- int min = Integer.MAX_VALUE, max = 0, avg = 0, sum = 0;
- for (int i = 0; i < tall.length; i++) {
- if (tall[i] > max) max = tall[i];
- if (tall[i] < min) min = tall[i];
- sum += tall[i];
- }
- avg = sum / tall.length;
- System.out.println("Det høyeste tallet var " + max
- + " og det laveste var " + min
- + " og gjennomsnittet...det var " + avg);
- // Men vent...her kan vi gjøre mer!
- // FIXME: Warning! Dette er ting vi ikke har lært enda, og det kan hende
- // at man spesifikt på eksamen, får i oppgave å IKKE bruke dette. Så er
- // dere advart :)
- Arrays.sort(tall);
- System.out.println("Sortert array: " + Arrays.toString(tall));
- }
- private static int getInteger(Scanner input) {
- int output = 0;
- boolean outputCorrect = false;
- while (!outputCorrect)
- try {
- System.out.print("Skriv inn ett tall: ");
- output = input.nextInt();
- outputCorrect = true;
- } catch (InputMismatchException e) {
- input.next();
- System.out.println("Du må skrive inn et tall. Prøv igjen.");
- }
- return output;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment