Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package uebung06;
- import static pr.MakeItSimple.println;
- import static pr.MakeItSimple.readInt;
- import java.util.Random;
- import pr.MakeItSimple.PRException;
- public class SearchInRandomNumbers {
- public static void main(String[] args) {
- println("Wie viele zufallszahlen von (1-1000) sollen generiert werden?");
- int numberCount = readInt();
- int[] randomNumbers = generate(numberCount);
- println("Zahl zum Suchen zwischen (1-1000) eingeben.");
- int numberToSearch = readInt();
- int[] numbersFound = searchAll(randomNumbers, numberToSearch);
- if (numbersFound.length == 0) {
- println("es wurde keine Stelle mit der Zahl " + numberToSearch + " gefunden.");
- } else
- {
- for (int position : numbersFound) {
- println("Die Zahl " + numberToSearch + " wurde gefunden an Stelle " + position);
- }
- println("Die Zahl " + numberToSearch + " wurde insgesamt " + numbersFound.length + "x gefunden.");
- println("Die Zahl " + numberToSearch + " wurde als letztes an der Stelle "
- + searchLast(randomNumbers, numberToSearch) + " gefunden.");
- }
- }
- public static int[] generate(int numberCount) {
- Random r = new Random();
- int[] randomNumbers = new int[numberCount];
- if (numberCount <= 0) {
- throw new PRException("Bitte eine Zahl größer als 0 eingeben.");
- }
- for (int i = 0; i < randomNumbers.length; i++) {
- randomNumbers[i] = 1 + r.nextInt(1000);
- }
- return randomNumbers;
- }
- public static int[] searchAll(int[] randomNumbers, int numberToSearch) {
- int[] foundNumbers;
- int arrayLength = 0;
- boolean[] foundPosition = new boolean[randomNumbers.length];
- for (int i = 0; i < randomNumbers.length; i++) {
- if (numberToSearch == randomNumbers[i]) {
- foundPosition[i] = true;
- arrayLength++;
- }
- }
- if (arrayLength == 0) {
- foundNumbers = new int[0];
- return foundNumbers;
- } else {
- foundNumbers = new int[arrayLength];
- for (int i = 0, p = 0; i < foundPosition.length; i++) {
- if (foundPosition[i]) {
- foundNumbers[p] = i;
- p++;
- }
- }
- }
- return foundNumbers;
- }
- public static int searchLast(int[] randomNumbers, int numberToSearch) {
- int lastNumber;
- int[] foundNumbers = searchAll(randomNumbers, numberToSearch);
- if (foundNumbers.length == 0) {
- throw new PRException("Bitte eine Zahl größer als 0 eingeben.");
- } else {
- lastNumber = foundNumbers[foundNumbers.length - 1];
- }
- return lastNumber;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement