[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/biblelamp/JavaExercises/master/Java%201/HW2Lesson.java [Back]  [Original]

/**
 * Java. Level 1. Lesson 2. Example of homework
 *
 * @author Sergey Iryupin
 * @version dated Sep 17, 2018
 */
import java.util.Arrays;
import java.util.Scanner;

class HW2Lesson {

    public static void main(String[] args) {

        // simple tasks (1..4)
        invertArray();
        System.out.println(Arrays.toString(fillArray()));
        System.out.println(Arrays.toString(
            changeArray(new int[]{1, 5, 3, 2, 11, 4, 5, 2, 4, 8, 9, 1})));
        fillDiagonal(5);

        // tasks of increased complexity (5..7)
        // find min and max (5)
        System.out.println(Arrays.toString(
            findMinMax(new int[]{1, 5, 3, 2, 11, 4, 5, 2, 4, 8, 9, 1})));

        // check balance (6)
        int[][] test = {{1, 1, 1, 2, 1}, {2, 1, 1, 2, 1}, {10, 10}};
        for (int i = 0; i < test.length; i++)
            System.out.println(
                Arrays.toString(test[i]) + " " + checkBalance(test[i]));

        // shift array (7)
        System.out.println(Arrays.toString(
            shiftArray(new int[]{1, 2, 3, 4, 5}, 2)));
        System.out.println(Arrays.toString(
            shiftArray(new int[]{1, 2, 3, 4, 5}, -3)));

        // console calculator (extra)
        calcConsole();
    }

    /**
     * 1.   ,   0  1.
     *    : [1, 1, 0, 0, 1, 0, 1, 1, 0, 0].   
     *       0  1, 1  0
     */
    static void invertArray() {
        // init array directly
        int[] array = {1, 1, 0, 0, 1, 0, 1, 1, 0, 0};
        // init array using random()
        //int[] array = new int[10];
        //for (int i = 0; i < array.length; i++)
        //    array[i] = (int)(Math.random() + 0.5);
        System.out.println(Arrays.toString(array));

        // invert
        for (int i = 0; i < array.length; i++)
            array[i] = 1 - array[i];
            //array[i] = array[i] ^ 1;
            //array[i] = (array[i] == 1)? 0 : 1;
        System.out.println(Arrays.toString(array));
    }

    /**
     * 2.      8.
     *          0 3 6 9 12 15 18 21
     */
    static int[] fillArray() {
        int[] array = new int[8];
        for (int i = 0, j = 0; i < array.length; i++, j += 3)
            array[i] = j;
        return array;
    }

    /**
     * 3.   [1, 5, 3, 2, 11, 4, 5, 2, 4, 8, 9, 1]   
     *   ,    6   2
     */
    static int[] changeArray(int[] array) {
        for (int i = 0; i < array.length; i++)
            if (array[i] < 6)
                array[i] *= 2;
        return array;
    }

    /**
     * 4.      (
     *       ),    (-) 
     *       
     */
    static void fillDiagonal(int size) {
        int[][] matrix = new int[size][size];
        for (int i = 0; i < size; i++) {
            matrix[i][i] = 1;
            matrix[i][size - i - 1] = 1;
        }
        System.out.println(Arrays.deepToString(matrix));
        for (int i = 0; i < size; i++)
            System.out.println(Arrays.toString(matrix[i]));
    }

    /**
     * 5. **        
     *      
     */
    static int[] findMinMax(int[] array) {
        int[] minmax = new int[2];
        minmax[0] = minmax[1] = array[0];
        for (int i = 1; i < array.length; i++) {
            if (minmax[0] > array[i])
                minmax[0] = array[i];
            if (minmax[1] < array[i])
                minmax[1] = array[i];
        }
        return minmax;
    }

    /**
     * 6. **  ,      
     *     ,    true    
     *     ,         .
     *    : 
     *      checkBalance([1, 1, 1, || 2, 1])   true
     *      checkBalance([2, 1, 1, 2, 1])  false
     *      checkBalance([10, || 10])  true
     *       ||,      
     */
    static boolean checkBalance(int[] array) {
        if (array == null || array.length < 2)
            return false;
        int sumArray = 0, sumLeft = 0;
        for (int i : array)
            sumArray += i;
        if ((sumArray == 0) && (sumArray % 2 != 0)) // by DSerov
            return false;
        for (int i = 0; i < array.length - 1; i++) {
            sumLeft += array[i];
            if (sumLeft*2 == sumArray)
                return true;
        }
        return false;
    }

    /**
     * 7. ****  ,      
     *      n (  ,  ),  
     *           n .
     *          
     */
    static int[] shiftArray(int[] array, int shift) {
        if (array == null || array.length < 2
            || shift == 0 || shift % array.length == 0)
            return array;
        shift = shift % array.length; // optimization of the number of shifts
        if (shift < 0)
            shift += array.length; // by Gusar Mikhail
        for (int cnt = 0; cnt < shift; cnt++) {
            int tmp = array[array.length - 1];
            for (int i = array.length - 1; i > 0; i--)
                array[i] = array[i - 1];
            array[0] = tmp;
        }
        return array;
    }

    /**
     * 8. *****    
     */
    static void calcConsole() {

       Scanner read = new Scanner(System.in);
       System.out.println("Enter separated by space: Integer [+|-|*|/] Integer");

       int first = read.nextInt();
       String operator = read.next();
       int second = read.nextInt();

       switch(operator) {
           case "+":
               System.out.println("= " + (first + second));
               break;
           case "-":
               System.out.println("= " + (first - second));
               break;
           case "*":
               System.out.println("= " + (first * second));
               break;
           case "/":
               if (second != 0)
                   System.out.println("= " + (first / second));
               else
                   System.out.println("Error: Division by zero");
               break;
          default:
               System.out.println("Error: Undefined operation");
       }
   }
}

Web Proxy Viewer  |  New URL  |  Original Page