1. JavaScript / Говнокод #19754

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    function kvadrt() {
        d = document
        var a = Number(d.form1.num1.value)
        var b = Number(d.form1.num2.value)
        var c = Number(d.form1.num3.value)
        var diz = eval(Math.pow(b, 2) - 4 * a * c)
        var e = eval((-b + Math.sqrt(diz)) / (2 * a))
        var e1 = eval((-b - Math.sqrt(diz)) / (2 * a))
        var e2 = eval(-c / b)
        var e3 = eval(-b / 2 * a)
        var x1 = Number(d.form1.x1.value)
        var x2 = Number(d.form1.x2.value)
        if (a == 0 && b == 0 && c == 0) {
            x1 = "x принадлежит R";
            x2 = "x принадлежит R";
        } else
        if (a == 0 && b == 0 && c != 0) {
            x1 = "Решений нет";
            x2 = "Решений нет";
        } else
        if (a == 0 && b != 0 && c != 0) {
            x1 = eval(e2);
            x2 = " ";
        } else
        if (a != 0 && diz > 0) {
            x1 = eval(e);
            x2 = eval(e1);
        } else
        if (a != 0 && diz == 0) {
            x1 = eval(e3);
            x2 = " ";
        } else {
            x1 = "Решений нет";
            x2 = "Решений нет";
        }
        d.form1.x1.value = x1;
        d.form1.x2.value = x2;
    }

    Заканчиваю этот семестр, и ну его нахрен, это преподавательство.

    Запостил: Actine, 05 Апреля 2016

    Комментарии (95) RSS

    • фуууууу
      нет

      вы реально детей учите программировать на джаваскрипте???
      Ответить
      • в ознакомительных целях
        Ответить
        • А не занимаетесь ли вы с ними ещё и бдсм-ом, в ознакомительных целях?
          Ответить
          • нет, но иногда хочется им выдать золотой дождь.
            Ответить
            • а хуй им показываете?
              Ответить
              • Скорее всего, нет. У товарища ученики стеснительные: пишут "x принадлежит R" вместо того, чтобы прямым текстом написа́ть "x∈R".
                Ответить
        • Фу блядь, фу нахуй. Простите, вырвалось.
          Ответить
      • JS - отличный первый язык
        1. Не надо трахаться с байтами, флагами ошибок, заботиться о дурацких free
        2. Не надо трахаться с числами, программа не упадёт при делении на ноль, 1/2 == 0.5
        3. Не надо трахаться с типами, есть только переменные. Всё программирование - обёртка над char* или int* в компьютере - типы не нужны.
        4. Есть все нужные конструкции как в подобных ЯП, синтаксис похож.

        Итого: берём JS, показываем суть, концентрируясь на алгоритмах. Программа падает редко, в программисте растёт уверенность в себе. Программист осваивается, крепнет, говорим ему, что много чего JS взял на себя, на самом деле JS следил за байтами, типами и памятью, показываем сишку. Программист печалится, но не отчаивается, т.к. программирование в лице JS его затянуло, а сишка вся с виду - как JS, только с типами. Программист осваивает сишку. Показываем ему ООП и ФП. По понедельникам он строчит на лабах классы, по вторникам - чистые функции. В какой-то понедельник половина методов становится чистыми. В какой-то вторник для одного типа данных рождается необходимый и достаточный набор функций.
        Ответить
        • у js очень много вещей которые нужно принять и которых нет у других языков.
          Если серьезно говорить о первом языке то лучше питона вариантов я не вижу.

          простые языковые конструкции + вырабатывается привычка форматировать код.
          Что еще надо для начинающего программиста.
          Ответить
          • Но питон часто падает, и в нём нельзя просто так поделить числа. Это демотивирует, некоторые вообще могут отказаться от программирования (Фу, оно падает, это же надо быть задротом, чтобы программировать, уж лучше я пойду в космонавты).
            А в JS даже функции называются функциями (в отличие от python/C). Пусть питон, но уж лучше перед этим хоть немножечко на JS.
            Ответить
            • Помню, всегда раздражало, когда программы на Паскале падали из-за деления целых на ноль. Всегда хотелось сказать "Ты тупой? Ты реально тупой? Ты уже два числа поделить и не сломаться не можешь? Задолбало!"
              Ответить
              • Меня всегда раздражала в паскале необходимость объявления всего. И многословность.
                Переменные, блин там даже метки и те надо было объявлять.

                Вообще паттерн "инициализация есть объявление переменной", да и плюс вывод типа - гигантский скачок в погромировании. Трудно поверить что для постижения такой простой вещи понадобились ДЕСЯТИЛЕТИЯ.

                Случаи где можно сначала объявить переменную, не инициализировав её - чистая боль.
                Ответить
                • Эта простая вещь была уже в фортране. И признак вменяемого кода в фортране - её отключение в начале функции.
                  Ответить
                • А меня наоборот в Паскале радует, что нужно объявлять всё. Это избавляет от нежданчиков. Раздражает только, что в отличие от Алгола нельзя делать объявления внутри блоков (begin...end).

                  А с метками в Паскале беда. На них нельзя ссылаться, нельзя брать адрес или делать goto на переменную. Т. е. метки — это костыль, которым лучше не пользоваться.
                  Ответить
                  • С другой стороны, все эти описания привязывают программиста, не дают ему расправить крылья и полететь в абстрактные дали.
                    // ECMAScript:
                    var x = [{name: "inkanus-gray", id: "1659"}];
                    // C++11:
                    std::vector<std::map<std::string, std::string>> x = {{{"name", "inkanus-gray"}, {"id", "1659"}}};
                    
                    // C++98:
                    std::pair<std::string, std::string> pairs[] = {std::make_pair("name", "inkanus-gray"), std::make_pair("id", "1659")};
                    std::map<std::string, std::string> maps[] = {std::map<std::string, std::string>(pairs, pairs+1)};
                    std::vector<std::map<std::string, std::string> > x = std::vector<std::map<std::string, std::string> >(maps, maps+1);
                    Ответить
                    • // ECMAScript:
                      var x = [{name: "inkanus-gray", id: "1659"}];
                      
                      // C++100500:
                      auto x = [{"name", "inkanus-gray"}, {"id", "1659"}];
                      Ответить
                    • а потому что 10 раз подумаешь прежде чем фигачить вектор мап на ЯП со стат типизацией

                      вот сделал бы класс -- код был бы чище
                      Ответить
                • Это зеленым надо было написать.
                  Ответить
            • Вообще-то я с жабы начал. Но за питон согласен с Vasiliy.
              Ответить
            • >в нём нельзя просто так поделить числа
              >некоторые вообще могут отказаться от программирования (Фу, оно падает, это же надо быть задротом, чтобы программировать, уж лучше я пойду в космонавты)

              П - профпригодность.
              Ответить
              • Профпригодность для школьника/первокурсника? Хе-хе.
                Давайте C++ новорождённому. А если напишет говнокод - пусть уходит из профессии.

                Профессионализм возникает постепенно, сначала есть только небольшие стремления. Задуете спичку - не будет пожара.
                Ответить
                • Просто не все люди могут стать программистами. Равно как и не все могут стать математиками/физиками/биологами/лингвистами/insert_your_profession. Хорошая статья по этому поводу - http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html (перевод - https://habrahabr.ru/post/122665/).
                  Для того, чтобы заинтересовать школьников, существуют множество учебных сред/языков, начиная от всяких черепашек-кузнечиков и заканчивая конструкторами с Ардуинкой. А с самого начала учить писать говно на говне - плохой выбор.
                  И да, вы плохого мнения о первокурсниках - обычно, к этому моменту человек уже вполне способен осознать, что программирования - это "не его" и не устраивать истерики от ошибки деления на ноль.
                  Ответить
                  • На самом деле вопрос в том, хотите ли Вы сделать программиста или говнокодера
                    Если Вам нужен говнокодер для писания под джумлу и деланья сайтиков, то учите его JS, PHP, и через 3 недели отдавайте в проект

                    Денис Попов умеет так делать

                    а если Вам нужен программист, то конечно нельзя его на пушечный выстрел подпускать к изуродованным обрубкам типа js, php или mysql
                    Ответить
                  • > И да, вы плохого мнения о первокурсниках
                    Люди разные бывают, это точно. Кто-то может уже в школе знает, чем заниматься всю жизнь станет.
                    Но есть такие факторы как (а) материал, который дают в школах и (б) "побочные" занятия. Во-первых, у некоторых есть шанс так и не познакомиться нормально с программированием, учитель либо будет учить офису, либо втирать какую-то дичь. Во-вторых, человек мог сделать неправильный выбор, или у него программирование будет как хобби, ...

                    > существуют множество учебных сред/языков
                    Это хорошо.
                    Ответить
                    • В ВУЗ идут в 17 лет

                      Давайте вот искренне: если человек в 17 лет не умеет ни на чем писать то скорее всего он уже не сможет быть годным программером
                      Ответить
        • 5. Не надо трахаться, никогда не надо трахаться
          Ответить
        • js отличный потому что он
          1) везде есть
          2) пригодится по жизни
          3) низкий порог вхождения
          4) нет множества алгоритмов изкаропки, всё надо пилить самому (хорошо для лаб)

          Но учиться наверное таки лучше напитоне.
          Правда смотря на3_14dara я начинаю сомневаться в этом тезисе.
          Ответить
          • Для учится надо иметь мозг хотя бы спинной. У пидара все башка забита ватой, гимном украины и речевками фашиков.
            Он учится не способен.
            Ответить
            • Зато он Свободный человек, не замутнённый совецко-рашкинским образованием.

              >У пидара все башка забита
              /po cосача и мочой абу у него башка забита.

              PS щиии. я только сейчас понял что человек втирающий тут за чеченов, хачиков и шамилей сидит на борде Наримана Намазова
              Ответить
              • Въебал плюс
                Ответить
              • кто такой Нариман Намазов?
                Ответить
              • Замутненный, но только слегка, а главное - видел другие варианты. А пидарахам остается только гордиться своей мочей.
                Ответить
                • какие такие варианты?
                  Ответить
                  • Ну как какие. Когда ебать можешь не только ты но и тебя.
                    после таких вариантов пидарами и становятся.
                    Ответить
                    • Русский, ты снова о хуях и жопе? Кто о чем, а вшивый о бане.
                      Ответить
                      • Ты как всегда оригинален, 3_14dar.
                        Ответить
                      • Ну как можно говорить о тебе не вспоминая твой разорванный в клочья зад и засанное ебало. Это же твой отличительный знак, это то что делает тебя уникальным хотя бы в пространстве этого ресурса.
                        Ответить
                  • Несовковое IT образование?
                    Ответить
                    • Примеры будут?
                      Ответить
                      • Примеры ЧЕГО?
                        Ответить
                        • Других вариантов
                          Ответить
                          • >Несовковое IT образование?
                            Вот пример.

                            Тебе расписать что здесь проходят? Меняю на объяснение что и как проходят у вас. Халявы не будет.
                            Ответить
                        • Видимо не будет. То есть эти слова

                          3_14dar в http://govnokod.ru/19754#comment320131 написал:
                          >> а главное - видел другие варианты.

                          Унылый пиздежь в попытке поднять ЧСВ
                          Ответить
                          • Кегдан вот Вы вроде умный человек поэт, студент. И не бухаешь к тому же.
                            Что ты еще от пидара ждешь?
                            Все его существование описывается парой слов. "Сплошная беспросветность"
                            Ответить
                            • — раздался пронзительный голос со стороны параши.

                              Но пацаны, как всегда, не обратили внимания на это визгливое кукареканье. Пусть кукарекает, что с него взять?

                              Vasiliy — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его анус был разработан настолько, что он без труда мог спрятать в нём банку сгущёнки.
                              Ответить
                              • Ну вот что за вореции, сударь?. Если у гг истории сегодняшняя ночь тоже будет трудной, то спрятать сгущенку он там не сможет. Найдут же сразу!
                                Ответить
                                • > спрятать сгущенку он там не сможет
                                  Ну, может быть, анус разработан настолько, что спрятанная в нём банка сгущёнки никому не мешает даже во время трудных ночей?
                                  Ответить
                                  • Гарри Поттер и спрятанная сгущенка
                                    Ответить
                                    • Пидар и Шамиль-полукровка.
                                      А также Пидар и тайная банка. Главная интрига книги найдет ли Шамиль в очке пидара банку или пидар полакомится сладеньким.
                                      Ответить
        • JS отвратительный первый язык

          1) куча ненужных, непонятных типов. Null? Undefined?
          2) слабая, невнятная типизация (что во что и когда превратится непонятно)
          3) нет нормального ООП, однако ООП все таки есть. Так что изучать его придется. А как классы писать через жопу.
          4) this такой this
          5) в языке нет нормальных средств для создания библиотек
          6) класс и ассоциативный массив это одно и тоже. Песдец же.

          В голове у новичка будет каша, треш и говно. Как и от PHP.
          Ответить
          • Не надо его целиком изучать, только основы. Число, массивчик, сортировочка, императивный подход, вынесение в фукнцию. Поигрались - и напитон.
            Ответить
            • ну-ка, научика меня массивчику и сортировочке в JS без ООП
              Ответить
              • var a = [1,2,3]; - массивчик, т.е. упорядоченный набор из элементов
                a[0] - первый элемент, конструкция a.length - длина массива, для нашего будет 3
                элементы можно изменять: a[0] = 5;
                Можно доступаться до каждого элемента, меняя его индекс (адрес элемента в массиве) в каждой итереции. Тем и удобны массивы как длинные вереницы чисел, имеющие какой-то общий смысл.
                В массивчики можно запихнуть зарплаты ваших родителей, количество стульев в кабинете в зависимости от года или просто первые несколько простых чисел.

                Сортировочка - это упорядочивание массивчика:
                for(var i=0; i<a.length; ++i) {
                  for(var j=0; j<a.length-1; ++j) {
                    if(a[j]>a[j+1]) {
                      var tmp = a[j];
                      a[j] = a[j+1];
                      a[j+1] = tmp;
                    }
                  }
                }

                Эту сортировочку можно оптимизировать так, что она будет работать как минимум в джва раза быстрее, но это мы узнаем на следующем уроке.
                Ответить
                • >> конструкция a.length
                  что это за конструкция такая, учитель? что за точечка?

                  >>Сортировочка - это упорядочивание массивчика:
                  спасибо. А это нужно кажрый раз писать или есть какие-то готовые?
                  Ответить
                  • >> спасибо. А это нужно кажрый раз писать или есть какие-то готовые?
                    ну что вы, юноша. для этого есть модуль на npm.
                    Ответить
                    • да?
                      а я думал для этого есть ``Array.sort();``
                      Да вот незадача: про ООП-то нам и не рассказали
                      Ответить
                      • А зачем ООП, если и так можно написать "Array.sort()"?
                        Просто тут первый аргумент вынесли за скобки, чтобы все видели, что сортируется именно массив, а не что-то другое.
                        Вот если вы захотите создать свой тип "массив", у которого вместо сортировки будет перемешивание, а всё остальное - как у массива, тогда я вам про ООП и расскажу.
                        Ответить
                  • Точка - это так для удобства программисты обозначили. Кому-то показалось, что a.length будет читаться понятнее, чем length(a) или #a.
                    Ответить
                    • То есть можно и так и так? а как лучше?
                      Ответить
                      • Как удобнее - так и лучше. Можете написать function length(a){ return a.length; } - и будет работать length(a).
                        Но вообще, раз в языке сделано через точку, то и пишите так, пока программистом опытным не станете.
                        Ответить
    • try
      {
              koren = sqrt(Math.pow(b, 2) - 4 * a * c);
              ...
      }
      catch
      {
              x1 = "Решений нет";
              x2 = "Решений нет";
      }
      Ответить
      • Сюрприз! Оно не кинет исключений.
        Math.sqrt(-1) = NaN
        koren = NaN

        >catch
        Без скобок.
        Ответить
    • На самом деле ноль вещественных корней — это тоже решение.
      Ответить
    • я может чего не понимаю
      var e = eval((-b + Math.sqrt(diz)) / (2 * a))
      x1 = eval(e);
      но зачем тут вообще eval?
      Ответить
      • студенческая логика потому что.
        потому что народ пришел войтивайти на з/п $300 со старта, а мозгов нормально написать банальную хуиту типа квадратного уравнения не хватает.
        Ответить
      • По другому не работало.
        Ответить
        • Товарищ С., залогиньтесь.
          (точно это мне студент и сказал)
          Ответить
          • У меня дома всё работало!!!!
            Ответить
            • Так и должно быть. Дома был неленивый интерпретатор, поэтому он всё вычислял и без eval.
              Ответить
      • Тут же нужно вычислить значение выражения, а «вычислить» по-английски будет “eval”.
        Ответить
        • ты меня в ступор вогнал, я уж поверил, что var value = 100500/2; не будет присваивать значений, пока не проверил.
          Ответить
          • Это потому, что var value - уже значение. Вы с x1 попробуйте.
            Ответить
            • конечно, так и eval тоже значение возвращяет. или я чего-то не знаю?
              Ответить
    • Шоб не сказали, что «фу, хуевый учитель, жаваскриптом людям мозг ломает».
      Вуз технический. Специальность техническая. Народ, поступивший сюда, должен был хотя бы видеть паскаль в книжке на картинках. Программирование, правда, целых джва курса — за эти джва курса надо народу хотя бы показать, на каких технологиях сейчас в индустрии батрачат.
      Был семестр джавы, как раз те все основы ООП и т.д. Правда, оказалось, что народ нихрена раньше не кодил, поэтому с нуля пришлось рассказывать о переменных, массивах, control flow'е и пр. Джава студентам пошла со скрипом — решил им дать полсеместра основ фронтенда как пример декларативного кодинга (html, css) и типа ФП на примере жабаскрипта (ну популярен он, с этим не поспоришь). Надеялся, что, может, хоть кнопочки на форму накидывать им будет интересно. Хера с два.
      Ответить
      • Пиздец какой. Сожги этот вуз к хуям, когда уходить будешь.
        Ответить
        • А почему архитекторы должны любить программировать?
          Ответить
      • ну то есть люди на втором курсе не умеют кнопочку на форму?
        нахуй тогда они нужны вообще?
        Ответить
        • Написано же: «Вуз технический. Специальность техническая». Т. е. программирование — это не основное их занятие, а побочное. Может быть, они не умеют кнопочку на форму, зато разбираются в вычислительной сложности алгоритмов?
          Ответить
          • А реализовывать они алгоритмы как будут? На Verilog?
            тогда зачем их учить джаваскрипту?
            Ответить
            • > На Verilog?
              Кстати да. На нём очень сложно писать людям, испорченным последовательными программами.
              Ответить
          • О да, разбираются. На экзамене вопрос: как проверить, что в абзаце текста есть слово? Отвечать можно кодом, псевдокодом, блок-схемой, словами — блин, да хоть как нибудь покажи, что ты совсем не мудень и хоть что-то соображаешь. Тело что-то помнит про бинарный поиск, вот и отвечает, мол, надо сначала все слова посортировать, потом взять слово посредине, потом ту половину слов, которая меньше…
            Ответить
    • Дал им контрольную работу. Вот, полюбуйтесь: https://goo.gl/photos/Y6hMqJ65HvLqhJbTA
      Ответить
      • а вы их сразу и CSS и HTML и JavaScript учите?)
        Ответить
        • писал выше. полсеместра на основы фронтенда, «для ознакомления». пред этим была жаба, но дела там были не намного лучше.
          курс называется «технологии программирования». за два года нужно хотя бы затронуть то, на чем сейчас пишут. т.к. выпускникам суждено становиться цепными щенками ІТ-индустрии и поднимать наше ебаное украинское ІТ.
          Ответить
          • а какая у них главная специальность? ну, кем они должны быть когда закончат ВУЗ?
            Ответить
            • специалистами по информационной безопасности.
              хотя на самом деле половина уходит на ІТ-галеры (а половина из них — в манки-тестеры)
              Ответить
      • https://goo.gl/tSjVDD

        Ахаха, лол
        Ответить

    Добавить комментарий