Advertisement
Guest User

Fiddle

a guest
Mar 31st, 2015
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /** tak obsługujemy przycisk, który po kliknięciu wywoła naszą funkcję: doHomework */
  2. $("#ok").click(function () {
  3.     doHomework();
  4. });
  5.  
  6.  
  7. function isBigger(a, b) {
  8.     /* jako ze  chciala slowa w tej samej formie bez zmiany
  9.     formatu, to to działa tak jak  słowo a > slowa b, tylko ze kopiuje
  10.     je i zamienia na male litery, dzieki czemu mozna je porownywac
  11.     bez straty informacji czy byly mala czy duza litera
  12.     Funkcja nie jest za madra, bo za kazdym porownaniem bede kopiowal te
  13.     wartosci, madrzej byloby zrobic jedna kopie zapasowa z mapowaneim
  14.     na elementy w orginalnej w stylu slowo i indeks w tablicy slow
  15.     oryginalnych któremu odpowiada*/
  16.  
  17.     var lhs = a.toLowerCase();
  18.     var rhs = b.toLowerCase();
  19.  
  20.     return lhs > rhs;
  21. }
  22.  
  23. function bubbleSort(a) {
  24.     /* ta funkcja działa tak ustala wartosc boole'owska swapped na false
  25.     na poczatu i idzie trafia do kolejnej petli
  26.     gdzie na poczatku sprawdzi pierwszy element z kolejnym czy sie roznia
  27.     wielkoscia jezeli tak to je zamieni, nastepnie sprawdzi element który
  28.     bedzie na drugim miejscu itd itp
  29.     i bedzie zamieniala dopokiu bedzie cos do zamienienia */
  30.     var swapped;
  31.     do {
  32.         swapped = false;
  33.         for (var i = 0; i < a.length - 1; i++) {
  34.             if (isBigger(a[i], a[i + 1])) {
  35.                 var temp = a[i];
  36.                 a[i] = a[i + 1];
  37.                 a[i + 1] = temp;
  38.                 swapped = true;
  39.             }
  40.         }
  41.     } while (swapped);
  42.  
  43.     return a;
  44. }
  45.  
  46. function doHomework() {
  47.  
  48.     var data = getDataFromInput();
  49.     var lines = data.split("\n");
  50.     // dzieli wejsciowy string wedlug znaku konca linii
  51.     var result = "";
  52.     // pusty string wyjsciowy
  53.  
  54.     for (var i = 0; i < lines.length; i++) {
  55.         var dummy = lines[i].split(" ");
  56.         //dziele linie na słowa według spacji pomiedzy nimi
  57.         //otrzymujac tablice slow
  58.         if (dummy.length !== 0) {
  59.             //sprawdzam czy nie jest pusta
  60.             dummy = bubbleSort(dummy);
  61.             //sortuje te slowa
  62.             for (var j = 0; j < dummy.length; j++) {
  63.                 result += dummy[j] + " ";
  64.             }
  65.             //doklejam slowa oddzielone spacjami do stringu wynikowego
  66.             //inaczej gdybym mial slowa  "a" "b" to wyjsciowy bylby "ab"
  67.             //zamiast "a b"
  68.         }
  69.         result += "<br>";
  70.         //doklejam znak konca linii zeby zachowaly porzadek
  71.     }
  72.  
  73.  
  74.     /* @todo: przetworzyć wczytane dane, tutaj jako przykład zamiana wielkości liter */
  75.     writeResultToOutput(result);
  76. }
  77.  
  78. function getDataFromInput() {
  79.     return $("#in").val();
  80. }
  81.  
  82. function writeResultToOutput(resultHTML) {
  83.     $("#out").html(resultHTML);
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement