Advertisement
horato

top java code ever

Sep 15th, 2015
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 19.46 KB | None | 0 0
  1. package metody;
  2.  
  3. import java.util.*;
  4. import java.io.*;
  5.  
  6. public class metody {
  7.  
  8.     public void PoleZklavesnice() {
  9.         int sirka = 0;
  10.         int vyska = 0;
  11.         int x = 1;
  12.  
  13.  
  14.         System.out.println("Zadejte pocet sloupcu pole:");
  15.         while (x > 0) {
  16.             try {
  17.                 Scanner s = new Scanner(System.in);
  18.                 sirka = s.nextInt();
  19.                 if (sirka < 1) {
  20.                     throw new java.lang.NegativeArraySizeException();
  21.                 }
  22.                 x = 0;
  23.  
  24.             } catch (NegativeArraySizeException e) {
  25.                 System.out.println("Neplatna velikost. Zadejte cislo vetsi jak 0");
  26.             } catch (Exception e) {
  27.                 System.out.println("Pouze cisla");
  28.                 System.out.println("Zadejte sirku pole:");
  29.             }
  30.  
  31.         }
  32.  
  33.         x = 1;
  34.         System.out.println("Zadejte pocet radku pole:");
  35.         while (x > 0) {
  36.             try {
  37.                 Scanner s = new Scanner(System.in);
  38.                 vyska = s.nextInt();
  39.                 if (vyska < 1) {
  40.                     throw new java.lang.NegativeArraySizeException();
  41.                 }
  42.                 x = 0;
  43.  
  44.             } catch (NegativeArraySizeException e) {
  45.                 System.out.println("Neplatna velikost. Zadejte cislo vetsi jak 0");
  46.             } catch (Exception e) {
  47.                 System.out.println("Pouze cisla");
  48.                 System.out.println("Zadejte sirku pole:");
  49.             }
  50.  
  51.         }
  52.  
  53.         int pole[][] = new int[sirka + 1][vyska + 1];
  54.  
  55.         x = -1;
  56.         System.out.println("zadejte prvky pole:");
  57.         System.out.println("");
  58.         /******************************************************************************
  59.          *                                                                            *
  60.          *                             Nacitani cisel do pole:                        *
  61.          *                                                                            *
  62.          ******************************************************************************/
  63.         for (int i = 1; i <= sirka; i++) {
  64.             for (int j = 1; j <= vyska; j++) {
  65.                 do {
  66.                     try {
  67.                         System.out.println("Zadejte hodnotu pro " + i + " radek a " + j + " sloupec:");
  68.                         Scanner s = new Scanner(System.in);
  69.                         pole[i][j] = s.nextInt();
  70.  
  71.                         if (pole[i][j] < 0) {
  72.                             throw new java.lang.NegativeArraySizeException();
  73.                         }
  74.  
  75.                         x++;
  76.  
  77.                     } catch (NegativeArraySizeException e) {
  78.                         System.out.println("Zadejte pouze kladna cisla vcetne nuly");
  79.                         if (j == vyska + 1) {
  80.                             if (j < 1 && i < j) {
  81.                                 j--;
  82.                                 i--;
  83.                             } else if (j < 1 && i == 1) {
  84.                                 j--;
  85.                                 i = 0;
  86.                             } else if (j == 1 && i < 1) {
  87.                                 j--;
  88.                                 i--;
  89.                             } else if (j == 1 && i == 1) {
  90.                                 j = 0;
  91.                                 i = 1;
  92.                             }
  93.                         } else {
  94.                             j--;
  95.                         }
  96.                     } catch (Exception e) {
  97.                         System.out.println("Pouze cisla");
  98.                         if (j == vyska + 1) {
  99.                             if (j < 1 && i < j) {
  100.                                 j--;
  101.                                 i--;
  102.                             } else if (j < 1 && i == 1) {
  103.                                 j--;
  104.                                 i = 0;
  105.                             } else if (j == 1 && i < 1) {
  106.                                 j--;
  107.                                 i--;
  108.                             } else if (j == 1 && i == 1) {
  109.                                 j = 0;
  110.                                 i = 1;
  111.                             }
  112.                         } else {
  113.                             j--;
  114.                         }
  115.                     }
  116.  
  117.                 } while (x == (sirka * vyska));
  118.             }
  119.         }
  120.  
  121.         /******************************************************************************
  122.          *                            Pole nacteno                                    *
  123.          *                            Zacina uprava                                   *
  124.          ******************************************************************************/
  125.         int mezipole1[] = new int[(sirka * vyska) + 1];
  126.         int mezipole2[] = new int[(sirka * vyska) + 1];
  127.         int z = 0;
  128.  
  129.  
  130.         for (int i = 1; i <= sirka; i++) {
  131.             for (int j = 1; j <= vyska; j++) {
  132.                 mezipole1[z] = pole[i][j];
  133.                 z++;
  134.             }
  135.         }
  136.         Arrays.sort(mezipole1);
  137.  
  138.         z = 1;
  139.         for (int i = (sirka * vyska); i > 0; i--) {
  140.             mezipole2[i] = mezipole1[z];
  141.             z++;
  142.         }
  143.  
  144.  
  145.         /******************************************************************************
  146.          *                            Pole upraveno a serazeno                        *
  147.          *                            mezipole1: nejmensi -> nejvetsi                 *
  148.          *                            mezipole2: nejvetsi -> nejmensi                 *
  149.          ******************************************************************************/
  150.         int vysledek_1d[] = new int[(sirka * vyska) + 1];
  151.         int vysledek_2d[][] = new int[sirka + 1][vyska + 1];
  152.  
  153.  
  154.         z = 1;
  155.         for (int i = 1; i < (sirka * vyska) + 1; i++) {
  156.             vysledek_1d[i] = mezipole1[z];
  157.             i++;
  158.             z++;
  159.         }
  160.  
  161.         z = 1;
  162.         for (int i = 2; i < (sirka * vyska) + 1; i++) {
  163.             vysledek_1d[i] = mezipole2[z];
  164.             i++;
  165.             z++;
  166.         }
  167.  
  168.         z = 1;
  169.         for (int i = 1; i <= sirka; i++) {
  170.             for (int j = 1; j <= vyska; j++) {
  171.                 vysledek_2d[i][j] = vysledek_1d[z];
  172.                 z++;
  173.             }
  174.         }
  175.  
  176.         /******************************************************************************
  177.          *                                                                            *
  178.          *                     Zpusob Vypisu:                                         *
  179.          *                                                                            *
  180.          ******************************************************************************/
  181.         System.out.println("*************************************************");
  182.         System.out.println("*    Zvol zpusob vypisu pole:                   *");
  183.         System.out.println("*                                               *");
  184.         System.out.println("*    1) do konzole                              *");
  185.         System.out.println("*    2) do souboru                              *");
  186.         System.out.println("*************************************************");
  187.  
  188.         String cesta = "";
  189.         int swtch1_a = 1;
  190.         int swtch1 = 0;
  191.  
  192.         while (swtch1_a > 0) {
  193.             try {
  194.                 Scanner s = new Scanner(System.in);
  195.                 swtch1 = s.nextInt();
  196.  
  197.             } catch (Exception e) {
  198.                 System.out.println("Pouze cisla");
  199.             }
  200.  
  201.  
  202.  
  203.  
  204.             switch (swtch1) {
  205.                 case 1:
  206.                     swtch1_a = 0;
  207.                     System.out.println("");
  208.  
  209.                     for (int i = 1; i <= sirka; i++) {
  210.                         for (int j = 1; j <= vyska; j++) {
  211.                             System.out.print(" " + vysledek_2d[i][j]);
  212.                         }
  213.                         System.out.println("");
  214.                     }
  215.                     break;
  216.  
  217.                 case 2:
  218.                     swtch1_a = 0;
  219.  
  220.                     x = 1;
  221.                     System.out.println("Zadejte cestu k ulozeni vystupu:");
  222.                     while (x > 0) {
  223.                         try {
  224.                             Scanner s = new Scanner(System.in);
  225.  
  226.                             if (s.hasNextInt()) {
  227.                                 throw new java.util.InputMismatchException();
  228.                             } else {
  229.                                 cesta = s.next();
  230.                             }
  231.                             x = 0;
  232.  
  233.                         } catch (InputMismatchException e) {
  234.                             System.out.println("Spatne zadana cesta");
  235.                             System.out.println("Zadejte cestu k ulozeni vystupu:");
  236.                         } catch (Exception e) {
  237.                             System.out.println(e);
  238.                         }
  239.  
  240.                     }
  241.                     if (!new File(cesta).exists()) {
  242.                         System.out.println("slozka " + cesta + " neexistuje");
  243.                         System.exit(0);
  244.                     }
  245.                     try {
  246.                         BufferedWriter out = new BufferedWriter(new FileWriter(cesta + "/vystup.txt"));
  247.  
  248.                         for (int i = 1; i <= sirka; i++) {
  249.                             for (int j = 1; j <= vyska; j++) {
  250.                                 out.write(" " + vysledek_2d[i][j]);
  251.                             }
  252.                             out.newLine();
  253.                         }
  254.  
  255.  
  256.                         out.write("");
  257.                         out.close();
  258.                     } catch (IOException e) {
  259.                     }
  260.  
  261.                     System.out.println("Soubor vystup.txt byl vytvoren v " + cesta);
  262.  
  263.                     break;
  264.  
  265.                 default:
  266.                     System.out.println("Zadali jste jinou hodnotu nez 1 nebo 2");
  267.             }
  268.  
  269.         }
  270.     }
  271.  
  272.     public void PoleZEsouboru() {
  273.  
  274.         int sirka = 0;
  275.         int vyska = 0;
  276.         int x = 1;
  277.  
  278.  
  279.         System.out.println("Zadejte pocet sloupcu pole:");
  280.         while (x > 0) {
  281.             try {
  282.                 Scanner s = new Scanner(System.in);
  283.                 sirka = s.nextInt();
  284.                 if (sirka < 1) {
  285.                     throw new java.lang.NegativeArraySizeException();
  286.                 }
  287.                 x = 0;
  288.  
  289.             } catch (NegativeArraySizeException e) {
  290.                 System.out.println("Neplatna velikost. Zadejte cislo vetsi jak 0");
  291.             } catch (Exception e) {
  292.                 System.out.println("Pouze cisla");
  293.                 System.out.println("Zadejte pocet sloupcu pole:");
  294.             }
  295.  
  296.         }
  297.  
  298.         x = 1;
  299.         System.out.println("Zadejte pocet radku pole:");
  300.         while (x > 0) {
  301.             try {
  302.                 Scanner s = new Scanner(System.in);
  303.                 vyska = s.nextInt();
  304.                 if (vyska < 1) {
  305.                     throw new java.lang.NegativeArraySizeException();
  306.                 }
  307.                 x = 0;
  308.  
  309.             } catch (NegativeArraySizeException e) {
  310.                 System.out.println("Neplatna velikost. Zadejte cislo vetsi jak 0");
  311.             } catch (Exception e) {
  312.                 System.out.println("Pouze cisla");
  313.                 System.out.println("Zadejte pocet radku pole:");
  314.             }
  315.  
  316.         }
  317.  
  318.         int pole[][] = new int[sirka + 1][vyska + 1];
  319.  
  320.  
  321.  
  322.         /******************************************************************************
  323.          *                                                                            *
  324.          *                          Nacitani souboru:                                 *
  325.          *                                                                            *
  326.          ******************************************************************************/
  327.         String cesta = "";
  328.         System.out.println("");
  329.         System.out.println("Zadejte cestu k souboru vstup.txt:");
  330.  
  331.         x = 1;
  332.         while (x > 0) {
  333.             try {
  334.                 Scanner s = new Scanner(System.in);
  335.  
  336.                 if (s.hasNextInt()) {
  337.                     throw new java.util.InputMismatchException();
  338.                 } else {
  339.                     cesta = s.next();
  340.                     x = 0;
  341.                 }
  342.  
  343.             } catch (InputMismatchException e) {
  344.                 System.out.println("Spatne zadana cesta");
  345.                 System.out.println("Zadejte cestu k souboru vstup.txt:");
  346.             } catch (Exception e) {
  347.                 System.out.println(e);
  348.             }
  349.  
  350.         }
  351.         if (!new File(cesta).exists()) {
  352.             System.out.println("slozka " + cesta + " neexistuje");
  353.             System.exit(0);
  354.         }
  355.  
  356.         int[] show = new int[(sirka * vyska) + 1];
  357.         try {
  358.  
  359.             Scanner sc = new Scanner(new File(cesta + "/vstup.txt"));
  360.  
  361.             int i = 1;
  362.             while (sc.hasNext()) {
  363.                 if (sc.hasNextInt()) {
  364.  
  365.                     show[i] = sc.nextInt();
  366.                     if (show[i] < 0) {
  367.                         System.out.println("V souboru musi byt cisla vesti nebo rovna 0");
  368.                         System.exit(0);
  369.                     }
  370.                     i++;
  371.                 }
  372.  
  373.             }
  374.             sc.close();
  375.  
  376.         } catch (FileNotFoundException e) {
  377.             System.out.println("Soubor " + cesta + "/vstup.txt nebyl nalezen.");
  378.             System.exit(0);
  379.  
  380.         } catch (ArrayIndexOutOfBoundsException e) {
  381.             System.out.println("");
  382.         } catch (InputMismatchException e) {
  383.             System.out.println(e);
  384.         } catch (Exception e) {
  385.             System.out.println(e);
  386.         }
  387.  
  388.  
  389.         x = 1;
  390.         for (int i = 1; i <= sirka; i++) {
  391.             for (int j = 1; j <= vyska; j++) {
  392.                 pole[i][j] = show[x];
  393.                 x++;
  394.             }
  395.         }
  396.  
  397.         /******************************************************************************
  398.          *                            Pole nacteno                                    *
  399.          *                            Zacina uprava                                   *
  400.          ******************************************************************************/
  401.         int mezipole1[] = new int[(sirka * vyska) + 1];
  402.         int mezipole2[] = new int[(sirka * vyska) + 1];
  403.         int z = 0;
  404.  
  405.  
  406.         for (int i = 1; i <= sirka; i++) {
  407.             for (int j = 1; j <= vyska; j++) {
  408.                 mezipole1[z] = pole[i][j];
  409.                 z++;
  410.             }
  411.         }
  412.         Arrays.sort(mezipole1);
  413.  
  414.         z = 1;
  415.         for (int i = (sirka * vyska); i > 0; i--) {
  416.             mezipole2[i] = mezipole1[z];
  417.             z++;
  418.         }
  419.  
  420.  
  421.         /******************************************************************************
  422.          *                            Pole upraveno a serazeno                        *
  423.          *                            mezipole1: nejmensi -> nejvetsi                 *
  424.          *                            mezipole2: nejvetsi -> nejmensi                 *
  425.          ******************************************************************************/
  426.         int vysledek_1d[] = new int[(sirka * vyska) + 1];
  427.         int vysledek_2d[][] = new int[sirka + 1][vyska + 1];
  428.  
  429.  
  430.         z = 1;
  431.         for (int i = 1; i < (sirka * vyska) + 1; i++) {
  432.             vysledek_1d[i] = mezipole1[z];
  433.             i++;
  434.             z++;
  435.         }
  436.  
  437.         z = 1;
  438.         for (int i = 2; i < (sirka * vyska) + 1; i++) {
  439.             vysledek_1d[i] = mezipole2[z];
  440.             i++;
  441.             z++;
  442.         }
  443.  
  444.         z = 1;
  445.         for (int i = 1; i <= sirka; i++) {
  446.             for (int j = 1; j <= vyska; j++) {
  447.                 vysledek_2d[i][j] = vysledek_1d[z];
  448.                 z++;
  449.             }
  450.         }
  451.  
  452.         /******************************************************************************
  453.          *                                                                            *
  454.          *                     Zpusob Vypisu:                                         *
  455.          *                                                                            *
  456.          ******************************************************************************/
  457.         System.out.println("*************************************************");
  458.         System.out.println("*    Zvol zpusob vypisu pole:                   *");
  459.         System.out.println("*                                               *");
  460.         System.out.println("*    1) do konzole                              *");
  461.         System.out.println("*    2) do souboru                              *");
  462.         System.out.println("*************************************************");
  463.  
  464.         int swtch1_a = 1;
  465.         int swtch1 = 0;
  466.  
  467.         while (swtch1_a > 0) {
  468.             try {
  469.                 Scanner s = new Scanner(System.in);
  470.                 swtch1 = s.nextInt();
  471.  
  472.             } catch (Exception e) {
  473.                 System.out.println("Pouze cisla");
  474.             }
  475.  
  476.  
  477.  
  478.  
  479.             switch (swtch1) {
  480.                 case 1:
  481.                     swtch1_a = 0;
  482.                     System.out.println("");
  483.  
  484.                     for (int i = 1; i <= sirka; i++) {
  485.                         for (int j = 1; j <= vyska; j++) {
  486.                             System.out.print(" " + vysledek_2d[i][j]);
  487.                         }
  488.                         System.out.println("");
  489.                     }
  490.                     break;
  491.  
  492.                 case 2:
  493.                     swtch1_a = 0;
  494.  
  495.                     x = 1;
  496.                     System.out.println("Zadejte cestu k ulozeni vystupu:");
  497.                     while (x > 0) {
  498.                         try {
  499.                             Scanner s = new Scanner(System.in);
  500.  
  501.                             if (s.hasNextInt()) {
  502.                                 throw new java.util.InputMismatchException();
  503.                             } else {
  504.                                 cesta = s.next();
  505.                             }
  506.                             x = 0;
  507.  
  508.                         } catch (InputMismatchException e) {
  509.                             System.out.println("Spatne zadana cesta");
  510.                             System.out.println("Zadejte cestu k ulozeni vystupu:");
  511.                         } catch (Exception e) {
  512.                             System.out.println(e);
  513.                         }
  514.  
  515.                     }
  516.                     if (!new File(cesta).exists()) {
  517.                         System.out.println("slozka " + cesta + " neexistuje");
  518.                         System.exit(0);
  519.                     }
  520.                     try {
  521.                         BufferedWriter out = new BufferedWriter(new FileWriter(cesta + "/vystup.txt"));
  522.  
  523.                         for (int i = 1; i <= sirka; i++) {
  524.                             for (int j = 1; j <= vyska; j++) {
  525.                                 out.write(" " + vysledek_2d[i][j]);
  526.                             }
  527.                             out.newLine();
  528.                         }
  529.  
  530.  
  531.                         out.write("");
  532.                         out.close();
  533.                     } catch (IOException e) {
  534.                     }
  535.  
  536.                     System.out.println("Soubor vystup.txt byl vytvoren v " + cesta);
  537.  
  538.                     break;
  539.  
  540.                 default:
  541.                     System.out.println("Zadali jste jinou hodnotu nez 1 nebo 2");
  542.             }
  543.  
  544.         }
  545.  
  546.     }
  547. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement