diff options
author | Sudipto Mallick <> | 2024-01-02 02:12:16 +0000 |
---|---|---|
committer | Sudipto Mallick <> | 2024-01-02 02:12:16 +0000 |
commit | a70e0a59817ce06a3dd23b3750ae16ee6660deaf (patch) | |
tree | 0843bf4d30edf22c9c4c27ff4887351c85993ccd /java/code/FindNumberInArray.java | |
parent | 63c589e826829c5f47f95a5642531e02b2b2c8f7 (diff) | |
download | zadania-a70e0a59817ce06a3dd23b3750ae16ee6660deaf.tar.gz |
Add Java assignments to the repository
.gitignore: The build files, files left by editors like *~ and the PDF documents for the assignments are to be ignored for the purposes of version control. README.rst: Rewrite, with one line description in Chinese. java/alist.txt: List of assignments, sorted in the order of the list of assignments, with the ones with completed documentation marked with `#`. java/buildall: Script that will build all of the assignments into one PDF file; to be rehauled for the final document. code/*.java: The Java source code for the assignments. dbld: Script that builds a PDF document for a single assignment. index.typ: The list of assignments, subject to update for further refinement and inclusion of yet more assignments. jbld: Script that compiles code for a single Java assignment. output/*.typ: Typst file containing the output (sessions) obtained from running the individual Java assignments. state.sql: Future alternative to `alist.txt`, under development. template.typ: The Typst template used across all of assignment, containing common code for the uniform styling, such as page border. text/*.typ: Typst file documenting each Java assignment. vendor/Java.sublime-syntax: Updated Sublime Text syntax file for Java, used for newer syntax features, such as `var`, not yet available in syntaxes shipped with Typst. vendor/gr.tmTheme: A grayscale TextMate theme to be used for code in the documents generated by Typst suitable for black and white printing. wltd: Difference between the files in `code/` and `text/`, and `code/` and `output`; need to be rewritten along with `state.sql`.
Diffstat (limited to 'java/code/FindNumberInArray.java')
-rw-r--r-- | java/code/FindNumberInArray.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/java/code/FindNumberInArray.java b/java/code/FindNumberInArray.java new file mode 100644 index 0000000..2bf7f1a --- /dev/null +++ b/java/code/FindNumberInArray.java @@ -0,0 +1,72 @@ +import java.util.Scanner; +import java.util.InputMismatchException; + +class Number { + private double value; + Number(double n) { + value = n; + } + double valueOf() { + return value; + } + @Override + public boolean equals(Object o) { + if (o instanceof Number) { + return value == ((Number)o).valueOf(); + } + return false; + } +} + +class NumberArray { + Number[] array; + NumberArray(double arr[]) { + array = new Number[arr.length]; + for (int i = 0; i < arr.length; i++) { + array[i] = new Number(arr[i]); + } + } + int find(Number n) { + for (int i = 0; i < array.length; i++) { + if (array[i].equals(n)) { + return i; + } + } + return -1; + } + void display() { + System.out.print("An array of numbers with " + array.length + " elements:"); + for (int i = 0; i < array.length; i++) { + System.out.print(" " + array[i].valueOf()); + } + System.out.println(); + } +} + +class FindNumberInArray { + public static void main(String args[]) { + try { + var sc = new Scanner(System.in); + System.out.print("Enter length: "); + var length = sc.nextInt(); + var arr = new double[length]; + System.out.print("Enter array elements: "); + for (int i = 0; i < length; i++) { + arr[i] = sc.nextDouble(); + } + var narr = new NumberArray(arr); + System.out.print("Given: "); + narr.display(); + System.out.print("Enter element to find in array: "); + var num = new Number(sc.nextDouble()); + var pos = narr.find(num); + if (pos == -1) { + System.out.println("Could not find the number " + num.valueOf() + " in the array."); + return; + } + System.out.println("The number " + num.valueOf() + " was found in the array at position " + (pos + 1) + "."); + } catch (InputMismatchException e) { + System.err.println("Invalid number given as input"); + } + } +} |