Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. package uebung06;
  2.  
  3. import static pr.MakeItSimple.println;
  4. import static pr.MakeItSimple.readInt;
  5.  
  6. import java.util.Random;
  7.  
  8. import pr.MakeItSimple.PRException;
  9.  
  10. public class SearchInRandomNumbers {
  11. public static void main(String[] args) {
  12.  
  13. println("Wie viele zufallszahlen von (1-1000) sollen generiert werden?");
  14. int numberCount = readInt();
  15. int[] randomNumbers = generate(numberCount);
  16.  
  17. println("Zahl zum Suchen zwischen (1-1000) eingeben.");
  18. int numberToSearch = readInt();
  19. int[] numbersFound = searchAll(randomNumbers, numberToSearch);
  20.  
  21. if (numbersFound.length == 0) {
  22. println("es wurde keine Stelle mit der Zahl " + numberToSearch + " gefunden.");
  23. } else
  24.  
  25. {
  26. for (int position : numbersFound) {
  27. println("Die Zahl " + numberToSearch + " wurde gefunden an Stelle " + position);
  28.  
  29. }
  30. println("Die Zahl " + numberToSearch + " wurde insgesamt " + numbersFound.length + "x gefunden.");
  31. println("Die Zahl " + numberToSearch + " wurde als letztes an der Stelle "
  32. + searchLast(randomNumbers, numberToSearch) + " gefunden.");
  33.  
  34. }
  35.  
  36. }
  37.  
  38. public static int[] generate(int numberCount) {
  39. Random r = new Random();
  40. int[] randomNumbers = new int[numberCount];
  41.  
  42. if (numberCount <= 0) {
  43. throw new PRException("Bitte eine Zahl größer als 0 eingeben.");
  44. }
  45.  
  46. for (int i = 0; i < randomNumbers.length; i++) {
  47. randomNumbers[i] = 1 + r.nextInt(1000);
  48. }
  49. return randomNumbers;
  50.  
  51. }
  52.  
  53. public static int[] searchAll(int[] randomNumbers, int numberToSearch) {
  54. int[] foundNumbers;
  55. int arrayLength = 0;
  56. boolean[] foundPosition = new boolean[randomNumbers.length];
  57.  
  58. for (int i = 0; i < randomNumbers.length; i++) {
  59. if (numberToSearch == randomNumbers[i]) {
  60.  
  61. foundPosition[i] = true;
  62. arrayLength++;
  63. }
  64.  
  65. }
  66.  
  67. if (arrayLength == 0) {
  68. foundNumbers = new int[0];
  69.  
  70. return foundNumbers;
  71. } else {
  72. foundNumbers = new int[arrayLength];
  73.  
  74. for (int i = 0, p = 0; i < foundPosition.length; i++) {
  75. if (foundPosition[i]) {
  76. foundNumbers[p] = i;
  77. p++;
  78. }
  79.  
  80. }
  81. }
  82.  
  83. return foundNumbers;
  84. }
  85.  
  86. public static int searchLast(int[] randomNumbers, int numberToSearch) {
  87. int lastNumber;
  88.  
  89. int[] foundNumbers = searchAll(randomNumbers, numberToSearch);
  90.  
  91. if (foundNumbers.length == 0) {
  92. throw new PRException("Bitte eine Zahl größer als 0 eingeben.");
  93. } else {
  94. lastNumber = foundNumbers[foundNumbers.length - 1];
  95. }
  96.  
  97. return lastNumber;
  98.  
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement