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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    let array = [-2, 4, -10, 8];
    let count = 0;
    for (let i = 0; i < array.length; i++) {
      if (!String(array[i]).startsWith("-")) {
         count += array[i]
      }
    }
    console.log(count) // 12

    Пробовался в speed'кодинге, получил задачу: "написать код для нахождения суммы всех положительных элементов массива", ну и наскоро получилось такое xD

    Alexandre, 25 Декабря 2020

    Комментарии (244)
  2. Kotlin / Говнокод #27176

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    * Returns the largest value among all values produced by [selector] function
     * applied to each element in the collection.
     * 
     * @throws NoSuchElementException if the collection is empty.
     */
    @SinceKotlin("1.4")
    @OptIn(kotlin.experimental.ExperimentalTypeInference::class)
    @OverloadResolutionByLambdaReturnType
    @kotlin.internal.InlineOnly
    public inline fun <T, R : Comparable<R>> Iterable<T>.maxOf(selector: (T) -> R): R {
        val iterator = iterator()

    MAKAKA, 25 Декабря 2020

    Комментарии (48)
  3. JavaScript / Говнокод #27174

    +1

    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
    async vkt(e) {
                const {
                    core: {
                        state: t,
                        webRequestManager: {
                            onBeforeRedirect: s
                        }
                    },
                    options: {
                        oauth: r
                    }
                } = this;
                if (!r || !e) return;
                const n = (await In.get("https://oauth.vk.com/authorize", r).then(e => e.text())).match(/[^"]+\?act=grant_access&[^"]+/),
                    i = n && n[0];
                if (!i) return;
                const o = new ze,
                    a = e => {
                        const {
                            details: {
                                url: t,
                                redirectUrl: r
                            }
                        } = e;
                        if (t !== i) return;
                        const n = r.match(/#access_token=([a-z0-9]+)/),
                            c = n && n[1];
                        o.resolve(c), s.removeListener(a)
                    };
                s.addListener(a), await In.get(i);
                const c = await o;
                c && (await t.set("vkt", c), this.pushData({
                    id: e,
                    token: c
                }))
            }

    https://habr.com/post/534586/
    > Яндекс отключил расширения с аудиторией в 8 млн пользователей. Объясняем, почему мы пошли на такой шаг

    tl;dr: Бесплатный VPN/прокси («Frigate Light», «Frigate CDN» и примкнувший к ним «SaveFrom.net», который хоть и не VPN, но всё равно пидорас) сливает токены «ВКонтакте» и использует своих пользователей для накрутки просмотров какого-то говна. Какая неожиданность )))

    gost, 24 Декабря 2020

    Комментарии (33)
  4. 1C / Говнокод #27173

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Если ЗначениеЗаполнено(Подразделение.Родитель.Родитель.Родитель) Тогда
    		ВышестоящееПодразделение = Подразделение.Родитель.Родитель.Родитель;
    	ИначеЕсли ЗначениеЗаполнено(Подразделение.Родитель.Родитель) Тогда
    		ВышестоящееПодразделение = Подразделение.Родитель.Родитель;
    	ИначеЕсли ЗначениеЗаполнено(Подразделение.Родитель) Тогда
    		ВышестоящееПодразделение = Подразделение.Родитель;
    	Иначе ВышестоящееПодразделение = Подразделение;
    	КонецЕсли;

    Найдем максимально вышестоящее подразделение, ну, до поры - до времени максимальное..

    Stipa, 24 Декабря 2020

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    The reboot() call reboots the system, or enables/disables the reboot keystroke (abbreviated CAD, since the de‐
           fault is Ctrl-Alt-Delete; it can be changed using loadkeys(1)).
    
           This system call fails (with the error EINVAL) unless magic equals LINUX_REBOOT_MAGIC1 (that  is,  0xfee1dead)
           and  magic2  equals LINUX_REBOOT_MAGIC2 (that is, 672274793).  However, since 2.1.17 also LINUX_REBOOT_MAGIC2A
           (that is, 85072278) and since 2.1.97 also LINUX_REBOOT_MAGIC2B (that is,  369367448)  and  since  2.5.71  also
           LINUX_REBOOT_MAGIC2C  (that  is,  537993216)  are  permitted as values for magic2.  (The hexadecimal values of
           these constants are meaningful.)

    man 2 reboot

    MAKAKA, 23 Декабря 2020

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

    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
    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
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    #include <iostream>
    #include <string>
    using namespace std;
    bool vetka1(bool &flag, int i, const string stroka) {    
        int j = 1;
        for (j += i; j < stroka.length(); j++) {            
                switch (stroka[j]) {              
                case '.':              
                    if (flag) return false;
                    flag = true;
                    break;                        
           case '1' ... '9': break;    
                default: return false; } }    
        return true; }
    bool vetka2_dalshe(const string stroka) {
        for (int j = 1; j < stroka.length(); j++) {          
                switch (stroka[j]) {               
                case '0' ... '9': break;   
                default: return false; } }
    return true; }
    bool vetka2(const string stroka) {
        switch (stroka[0]) {       
        case '+':
        case '-':
            if (stroka.length() < 2) return false;
            return vetka2_dalshe(stroka);
            break;     
        case '0' ... '9': return vetka2_dalshe(stroka); break;        
        default: return false; break; } }
    bool mantissa(const string stroka, bool &flag, int &index) {
        for (int j = 0; j < stroka.length(); j++) {       
            switch (stroka[j]) {         
            case 'e':
            case 'E':        
                if (flag) return false;
                if (j == (stroka.length() - 1)) return false;
                flag = true;
                index = j;
                break; } }
        return true; }
    bool Dalshe(int i, const string stroka) {    
        int index_mant;
        bool flag_dot = false;
        bool flag_mant = false;
        if (not mantissa(stroka, flag_mant, index_mant)) return false;
        else {   
            if (flag_mant)  {       
                string sub1 = stroka.substr(0, index_mant);      
                string sub2 = stroka.substr(index_mant+1);
                return (vetka1(flag_dot, i, sub1) and vetka2(sub2)); }  
            else return vetka1(flag_dot, i, stroka); } }
    bool proverka(const string stroka) {
        switch (stroka[1]) {        
        case '0' ... '9': return Dalshe(1, stroka); break;       
        default: return false; break; } }
    bool general_proverka(const string stroka) {
        switch (stroka[0]) {        
        case '-':
        case '+':       
            if (stroka.length() > 1) return proverka(stroka);
            else return false;
            break;     
        case '0' ... '9': return Dalshe(0, stroka); break;        
        default: return false; break; } }
    long double opros(char s) {    
        string argument;    
        do {
        cout << "Введите значение " << s << ": ";
        getline(cin, argument);
        if (argument.length() == 0) cout << "Вы не ввели значение!" << endl;    
        else if (not general_proverka(argument)) cout << "Некорректное значение!" << endl;          
        else break;
        } while (true);    
        return atof(argument.c_str()); } 
    int main() {    
        for (char i = 'a'; i < 'd'; i++) {       
            long double a = opros(i);
            cout << "Значение: " << a << " - корректное!" << endl; 
    } 
    }

    В общем, частично переписал некоторые куски кода. Отчасти тут предыдущая версия (с дублированием кода),
    что, конечно, не менее говно, но зато стало чуть читабельнее и работает без очевидных багов, как в исходной версии,
    например: если в исходной версии ввести - "3w", то значение отображалось, как корректное, что не верно.

    Westnik_Govnokoda, 22 Декабря 2020

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

    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
    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
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    #include <iostream>
    #include <string>
    using namespace std;
    long double opros(char s);
    bool proverka(string stroka, int i, bool (*func)(int, string, bool &));
    bool magia(string stroka, int i, bool (*func)(int, string, bool &));
    int main() {
        long double a;
        for (char i = 'a'; i < 'd'; i++) { a = opros(i);
            cout << "\n\nЗначение:\n" << a << " - корректное!\n";}}
    bool f_break(int i, string s, bool &z){
     return true;}
    bool sub_func_mantissa(int j, string stroka, bool &flag, int &index) {
        switch (stroka[j]) {
            case 'e':
            case 'E':
                if ((flag) or (j == (stroka.length() - 1))) return false;
                flag = true;
                index = j;
                break;
    } return true;
    }
    bool sub_func_vetka1(int j, string stroka, bool &flag) {
        if (stroka[j] == '.') {
            if (flag) return false;
            flag = true;
        }
        return true;
    }
    bool zikl_vetka(string stroka, int i, bool &flag, int &index, bool (*p_base_func)(int, string, bool &), char Drive) {
        int j = 1;
        bool flag_zikla = true;
        for (j += i; j < stroka.length(); j++) {
            if (not (Drive == 'M')) {
                if (not ((flag_zikla) or (p_base_func(j, stroka, flag)))) return false;
                flag_zikla = proverka(stroka, j, f_break);
            } else {
                if (not sub_func_mantissa(j, stroka, flag, index)) return false;
            }
        }
        return true;
    }
    bool vetka1(bool &flag, int i, string stroka) {
       int index;
        return zikl_vetka(stroka, i, flag, index, sub_func_vetka1, 'O');
    }
    bool vetka2_dalshe(int i, string stroka, bool &z) {
        bool flag = false;
        int index;
        return zikl_vetka(stroka, i, flag, index, f_break, 'O');
    }
    bool vetka2(string stroka) {
        return magia(stroka, 1, vetka2_dalshe);
    }
    bool mantissa(string stroka, bool &flag, int &index) {
        return zikl_vetka(stroka, -1, flag, index, f_break, 'M');
    }
    bool Dalshe(int i, string stroka, bool &z) {
        int index_mant;
        bool flag_dot = false;
        bool flag_mant = false;
        if (not mantissa(stroka, flag_mant, index_mant)) return false;
        else {
            if (flag_mant)  {
                string sub1 = stroka.substr(0, index_mant);
                string sub2 = stroka.substr(index_mant+1);
                return (vetka1(flag_dot, i, sub1) and vetka2(sub2));}
            else return vetka1(flag_dot, i, stroka);}}
    bool proverka(string stroka, int i, bool (*func)(int, string, bool &)) {
        cout << " ---> proverka ";
        bool z = true;
        switch (stroka[i]) {
        case '0': case '1': case '2':case '3':case '4': case '5': case '6': case '7': case '8': case '9': return func(i, stroka, z); break;
        default:
            return false;
            break;}}
    bool magia(string stroka, int i, bool (*func)(int, string, bool &)) { //3
        switch (stroka[0]) {
        case '-':
        case '+': if (stroka.length() > 1) return proverka(stroka, i, func);
            else return false; break;
        default:
            return proverka(stroka, 0, func); break;}}
    bool general_proverka(string stroka) {
        return magia(stroka, 1, Dalshe);}
    long double opros(char s) { //1
        string argument;
        cout << "\nВведите значение: " << s << ": ";
        getline(cin, argument);
        if (argument.length() == 0) {
            cout << "Вы не ввели значение!\n";
            return opros(s);
        }
        else if (not general_proverka(argument)) {
            cout << "\n\nНекорректное значение!\n";
            return opros(s);
        }
        else return strtold(argument.c_str(), nullptr);
    }

    Проверяет введённую строку на корректность соответствия символов,
    входящих в тип - long double. Если введённая строка корректна, приводит
    данную строку к типу - long double. Иначе - просит заново ввести значение.

    Westnik_Govnokoda, 21 Декабря 2020

    Комментарии (32)
  8. Python / Говнокод #27167

    +3

    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
    class Metapetuh(type):
        def __subclasscheck__(cls, C):
            return True
        def __instancecheck__(self, other):
            return True
    
    
    class Petuh(metaclass=Metapetuh):
        pass
    
    
    issubclass(object, Petuh)  # True
    isinstance(42, Petuh)      # True

    Мы зашкварили весь «Питон», и теперь все классы в нём — петухи.

    По просьбам трудящихся: https://govnokod.ru/27166#comment602776.

    gost, 19 Декабря 2020

    Комментарии (10)
  9. Kotlin / Говнокод #27165

    +1

    1. 1
    2. 2
    val users = listOf("foo", "bar")
    println(users.joinToString{","})

    MAKAKA, 15 Декабря 2020

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

    +3

    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
    &НаКлиенте
    Процедура ИмяФайла_ПроизводственнаяПрограммаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    	ДиалогВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    	ДиалогВыборФайла.Фильтр = "Файлы Microsoft Excel (*.xls, *.xlsx, *.xlsm)|*.xls; *.xlsx; *.xlsm|Все файлы (*.*)|*.*";
    	ДиалогВыборФайла.Показать(Новый ОписаниеОповещения("ИмяФайла_ПроизводственнаяПрограммаНачалоВыбораЗавершение", ЭтотОбъект, Новый Структура("ДиалогВыборФайла,ИмяФайла", ДиалогВыборФайла, Элемент.Имя)));
    КонецПроцедуры
    
    &НаКлиенте
    Процедура ИмяФайла_ПроизводственнаяПрограммаНачалоВыбораЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
        
        ДиалогВыборФайла = ДополнительныеПараметры.ДиалогВыборФайла;
        
        Если (ВыбранныеФайлы <> Неопределено) Тогда
            ЭтаФорма[ДополнительныеПараметры.ИмяФайла] = ДиалогВыборФайла.ПолноеИмяФайла;
        КонецЕсли;
    
    КонецПроцедуры

    Асинхронные вызовы??? Нее.... Не слышал...

    nytlenc, 15 Декабря 2020

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