Назад Зміст Вперед

Лабораторна робота:«Виконати циклічний зсув матриці на k1 позицій вправо та на k2 догори»

Завдання: Виконати циклічний зсув матриці на k1 позицій вправо та на k2 догори
k1- № варіанту, k2- № варіанту + 2.


Приклад коду_1.public class Pr5 {
//зсув матриці вправо на n позицій
public static void main(String[] args) {
int[] a = new int[]{1,2,3,4,5};
   int n = 2; 
   int[] b = new int[a.length];
   for (int i = a.length-1; i >= 0; i--) {
       if(i+n >= a.length){
           b[i+n-a.length] = a[i];
       }
       else{
           b[i+n] = a[i];
       }
   }
   for (int i : b) {
       System.out.print(i+" ");
   }
}

}
Приклад коду_2.
package pr6;
import java.util.Arrays;
public class Pr6 {
public static int[] shiftArr(int[] inArr,int shift)
    {
        if ((inArr == null)|| (inArr.length == 0 ) || (shift<=0)) { throw new java.lang.IllegalArgumentException(); }
        while(shift>0)
        {
            int lastVar = inArr[inArr.length-1];
            for(int counter = 0;counter<inArr.length;counter++)
            {
                int curVal = inArr[counter];
                inArr[counter] = lastVar;
                lastVar = curVal; 
            }
            shift--;
        }
        return inArr;
    }
    public static void main(String[] args)
    {
        int[] testArr = {1,2,3,4,5};
        testArr = shiftArr(testArr,2);
        
        for(int i=0; i< testArr.length; i++ )
        {
            System.out.print(testArr[i]+" ");
        }
    }
 }
Приклад коду_3.
public class Sdvig {
 
    public static void main(String... args) {
         int[] mass = new int[] { 1, 2, 3, 4, 5 };
         for (int i : mass) {
            System.out.print(i + " ");
        }
         System.out.println();
      new Sdvig().reverse(mass, 2);
         for (int i : mass) {
            System.out.print(i + " ");
        }
     }

    public int[] reverse(int[] input, int sdvig) {
        if (sdvig > input.length || sdvig < 1) {
            System.out.println("Неправильне число зсуву");
            return input;
        }
        int[] output = new int[input.length];
        int j = 0;
        for (int i : input) {
            output[j++] = i;
        }
        int tmp = sdvig;
         for (int i = 0; i < output.length; i++) {
            if (sdvig > 0) {
                input[i] = output[output.length - sdvig];
                sdvig--;
            } else {
                input[i] = output[i - tmp];
            }
        }
        return input;
    }
}
.