Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package metody;
- import java.util.*;
- import java.io.*;
- public class metody {
- public void PoleZklavesnice() {
- int sirka = 0;
- int vyska = 0;
- int x = 1;
- System.out.println("Zadejte pocet sloupcu pole:");
- while (x > 0) {
- try {
- Scanner s = new Scanner(System.in);
- sirka = s.nextInt();
- if (sirka < 1) {
- throw new java.lang.NegativeArraySizeException();
- }
- x = 0;
- } catch (NegativeArraySizeException e) {
- System.out.println("Neplatna velikost. Zadejte cislo vetsi jak 0");
- } catch (Exception e) {
- System.out.println("Pouze cisla");
- System.out.println("Zadejte sirku pole:");
- }
- }
- x = 1;
- System.out.println("Zadejte pocet radku pole:");
- while (x > 0) {
- try {
- Scanner s = new Scanner(System.in);
- vyska = s.nextInt();
- if (vyska < 1) {
- throw new java.lang.NegativeArraySizeException();
- }
- x = 0;
- } catch (NegativeArraySizeException e) {
- System.out.println("Neplatna velikost. Zadejte cislo vetsi jak 0");
- } catch (Exception e) {
- System.out.println("Pouze cisla");
- System.out.println("Zadejte sirku pole:");
- }
- }
- int pole[][] = new int[sirka + 1][vyska + 1];
- x = -1;
- System.out.println("zadejte prvky pole:");
- System.out.println("");
- /******************************************************************************
- * *
- * Nacitani cisel do pole: *
- * *
- ******************************************************************************/
- for (int i = 1; i <= sirka; i++) {
- for (int j = 1; j <= vyska; j++) {
- do {
- try {
- System.out.println("Zadejte hodnotu pro " + i + " radek a " + j + " sloupec:");
- Scanner s = new Scanner(System.in);
- pole[i][j] = s.nextInt();
- if (pole[i][j] < 0) {
- throw new java.lang.NegativeArraySizeException();
- }
- x++;
- } catch (NegativeArraySizeException e) {
- System.out.println("Zadejte pouze kladna cisla vcetne nuly");
- if (j == vyska + 1) {
- if (j < 1 && i < j) {
- j--;
- i--;
- } else if (j < 1 && i == 1) {
- j--;
- i = 0;
- } else if (j == 1 && i < 1) {
- j--;
- i--;
- } else if (j == 1 && i == 1) {
- j = 0;
- i = 1;
- }
- } else {
- j--;
- }
- } catch (Exception e) {
- System.out.println("Pouze cisla");
- if (j == vyska + 1) {
- if (j < 1 && i < j) {
- j--;
- i--;
- } else if (j < 1 && i == 1) {
- j--;
- i = 0;
- } else if (j == 1 && i < 1) {
- j--;
- i--;
- } else if (j == 1 && i == 1) {
- j = 0;
- i = 1;
- }
- } else {
- j--;
- }
- }
- } while (x == (sirka * vyska));
- }
- }
- /******************************************************************************
- * Pole nacteno *
- * Zacina uprava *
- ******************************************************************************/
- int mezipole1[] = new int[(sirka * vyska) + 1];
- int mezipole2[] = new int[(sirka * vyska) + 1];
- int z = 0;
- for (int i = 1; i <= sirka; i++) {
- for (int j = 1; j <= vyska; j++) {
- mezipole1[z] = pole[i][j];
- z++;
- }
- }
- Arrays.sort(mezipole1);
- z = 1;
- for (int i = (sirka * vyska); i > 0; i--) {
- mezipole2[i] = mezipole1[z];
- z++;
- }
- /******************************************************************************
- * Pole upraveno a serazeno *
- * mezipole1: nejmensi -> nejvetsi *
- * mezipole2: nejvetsi -> nejmensi *
- ******************************************************************************/
- int vysledek_1d[] = new int[(sirka * vyska) + 1];
- int vysledek_2d[][] = new int[sirka + 1][vyska + 1];
- z = 1;
- for (int i = 1; i < (sirka * vyska) + 1; i++) {
- vysledek_1d[i] = mezipole1[z];
- i++;
- z++;
- }
- z = 1;
- for (int i = 2; i < (sirka * vyska) + 1; i++) {
- vysledek_1d[i] = mezipole2[z];
- i++;
- z++;
- }
- z = 1;
- for (int i = 1; i <= sirka; i++) {
- for (int j = 1; j <= vyska; j++) {
- vysledek_2d[i][j] = vysledek_1d[z];
- z++;
- }
- }
- /******************************************************************************
- * *
- * Zpusob Vypisu: *
- * *
- ******************************************************************************/
- System.out.println("*************************************************");
- System.out.println("* Zvol zpusob vypisu pole: *");
- System.out.println("* *");
- System.out.println("* 1) do konzole *");
- System.out.println("* 2) do souboru *");
- System.out.println("*************************************************");
- String cesta = "";
- int swtch1_a = 1;
- int swtch1 = 0;
- while (swtch1_a > 0) {
- try {
- Scanner s = new Scanner(System.in);
- swtch1 = s.nextInt();
- } catch (Exception e) {
- System.out.println("Pouze cisla");
- }
- switch (swtch1) {
- case 1:
- swtch1_a = 0;
- System.out.println("");
- for (int i = 1; i <= sirka; i++) {
- for (int j = 1; j <= vyska; j++) {
- System.out.print(" " + vysledek_2d[i][j]);
- }
- System.out.println("");
- }
- break;
- case 2:
- swtch1_a = 0;
- x = 1;
- System.out.println("Zadejte cestu k ulozeni vystupu:");
- while (x > 0) {
- try {
- Scanner s = new Scanner(System.in);
- if (s.hasNextInt()) {
- throw new java.util.InputMismatchException();
- } else {
- cesta = s.next();
- }
- x = 0;
- } catch (InputMismatchException e) {
- System.out.println("Spatne zadana cesta");
- System.out.println("Zadejte cestu k ulozeni vystupu:");
- } catch (Exception e) {
- System.out.println(e);
- }
- }
- if (!new File(cesta).exists()) {
- System.out.println("slozka " + cesta + " neexistuje");
- System.exit(0);
- }
- try {
- BufferedWriter out = new BufferedWriter(new FileWriter(cesta + "/vystup.txt"));
- for (int i = 1; i <= sirka; i++) {
- for (int j = 1; j <= vyska; j++) {
- out.write(" " + vysledek_2d[i][j]);
- }
- out.newLine();
- }
- out.write("");
- out.close();
- } catch (IOException e) {
- }
- System.out.println("Soubor vystup.txt byl vytvoren v " + cesta);
- break;
- default:
- System.out.println("Zadali jste jinou hodnotu nez 1 nebo 2");
- }
- }
- }
- public void PoleZEsouboru() {
- int sirka = 0;
- int vyska = 0;
- int x = 1;
- System.out.println("Zadejte pocet sloupcu pole:");
- while (x > 0) {
- try {
- Scanner s = new Scanner(System.in);
- sirka = s.nextInt();
- if (sirka < 1) {
- throw new java.lang.NegativeArraySizeException();
- }
- x = 0;
- } catch (NegativeArraySizeException e) {
- System.out.println("Neplatna velikost. Zadejte cislo vetsi jak 0");
- } catch (Exception e) {
- System.out.println("Pouze cisla");
- System.out.println("Zadejte pocet sloupcu pole:");
- }
- }
- x = 1;
- System.out.println("Zadejte pocet radku pole:");
- while (x > 0) {
- try {
- Scanner s = new Scanner(System.in);
- vyska = s.nextInt();
- if (vyska < 1) {
- throw new java.lang.NegativeArraySizeException();
- }
- x = 0;
- } catch (NegativeArraySizeException e) {
- System.out.println("Neplatna velikost. Zadejte cislo vetsi jak 0");
- } catch (Exception e) {
- System.out.println("Pouze cisla");
- System.out.println("Zadejte pocet radku pole:");
- }
- }
- int pole[][] = new int[sirka + 1][vyska + 1];
- /******************************************************************************
- * *
- * Nacitani souboru: *
- * *
- ******************************************************************************/
- String cesta = "";
- System.out.println("");
- System.out.println("Zadejte cestu k souboru vstup.txt:");
- x = 1;
- while (x > 0) {
- try {
- Scanner s = new Scanner(System.in);
- if (s.hasNextInt()) {
- throw new java.util.InputMismatchException();
- } else {
- cesta = s.next();
- x = 0;
- }
- } catch (InputMismatchException e) {
- System.out.println("Spatne zadana cesta");
- System.out.println("Zadejte cestu k souboru vstup.txt:");
- } catch (Exception e) {
- System.out.println(e);
- }
- }
- if (!new File(cesta).exists()) {
- System.out.println("slozka " + cesta + " neexistuje");
- System.exit(0);
- }
- int[] show = new int[(sirka * vyska) + 1];
- try {
- Scanner sc = new Scanner(new File(cesta + "/vstup.txt"));
- int i = 1;
- while (sc.hasNext()) {
- if (sc.hasNextInt()) {
- show[i] = sc.nextInt();
- if (show[i] < 0) {
- System.out.println("V souboru musi byt cisla vesti nebo rovna 0");
- System.exit(0);
- }
- i++;
- }
- }
- sc.close();
- } catch (FileNotFoundException e) {
- System.out.println("Soubor " + cesta + "/vstup.txt nebyl nalezen.");
- System.exit(0);
- } catch (ArrayIndexOutOfBoundsException e) {
- System.out.println("");
- } catch (InputMismatchException e) {
- System.out.println(e);
- } catch (Exception e) {
- System.out.println(e);
- }
- x = 1;
- for (int i = 1; i <= sirka; i++) {
- for (int j = 1; j <= vyska; j++) {
- pole[i][j] = show[x];
- x++;
- }
- }
- /******************************************************************************
- * Pole nacteno *
- * Zacina uprava *
- ******************************************************************************/
- int mezipole1[] = new int[(sirka * vyska) + 1];
- int mezipole2[] = new int[(sirka * vyska) + 1];
- int z = 0;
- for (int i = 1; i <= sirka; i++) {
- for (int j = 1; j <= vyska; j++) {
- mezipole1[z] = pole[i][j];
- z++;
- }
- }
- Arrays.sort(mezipole1);
- z = 1;
- for (int i = (sirka * vyska); i > 0; i--) {
- mezipole2[i] = mezipole1[z];
- z++;
- }
- /******************************************************************************
- * Pole upraveno a serazeno *
- * mezipole1: nejmensi -> nejvetsi *
- * mezipole2: nejvetsi -> nejmensi *
- ******************************************************************************/
- int vysledek_1d[] = new int[(sirka * vyska) + 1];
- int vysledek_2d[][] = new int[sirka + 1][vyska + 1];
- z = 1;
- for (int i = 1; i < (sirka * vyska) + 1; i++) {
- vysledek_1d[i] = mezipole1[z];
- i++;
- z++;
- }
- z = 1;
- for (int i = 2; i < (sirka * vyska) + 1; i++) {
- vysledek_1d[i] = mezipole2[z];
- i++;
- z++;
- }
- z = 1;
- for (int i = 1; i <= sirka; i++) {
- for (int j = 1; j <= vyska; j++) {
- vysledek_2d[i][j] = vysledek_1d[z];
- z++;
- }
- }
- /******************************************************************************
- * *
- * Zpusob Vypisu: *
- * *
- ******************************************************************************/
- System.out.println("*************************************************");
- System.out.println("* Zvol zpusob vypisu pole: *");
- System.out.println("* *");
- System.out.println("* 1) do konzole *");
- System.out.println("* 2) do souboru *");
- System.out.println("*************************************************");
- int swtch1_a = 1;
- int swtch1 = 0;
- while (swtch1_a > 0) {
- try {
- Scanner s = new Scanner(System.in);
- swtch1 = s.nextInt();
- } catch (Exception e) {
- System.out.println("Pouze cisla");
- }
- switch (swtch1) {
- case 1:
- swtch1_a = 0;
- System.out.println("");
- for (int i = 1; i <= sirka; i++) {
- for (int j = 1; j <= vyska; j++) {
- System.out.print(" " + vysledek_2d[i][j]);
- }
- System.out.println("");
- }
- break;
- case 2:
- swtch1_a = 0;
- x = 1;
- System.out.println("Zadejte cestu k ulozeni vystupu:");
- while (x > 0) {
- try {
- Scanner s = new Scanner(System.in);
- if (s.hasNextInt()) {
- throw new java.util.InputMismatchException();
- } else {
- cesta = s.next();
- }
- x = 0;
- } catch (InputMismatchException e) {
- System.out.println("Spatne zadana cesta");
- System.out.println("Zadejte cestu k ulozeni vystupu:");
- } catch (Exception e) {
- System.out.println(e);
- }
- }
- if (!new File(cesta).exists()) {
- System.out.println("slozka " + cesta + " neexistuje");
- System.exit(0);
- }
- try {
- BufferedWriter out = new BufferedWriter(new FileWriter(cesta + "/vystup.txt"));
- for (int i = 1; i <= sirka; i++) {
- for (int j = 1; j <= vyska; j++) {
- out.write(" " + vysledek_2d[i][j]);
- }
- out.newLine();
- }
- out.write("");
- out.close();
- } catch (IOException e) {
- }
- System.out.println("Soubor vystup.txt byl vytvoren v " + cesta);
- break;
- default:
- System.out.println("Zadali jste jinou hodnotu nez 1 nebo 2");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement