Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.01 KB | None | 0 0
  1. public class Main {
  2.  
  3.     public static void show(int value) {
  4.         System.out.println("Podana wartosc: " + value);
  5.     }
  6.  
  7.     public static void modifyValue(int value) {
  8.         System.out.println("Dostarczona zmienna: " + value);
  9.         value = value * 5;
  10.         System.out.println("Zmienna zmodyfikowana: " + value);
  11.     }
  12.  
  13.     public static void charCount(char[] array) {
  14.         char sign = 'A';
  15.         for (int i = 0; i < 52; i++) {
  16.             if (i == 26)
  17.                 sign = 'a';
  18.             int count = 0;
  19.             for (int j = 0; j < array.length; j++) {
  20.                 if (array[j] == sign)
  21.                     count++;
  22.             }
  23.             if (count > 0)
  24.                 System.out.print(sign + " : " + count + "  ");
  25.             sign++;
  26.         }
  27.         System.out.println();
  28.     }
  29.  
  30.     public static void fillRandom(int[] array) {
  31.         for (int i = 0; i < array.length; i++) {
  32.             array[i] = (int) (Math.random() * 100);
  33.         }
  34.     }
  35.  
  36.     public static int[] arrayStatement(int[] array1, int[] array2, int argument) {
  37.         if (array1.length == array2.length) {
  38.             int[] emptyArray = new int[1];
  39.             return emptyArray;
  40.         } else if (argument < 0) {
  41.             int[] arraysSum;
  42.             if (array1.length > array2.length)
  43.                 arraysSum = new int[array2.length];
  44.             else
  45.                 arraysSum = new int[array1.length];
  46.             for (int i = 0; i < arraysSum.length; i++) {
  47.                 arraysSum[i] = array1[i] + array2[i];
  48.             }
  49.             return arraysSum;
  50.         } else {
  51.             int[] arrayNoCouple;
  52.             if (array1.length > array2.length) {
  53.                 int index = array2.length;
  54.                 arrayNoCouple = new int[array1.length - array2.length];
  55.                 for (int i = 0; i < arrayNoCouple.length; i++) {
  56.                     arrayNoCouple[i] = array1[index++];
  57.                 }
  58.             } else {
  59.                 int index = array1.length;
  60.                 arrayNoCouple = new int[array2.length - array1.length];
  61.                 for (int i = 0; i < arrayNoCouple.length; i++) {
  62.                     arrayNoCouple[i] = array2[index++];
  63.                 }
  64.             }
  65.             return arrayNoCouple;
  66.         }
  67.     }
  68.  
  69.     public static boolean palindrom(char[] array, int valueZero, int arrayLengthWithoutOne) {
  70.         while (valueZero < arrayLengthWithoutOne) {
  71.             if (array[valueZero++] == array[arrayLengthWithoutOne--]) {
  72.                 palindrom(array, valueZero, arrayLengthWithoutOne);
  73.             } else
  74.                 return false;
  75.         }
  76.         return true;
  77.     }
  78.  
  79.     public static boolean oneUpReducedArea(int[][] array) {
  80.         boolean oneUp = false;
  81.         boolean statementBreak = false;
  82.         for (int i = 0, l = 1; i < array.length - 1; i++, l++) {
  83.             for (int j = 0; j < array[i].length - l; j++) {
  84.                 if (i == array.length - 2 && j == 0 && array[i][j] == 1) {
  85.                     oneUp = true;
  86.                 } else if (array[i][j] == 0) {
  87.                     statementBreak = true;
  88.                 }
  89.                 if (statementBreak) break;
  90.             }
  91.             if (statementBreak) break;
  92.         }
  93.         if (!oneUp) {
  94.             statementBreak = false;
  95.             for (int i = 0, l = 1; i < array.length - 1; i++, l++) {
  96.                 for (int j = l; j < array[i].length; j++) {
  97.                     if (i == array.length - 2 && j == array[i].length - 1 && array[i][j] == 1) {
  98.                         oneUp = true;
  99.                     } else if (array[i][j] == 0) {
  100.                         statementBreak = true;
  101.                     }
  102.                     if (statementBreak) break;
  103.                 }
  104.                 if (statementBreak) break;
  105.             }
  106.         }
  107.  
  108.         return oneUp;
  109.     }
  110.  
  111.     public static boolean zeroDownReducedArea(int[][] array) {
  112.         boolean zeroDown = false;
  113.         boolean statementBreak = false;
  114.         for (int i = array.length - 1, l = 0; i > 0; i--, l++) {
  115.             for (int j = array[i].length - 1; j > l; j--) {
  116.                 if (i == 1 && j == array[i].length - 1 && array[i][j] == 0) {
  117.                     zeroDown = true;
  118.                 } else if (array[i][j] == 1) {
  119.                     statementBreak = true;
  120.                 }
  121.                 if (statementBreak) break;
  122.             }
  123.             if (statementBreak) break;
  124.         }
  125.         if (!zeroDown) {
  126.             statementBreak = false;
  127.             for (int i = 1, l = 1; i < array.length; i++, l++) {
  128.                 for (int j = 0; j <= l; j++) {
  129.                     if (i == array.length - 1 && j == array[i].length - 1 && array[i][j] == 0) {
  130.                         zeroDown = true;
  131.                     } else if (array[i][j] == 1) {
  132.                         statementBreak = true;
  133.                     }
  134.                     if (statementBreak) break;
  135.                 }
  136.                 if (statementBreak) break;
  137.             }
  138.         }
  139.         return zeroDown;
  140.     }
  141.  
  142.     public static void oneUpZeroDownArea(int[][] array, int columns, int rows) {
  143.         boolean onlyOne = false;
  144.         if (columns >= 2 && rows >= 2) {
  145.             int[][] reducedArray = new int[columns][rows];
  146.             boolean oneUp = false, zeroDown = false;
  147.             for (int i = 0; i <= array.length - columns; i++) {
  148.                 for (int j = 0; j <= array[i].length - columns; j++) {
  149.                     for (int k = i, a = 0; k < i + columns; k++, a++) {
  150.                         for (int l = j, b = 0; l < j + columns; l++, b++) {
  151.                             reducedArray[a][b] = array[k][l];
  152.                         }
  153.                     }
  154.                     oneUp = oneUpReducedArea(reducedArray);
  155.                     zeroDown = zeroDownReducedArea(reducedArray);
  156.                     if (oneUp && zeroDown) {
  157.                         System.out.println("Początek pierwszego największego pasującego obszaru. Wielkosc: " + columns + "X" + rows + " kolumna: " + i + " wiersz: " + j + " (liczone od 0)");
  158.                         display(reducedArray);
  159.                         onlyOne = true;
  160.                     }
  161.                     if (onlyOne) break;
  162.                 }
  163.                 if (onlyOne) break;
  164.             }
  165.             if (!oneUp || !zeroDown) {
  166.                 columns -= 2;
  167.                 rows -= 2;
  168.                 oneUpZeroDownArea(array, columns, rows);
  169.             }
  170.         }
  171.     }
  172.  
  173.     public static void display(int[][] array) {
  174.         for (int i = 0; i < array.length; i++) {
  175.             for (int j = 0; j < array[i].length; j++) {
  176.                 System.out.print(array[i][j] + " ");
  177.             }
  178.             System.out.println();
  179.         }
  180.     }
  181.  
  182.     public static void fillRow(int[][] array, int row, int val) {
  183.         for (int i = 0; i < array[row].length; i++) {
  184.             array[row][i] = val;
  185.         }
  186.     }
  187.  
  188.     public static void fillCol(int[][] array, int col, int val) {
  189.         for (int i = 0; i < array.length; i++) {
  190.             array[i][col] = val;
  191.         }
  192.     }
  193.  
  194.     public static void fillRowInRange(int[][] array, int row, int from, int to, int val) {
  195.         for (int i = from; i <= to; i++) {
  196.             array[row][i] = val;
  197.         }
  198.     }
  199.  
  200.     public static void fillColInRange(int[][] array, int col, int from, int to, int val) {
  201.         for (int i = from; i <= to; i++) {
  202.             array[i][col] = val;
  203.         }
  204.     }
  205.  
  206.  
  207.     public static void main(String[] args) {
  208.  
  209. /*        //ZADANIE1
  210.         int value1 = 1;
  211.         show(value1);
  212.  
  213.         //ZADANIE2
  214.         int wrt = 5;
  215.         System.out.println(wrt);
  216.         modifyValue(wrt);
  217.         System.out.println(wrt);
  218.  
  219.         //ZADANIE3
  220.         char[] inscription = {'A','l','a','m','a','k','o','t','a'};
  221.         charCount(inscription);
  222.  
  223.         //ZADANIE4
  224.         int[] array1 = new int[10];
  225.         int[] array2 = new int[15];
  226.         fillRandom(array1);
  227.         fillRandom(array2);
  228.         int[] myArray = arrayStatement(array1,array2,1);
  229.         for (int i = 0; i < myArray.length; i++) {
  230.             System.out.print(myArray[i] + " ");
  231.         }
  232.         System.out.println();
  233.  
  234.         //ZADANIE5
  235.         char[] palindrom = {'k','a','j','a','k'};
  236.         int valueZero = 0;
  237.         int arrayLe = palindrom.length-1;
  238.         boolean palindromY = palindrom(palindrom, valueZero , arrayLe);
  239.         System.out.println(palindromY);*/
  240.  
  241.         //ZADANIE6
  242.         int[][] intArray = new int[25][25];
  243.         for (int i = 0; i < intArray.length; i++) {
  244.             for (int j = 0; j < intArray[i].length; j++) {
  245.                 intArray[i][j] = (int) (Math.random() * 2);
  246.             }
  247.         }
  248.         display(intArray);
  249.         System.out.println();
  250.         oneUpZeroDownArea(intArray, intArray.length, intArray.length);
  251.  
  252.        //ZADANIE7
  253.         int[][] spiral = new int[15][15];
  254.         for (int i = 0, j = spiral.length - 1; i < spiral.length; i++, j--) {
  255.             if (i == 0) {
  256.                 fillCol(spiral, 0, 1);
  257.                 fillCol(spiral, spiral[i].length - 1, 1);
  258.                 fillRow(spiral, j, 1);
  259.                 fillRowInRange(spiral, i, i + 2, spiral[i].length - 1, 1);
  260.             }
  261.             if (i % 2 == 0 && i != 0 && i < spiral.length / 2) {
  262.                 fillColInRange(spiral, i, i - 2, j, 1);
  263.                 fillRowInRange(spiral, i, i + 2, j, 1);
  264.             }
  265.             if (spiral.length % 2 == 0) {
  266.                 if (j % 2 != 0 && j != spiral.length - 1 && j > (spiral.length / 2) - 2) {
  267.                     fillRowInRange(spiral, j, i + 1, j, 1);
  268.                     fillColInRange(spiral, j, i + 1, j, 1);
  269.                 }
  270.             }
  271.             else if (spiral.length % 2 != 0) {
  272.                 if (j % 2 != 0 && j != spiral.length - 1 && j > (spiral.length / 2) - 2) {
  273.                     fillRowInRange(spiral, j-1, i + 1, j-1, 1);
  274.                     fillColInRange(spiral, j-1, i + 1, j-1, 1);
  275.                 }
  276.             }
  277.         }
  278.  
  279.         display(spiral);
  280.  
  281.     }
  282. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement