1. Лучший говнокод

    В номинации:
    За время:
  2. 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)
  3. Куча / Говнокод #18026

    +143

    1. 1
    http://habrahabr.ru/company/neuronspace/blog/254671/

    Захотелось поделится с сообществом.

    Vasiliy, 20 Апреля 2015

    Комментарии (95)
  4. JavaScript / Говнокод #17148

    +154

    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
    if ((new Date(2014, 0, 1)).getHours() != 0 || new Date(2015, 0, 7).getHours() != 0) {
      // Переопределяем конструктор
      Date = (function (NativeDate) {
        var NewDate = function (Y, M, D, h, m, s, ms) {
          var length = arguments.length;
          var date = length === 1 && String(Y) === Y ? // isString(Y)
              new NativeDate(NewDate.parse(Y)) :
                  length >= 7 ? new NativeDate(NativeDate.UTC(Y, M, D, h, m, s, ms)) :
                  length >= 6 ? new NativeDate(NativeDate.UTC(Y, M, D, h, m, s)) :
                  length >= 5 ? new NativeDate(NativeDate.UTC(Y, M, D, h, m)) :
                  length >= 4 ? new NativeDate(NativeDate.UTC(Y, M, D, h)) :
                  length >= 3 ? new NativeDate(NativeDate.UTC(Y, M, D)) :
                  length >= 2 ? new NativeDate(NativeDate.UTC(Y, M)) :
                  length >= 1 ? new NativeDate(Y) :
              new NativeDate();
          if (length == 0) {
            date = new NativeDate(+date - date.getTimezoneOffset() * 60000);
          }
          date.constructor = NewDate;
          return this instanceof NativeDate ? date : date.toString();
        };
    
        if (NativeDate.now) {
          NewDate.now = function () {
            return new NewDate().getTime();
          };
        }
        if (NativeDate.UTC) {
          NewDate._UTC = NativeDate.UTC;
          NewDate.UTC = function (Y, M, D, h, m, s, ms) {
            var _date = new NewDate(NewDate._UTC.apply(this, arguments));
            return +_date - _date.getTimezoneOffset() * 60000;
          };
        }
        NewDate.prototype = NativeDate.prototype;
        NewDate.prototype.constructor = NewDate;

    И так далее, "фикс" для кривых таймзон в JS на винде http://habrahabr.ru/post/243685/

    asavartsov, 21 Ноября 2014

    Комментарии (95)
  5. Куча / Говнокод #16109

    +136

    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
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    // Playground - noun: a place where people can play
    
    import Cocoa
    
    // Изначальный массив и ссылка на него
    var originalArray: Int[] = [1, 2, 3];   // [1, 2, 3]
    var extraArray = originalArray          // [1, 2, 3]
    
    // Поменяем во втором массиве элемент
    extraArray[0] = 666
    
    // Оппа изменился и в первом
    extraArray                              // [666, 2, 3]
    originalArray                           // [666, 2, 3] O_o
    
    // Не делись!
    extraArray.unshare()
    
    // Теперь они живут своей жизнью
    extraArray[0] = 333
    
    extraArray                              // [333, 2, 3] okay
    originalArray                           // [666, 2, 3]
    
    // А вот тут будет наоборот
    var anotherArray = originalArray        // [666, 2, 3]
    
    // auto unshare
    anotherArray.append(-1)
    anotherArray.removeLast()
    
    anotherArray[0] = 777
    
    anotherArray                            // [777, 2, 3]
    originalArray                           // [666, 2, 3]
    
    // Словари вообще не так себя ведут, всегда копирование
    
    var originalDictionary = [ 1: "hello", 2: "world"]
    var extraDictionary = originalDictionary
    extraDictionary[1] = "no way"
    
    originalDictionary      // [ 1: "hello", 2: "world"]
    extraDictionary         // [ 1: "no way", 2: "world"]

    Я восхвалял Свифт, а же его и обосру.
    В Свифте есть массивы и словари. Так вот словари при присваивании или передаче как аргумента копируются. Окей. Теперь массивы. Они, оказывается, не копируются, а разделяют значения между собой! Т. е. передал массив в ф-цию, она там что-то испортила, массив испортился везде, где засветился.
    Чтобы эту фигню остановить, нужно вызывать спец. функцию unshare
    Но это еще не все. При некоторых операциях с массивами (потенциально меняющих их длину) unshare делается автоматически!

    Предвижу классическую ошибку свифтокодеров: ожидал, что массив поменяется, а он не поменялся снаружи; или передал массив, поюзал, а он снаружи неожиданно испортился. Плюс путаница, что базовые типы ведут себя по-разному.
    Оправдание Apple: мы хотели перформанс С-массивов в Свифте, поэтому сделали эту хрень.

    tirinox, 04 Июня 2014

    Комментарии (95)
  6. C++ / Говнокод #14320

    +27

    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
    int enumDevices(DevInfo* &lst) {
        int count = 0;
        DevInfo* tmp = NULL;
        Device device;
        for (int i = 0; i < MAXDEVICES; i++)
            if (device = OpenDevice(i)) {
                count++;
                realloc(tmp, sizeof(DevInfo)*count);
                ReadInfo(device, &tmp[count-1]
            }
        if (count == 0) return 0;
        lst = new DevInfo[count];
        for (int i = 0; i < count; i++)
            lst[i] = tmp[i];
        free(tmp);
        return count;
    }
    
    //................
    
    DevInfo* list;
    int devcount = enumDevices(list);
    /* работаем со списком */
    delete[] list;

    Самому стыдно.

    Vindicar, 06 Января 2014

    Комментарии (95)
  7. Куча / Говнокод #14308

    +141

    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
    Говнокод рекурсивный
    
    Проходим по ссылке 
    http://govnokod.ru/comments/14234/rss
    
    Смотрим на 5 строку
     <link>http://govnokod.ru/comments/14301/rss</link>
    
    Переходим по 
    http://govnokod.ru/comments/14301/rss
    
    
    Запрашиваемая страница не найдена!
    Возможно, её и не было никогда
    
    Так и должно быть?

    kegdan, 02 Января 2014

    Комментарии (95)
  8. Си / Говнокод #14224

    +135

    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
    void permutate(int a[10], int n) {
        // God bless mr. Donald E. Knuth;
        // Tons of oil to English bell ringers!
    
        // WARNING: It's dangerous to go alone, take this^H read this shit
        int c[10], o[10], j, s, q;
        for (j = 1; j <= n; j++) {
            c[j] = 0;
            o[j] = 1;
        }
        while (1) {
            check(a, n);
            j = n;
            s = 0;
            while (1) {
                do {
                    q = c[j] + o[j];
                    if (q < 0) { o[j] = -o[j]; --j; }
                } while (q < 0);
                if (q == j) {
                    if (j == 1) return; else ++s;
                    o[j] = -o[j];
                    --j;
                    continue;
                }
                int t = a[j - c[j] + s];
                a[j - c[j] + s] = a[j - q + s];
                a[j - q + s] = t;
                c[j] = q;
                break;
            }
        }
    }

    Реализация алгоратма "простых изменений" по описанию из Кнута (т4. Комбинаторный поиск, генерация всех перестановок).
    Напрашивающиеся goto раздражают, было бы приятно увидеть менее пахучие реализации. Не смог нагуглить, забугорного названия этого алгоритма не знаю, а про "простые изменения" тинай вики молчит.

    vistefan, 13 Декабря 2013

    Комментарии (95)
  9. Куча / Говнокод #13639

    +139

    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
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    Всего обработано 12582 постов (не считая 1055 исключённых из-за 404 ошибки), 186254 комментариев, которые создали 4163 пользователей.
    
    3390+	юзеров имеют 1+	постов
    181+	юзеров имеют 10+	постов
    6+	юзеров имеют 100+	постов
    1+	юзеров имеют 1000+	постов
    
    3159+	юзеров имеют 1+	комментариев
    875+	юзеров имеют 10+	комментариев
    178+	юзеров имеют 100+	комментариев
    24+	юзеров имеют 1000+	комментариев
    2+	юзеров имеют 10000+	комментариев
    
    711+	юзеров создали 1+	комм./постов за последние 360	дней
    299+	юзеров создали 5+	комм./постов за последние 360	дней
    197+	юзеров создали 10+	комм./постов за последние 360	дней
    77+	юзеров создали 50+	комм./постов за последние 360	дней
    49+	юзеров создали 100+	комм./постов за последние 360	дней
    17+	юзеров создали 500+	комм./постов за последние 360	дней
    
    290+	юзеров создали 1+	комм./постов за последние 90	дней
    118+	юзеров создали 5+	комм./постов за последние 90	дней
    86+	юзеров создали 10+	комм./постов за последние 90	дней
    37+	юзеров создали 50+	комм./постов за последние 90	дней
    25+	юзеров создали 100+	комм./постов за последние 90	дней
    
    144+	юзеров создали 1+	комм./постов за последние 30	дней
    59+	юзеров создали 5+	комм./постов за последние 30	дней
    40+	юзеров создали 10+	комм./постов за последние 30	дней
    23+	юзеров создали 20+	комм./постов за последние 30	дней
    14+	юзеров создали 50+	комм./постов за последние 30	дней
    9+	юзеров создали 100+	комм./постов за последние 30	дней
    
    Топ 20 пользователей, которые вызывают эмоции
    (по количеству кликов по +/-):
    1: guest (#1) - 224256 (1418 постов, 32235 комментариев)
    2: Lure Of Chaos (#1538) - 28637 (133 постов, 14460 комментариев)
    3: bormand (#5528) - 17334 (62 постов, 8303 комментариев)
    4: TarasB (#721) - 15999 (60 постов, 5978 комментариев)
    5: roman-kashitsyn (#3818) - 12252 (71 постов, 5767 комментариев)
    6: 3.14159265 (#1438) - 11991 (85 постов, 4851 комментариев)
    7: bugmenot (#1632) - 11748 (51 постов, 6120 комментариев)
    8: anonimb84a2f6fd141 (#5798) - 10073 (52 постов, 1806 комментариев)
    9: absolut (#1528) - 7881 (21 постов, 4142 комментариев)
    10: defecate-plusplus (#4442) - 6788 (13 постов, 2748 комментариев)
    11: LispGovno (#6011) - 5951 (88 постов, 2733 комментариев)
    12: Анонимус (#1679) - 5783 (8 постов, 3021 комментариев)
    13: eth0 (#2108) - 5401 (0 постов, 2608 комментариев)
    14: inkanus-gray (#1659) - 5307 (16 постов, 2538 комментариев)
    15: Stertor (#5934) - 4395 (98 постов, 864 комментариев)
    16: Говногость (#320) - 3893 (184 постов, 937 комментариев)
    17: istem (#1997) - 3851 (31 постов, 2130 комментариев)
    18: wvxvw (#988) - 3446 (115 постов, 2446 комментариев)
    19: xXx_totalwar (#963) - 3427 (24 постов, 1099 комментариев)
    20: Vasiliy (#1478) - 3404 (56 постов, 1573 комментариев)

    Статистика ГК. Данные были собраны за последние 3-4 дня.
    Постараюсь добавить в комментарии несколько Топ50.

    1024--, 21 Августа 2013

    Комментарии (95)
  10. C# / Говнокод #13362

    +134

    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
    public static int fullBendList(out List<MnOneBend> bendList, double angle, int angType, double diameter) {
          bendList = new List<MnOneBend>(); if (bendList == null) return Utils.ecError;
          List<double> angArray = new List<double>(); if (angArray == null) return Utils.ecError;
          if (angType < 1 || angType > 3 || angle < 0) { Utils.ErrorMessage("FULLBENDLIST"); return Utils.ecError; }
          MnBendHard bend = (MnBendHard)MnBend.createBend(angType); if (bend == null) return Utils.ecError;
          MnBend.getBendAngleList(ref angArray, diameter, angType);
          for (int i = 0; i < angArray.Count; i++) {
            double ang = Math.Abs(angArray[i]) * Utils.PI / 180; if (ang > angle + Utils.EPS) continue;
            List<MnOneBend> oneBendList = new List<MnOneBend>(); if (oneBendList == null) return Utils.ecError;
            if (bend.oneBendAngArray(ref oneBendList, ang, diameter) != Utils.ecNorm) return Utils.ecError;
            if (oneBendList.Count != 1) { Utils.ErrorMessage("FULLBENDLIST"); return Utils.ecError; }
            bendList.Add(oneBendList[0]);
          }
          return Utils.ecNorm;
        }

    Сохранено оригинальное форматирование, так как это неотъемлемый элемент данного произведения. Utils.PI - настоящий правильный ! Exception ? - Не, не слышал. П.С. Автор отказывает устонавливать ReSharper. Как вылечить пациента ?

    diimdeep , 11 Июля 2013

    Комментарии (95)
  11. Java / Говнокод #10361

    +74

    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
    39. 39
    40. 40
    41. 41
    42. 42
    public class factorial {
        public static void main(String[] args) {
            boolean run = true;
            long count = 2142;
            long last_count=0;
            while (run) {
                if (ispand(count)) {
                    if (isprime(count)) {
                        System.out.println(count);
                        last_count=count;
                    }
    
                }
                if((count+"").length()>7){
                   System.out.println("Largest prime can be :"+last_count);
                   System.exit(1);
                }
                count++;
            }
        }
        public static boolean ispand(long num) {
            String text = num + "";
            for (int i = 1; i <= text.length(); i++) {
                if (!text.contains(i + "")) {
                    return false;
                }
            }
            return true;
        }
        public static boolean isprime(long num) {
            if (num == 1) {
                return false;
            } else {
                for (int i = 2; i <= Math.sqrt(num); i++) {
                    if (num % i == 0) {
                        return false;
                    }
                }
            }
            return true;
        }
    }

    http://projecteuler.net/problem=41
    http://projecteuler.net/thread=41&page=8


    Пациент каким-то образом растянул решение аж на две секунды.

    PS: одному Аллаху известно почему это "factorial".

    TheHamstertamer, 24 Мая 2012

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