Advertisement
LisunovaMaryna

java lab2_1

Oct 22nd, 2023
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.71 KB | None | 0 0
  1. import java.util.Scanner;
  2. public class Main {
  3.     public static void main(String[]args) {
  4.         int i;
  5.         int j;
  6.         int k;
  7.         int lengthArr;
  8.         int[] arr;
  9.         double nearestNum;
  10.         double setValue;
  11.         int buffer;
  12.         boolean isInCorrect;
  13.         k = 0;
  14.         lengthArr = 0;
  15.         nearestNum = 0;
  16.         setValue = 0;
  17.         Scanner scan = new Scanner(System.in);
  18.         System.out.print("The program finds the number of the nearest member of the sequence to a given number.\n");
  19.         System.out.print("Enter length of subsequence: ");
  20.         do {
  21.             isInCorrect = false;
  22.             try {
  23.                 lengthArr = Integer.parseInt(scan.next());
  24.             }
  25.             catch (NumberFormatException e) {
  26.                 System.err.print("Symbols have been entered or exceeding permissible limits. Enter a valid value: ");
  27.                 isInCorrect = true;
  28.             }
  29.             if ((!isInCorrect) && (lengthArr < 2)) {
  30.                 System.err.print("A number less than two was entered. Enter a valid value: ");
  31.                 isInCorrect = true;
  32.             }
  33.         } while (isInCorrect);
  34.         arr = new int[lengthArr];
  35.         System.out.print("Enter elements of subsequence: ");
  36.         for (i = 0; i < arr.length; i++) {
  37.             do
  38.             {
  39.                 isInCorrect = false;
  40.                 try {
  41.                     arr[i] = Integer.parseInt(scan.next());
  42.                 }
  43.                 catch (NumberFormatException e) {
  44.                     System.err.print("Symbols have been entered. Enter the number: ");
  45.                     isInCorrect = true;
  46.                 }
  47.                 if ((!isInCorrect) && (arr[i] < -2000000000) && (arr[i] > 2000000000)) {
  48.                     System.err.print("Exceeding permissible limits. Enter a valid value: ");
  49.                     isInCorrect = true;
  50.                 }
  51.             } while (isInCorrect);
  52.         }
  53.  
  54.  
  55.         for (i = 0; i < lengthArr - 1; i++) {
  56.             for (j = i + 1; j < lengthArr; j++) {
  57.                 if (arr[i] > arr[j]) {
  58.                     buffer = arr[i];
  59.                     arr[i] = arr[j];
  60.                     arr[j] = buffer;
  61.                 }
  62.             }
  63.         }
  64.  
  65.         for (i = 0; i < arr.length; i++) {
  66.             System.out.print(arr[i] + " ");
  67.         }
  68.  
  69.         System.out.print("\nEnter real value: ");
  70.         do
  71.         {
  72.             isInCorrect = false;
  73.             try {
  74.                 setValue = Double.parseDouble(scan.next());
  75.             }
  76.             catch (NumberFormatException e) {
  77.                 System.err.print("Symbols have been entered. Enter the number: ");
  78.                 isInCorrect = true;
  79.             }
  80.             if ((!isInCorrect) && ((setValue < -2000000000) || (setValue > 2000000000))) {
  81.                 System.err.print("Exceeding permissible limits. Enter a valid value: ");
  82.                 isInCorrect = true;
  83.             }
  84.         } while (isInCorrect);
  85.         scan.close();
  86.  
  87.         if (setValue < arr[0]) {
  88.             System.out.print("The entered value is less than the smallest term of the sequence.");
  89.         }
  90.         else {
  91.             nearestNum = arr[0];
  92.             i = 0;
  93.             while (setValue > arr[i]) {
  94.                 k = i;
  95.                 i++;
  96.             }
  97.             nearestNum = arr[k];
  98.         }
  99.  
  100.         do {
  101.             isInCorrect = false;
  102.             if (nearestNum < arr[k + 1]) {
  103.                 k++;
  104.                 System.out.print("The nearest element of the sequence numbered " + k);
  105.             }
  106.             else {
  107.                 isInCorrect = true;
  108.                 k++;
  109.             }
  110.         } while (isInCorrect);
  111.  
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement