diff --git a/.DS_Store b/.DS_Store index 27875fa6e082..f28585d78e4c 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/CountChar.java b/CountChar.java new file mode 100644 index 000000000000..dfdc0684d201 --- /dev/null +++ b/CountChar.java @@ -0,0 +1,42 @@ +import java.util.Scanner; + + +/** + * @author Kyler Smith, 2017 + * + * Implementation of a character count. + * (Slow, could be improved upon, effectively O(n). + * */ + +public class CountChar { + + public static void main(String[] args) { + Scanner input = new Scanner(System.in); + System.out.print("Enter your text: "); + String str = input.nextLine(); + + System.out.println("There are " + CountCharacters(str) + " characters."); + } + + + + /** + * @param str: String to count the characters + * + * @return int: Number of characters in the passed string + * */ + + public static int CountCharacters(String str) { + + int count = 0; + + if(str.isEmpty() || str == null) + return -1; + + for(int i = 0; i < str.length(); i++) + if(!Character.isWhitespace(str.charAt(i))) + count++; + + return count; + } +} diff --git a/data_structures/Matrix/Matrix.java b/data_structures/Matrix/Matrix.java new file mode 100644 index 000000000000..652a4e83b791 --- /dev/null +++ b/data_structures/Matrix/Matrix.java @@ -0,0 +1,197 @@ +/** +* Matrix data-type. +* +* @author Kyler Smith, 2017 +*/ + + +public class Matrix { + + public static void main(String[] args) { + + int[][] data1 = new int[0][0]; + int[][] data2 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + int[][] data3 = {{1, 4, 7}, {2, 5, 8}, {3, 6, 9}}; + + Matrix m1 = new Matrix(data1); + Matrix m2 = new Matrix(data2); + Matrix m3 = new Matrix(data3); + + System.out.println("m1 --> Rows: " + m1.getRows() + " Columns: " + m1.getColumns()); + System.out.println("m2 --> Rows: " + m2.getRows() + " Columns: " + m2.getColumns()); + System.out.println("m3 --> Rows: " + m3.getRows() + " Columns: " + m3.getColumns()); + + //check for reference issues + System.out.println("m2 -->\n" + m2); + data2[1][1] = 101; + System.out.println("m2 -->\n" + m2); + + //test equals + System.out.println("m2==null: " + m2.equals(null)); //false + System.out.println("m3==\"MATRIX\": " + m2.equals("MATRIX")); //false + System.out.println("m2==m1: " + m2.equals(m1)); //false + System.out.println("m2==m2: " + m2.equals(m2)); //true + System.out.println("m2==m3: " + m2.equals(m3)); //false + + //test operations (valid) + System.out.println("2 * m2:\n" + m2.scale(2)); + System.out.println("m2 + m3:\n" + m2.plus(m3)); + System.out.println("m2 - m3:\n" + m2.minus(m3)); + } + + + /** + * Data needs to be a deep copy as not to change the original state. + */ + private int[][] data; + + /** + * Constructor for the matrix takes in a 2D array + * + * @param pData + */ + public Matrix(int[][] pData) { + + /** Make a deep copy of the data */ + if(pData.length != 0) { + int[][] newData = new int[pData.length][pData[0].length]; + + for(int i = 0; i < pData.length; i++) + for(int j = 0; j < pData[0].length; j++) + newData[i][j] = pData[i][j]; + + this.data = newData; + } else { + this.data = null; + } + } + + /** + * Returns the element specified by the given location + * + * @param x : x cooridinate + * @param y : y cooridinate + * @return int : value at location + */ + public int getElement(int x, int y) { + return data[x][y]; + } + + /** + * Returns the number of rows in the Matrix + * + * @return rows + */ + public int getRows() { + if(this.data == null) + return 0; + + return data.length; + } + + /** + * Returns the number of rows in the Matrix + * + * @return columns + */ + public int getColumns() { + if(this.data == null) + return 0; + return data[0].length; + } + + /** + * Returns this matrix scaled by a factor. That is, computes sA where s is a + * constant and A is a matrix (this object). + * + * @param scalar : value to scale by + * @return A new matrix scaled by the scalar value + */ + public Matrix scale(int scalar) { + + int[][] newData = new int[this.data.length][this.data[0].length]; + + for (int i = 0; i < this.getRows(); ++i) + for(int j = 0; j < this.getColumns(); ++j) + newData[i][j] = this.data[i][j] * scalar; + + return new Matrix(newData); + } + + /** + * Adds this matrix to another matrix. + * + * @param other : Matrix to be added + * @return addend + */ + public Matrix plus(Matrix other) throws RuntimeException { + + int[][] newData = new int[this.data.length][this.data[0].length]; + + if(this.getRows() != other.getRows() || this.getColumns() != other.getColumns()) + throw new RuntimeException("Not the same size matrix."); + + for (int i = 0; i < this.getRows(); ++i) + for(int j = 0; j < this.getColumns(); ++j) + newData[i][j] = this.data[i][j] + other.getElement(i, j); + + return new Matrix(newData); + } + + /** + * Subtracts this matrix from another matrix. + * + * @param other : Matrix to be subtracted + * @return difference + */ + public Matrix minus(Matrix other) throws RuntimeException { + + int[][] newData = new int[this.data.length][this.data[0].length]; + + if(this.getRows() != other.getRows() || this.getColumns() != other.getColumns()) + throw new RuntimeException("Not the same size matrix."); + + for (int i = 0; i < this.getRows(); ++i) + for(int j = 0; j < this.getColumns(); ++j) + newData[i][j] = this.data[i][j] - other.getElement(i, j); + + return new Matrix(newData); + } + + /** + * Checks if the matrix passed is equal to this matrix + * + * @param other : the other matrix + * @return boolean + */ + public boolean equals(Matrix other) { + return this == other; + } + + /** + * Returns the Matrix as a String in the following format + * + * [ a b c ] ... + * [ x y z ] ... + * [ i j k ] ... + * ... + * + * @return Matrix as String + * TODO: Work formatting for different digit sizes + */ + public String toString() { + String str = ""; + + for(int i = 0; i < this.data.length; i++) { + str += "[ "; + for(int j = 0; j < this.data[0].length; j++) { + str += data[i][j]; + str += " "; + } + str += "]"; + str += "\n"; + } + + return str; + } +} diff --git a/ft.java b/ft.java index 843f4a559bde..815dbd292ec7 100644 --- a/ft.java +++ b/ft.java @@ -1,19 +1,17 @@ import java.util.Scanner; - class FloydTriangle - { - public static void main(String[] args) - { -Scanner sc = new Scanner(System.in); -System.out.println("Enter the number of rows which you want in your Floyd Triangle: "); -int r = sc.nextInt(); -int n=0; -for(int i=0; i<r; i++) -{ -for(int j=0; j<=i; j++) -{ -System.out.print(++n+" "); + + +class FloydTriangle { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("Enter the number of rows which you want in your Floyd Triangle: "); + int r = sc.nextInt(), n = 0; + + for(int i=0; i < r; i++) { + for(int j=0; j <= i; j++) { + System.out.print(++n + " "); + } + System.out.println(); + } + } } -System.out.println(); -} -} -} \ No newline at end of file pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy