Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** tak obsługujemy przycisk, który po kliknięciu wywoła naszą funkcję: doHomework */
- $("#ok").click(function () {
- doHomework();
- });
- function isBigger(a, b) {
- /* jako ze chciala slowa w tej samej formie bez zmiany
- formatu, to to działa tak jak słowo a > slowa b, tylko ze kopiuje
- je i zamienia na male litery, dzieki czemu mozna je porownywac
- bez straty informacji czy byly mala czy duza litera
- Funkcja nie jest za madra, bo za kazdym porownaniem bede kopiowal te
- wartosci, madrzej byloby zrobic jedna kopie zapasowa z mapowaneim
- na elementy w orginalnej w stylu slowo i indeks w tablicy slow
- oryginalnych któremu odpowiada*/
- var lhs = a.toLowerCase();
- var rhs = b.toLowerCase();
- return lhs > rhs;
- }
- function bubbleSort(a) {
- /* ta funkcja działa tak ustala wartosc boole'owska swapped na false
- na poczatu i idzie trafia do kolejnej petli
- gdzie na poczatku sprawdzi pierwszy element z kolejnym czy sie roznia
- wielkoscia jezeli tak to je zamieni, nastepnie sprawdzi element który
- bedzie na drugim miejscu itd itp
- i bedzie zamieniala dopokiu bedzie cos do zamienienia */
- var swapped;
- do {
- swapped = false;
- for (var i = 0; i < a.length - 1; i++) {
- if (isBigger(a[i], a[i + 1])) {
- var temp = a[i];
- a[i] = a[i + 1];
- a[i + 1] = temp;
- swapped = true;
- }
- }
- } while (swapped);
- return a;
- }
- function doHomework() {
- var data = getDataFromInput();
- var lines = data.split("\n");
- // dzieli wejsciowy string wedlug znaku konca linii
- var result = "";
- // pusty string wyjsciowy
- for (var i = 0; i < lines.length; i++) {
- var dummy = lines[i].split(" ");
- //dziele linie na słowa według spacji pomiedzy nimi
- //otrzymujac tablice slow
- if (dummy.length !== 0) {
- //sprawdzam czy nie jest pusta
- dummy = bubbleSort(dummy);
- //sortuje te slowa
- for (var j = 0; j < dummy.length; j++) {
- result += dummy[j] + " ";
- }
- //doklejam slowa oddzielone spacjami do stringu wynikowego
- //inaczej gdybym mial slowa "a" "b" to wyjsciowy bylby "ab"
- //zamiast "a b"
- }
- result += "<br>";
- //doklejam znak konca linii zeby zachowaly porzadek
- }
- /* @todo: przetworzyć wczytane dane, tutaj jako przykład zamiana wielkości liter */
- writeResultToOutput(result);
- }
- function getDataFromInput() {
- return $("#in").val();
- }
- function writeResultToOutput(resultHTML) {
- $("#out").html(resultHTML);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement