1. Си / Говнокод #24690

    +4

    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
    DWORD NEAR _fastcall RgbCompare(RGBQUAD rgb1, RGBQUAD rgb2)
    {
        DWORD sum=0;
    
        //
        //  lets do some majic shit so the compiler generates "good" code.
        //
    #define SUMSQ(a,b)                          \
        if (a > b)                              \
            sum += (WORD)(a-b) * (WORD)(a-b);   \
        else                                    \
            sum += (WORD)(b-a) * (WORD)(b-a);
    
        SUMSQ(rgb1.rgbRed,   rgb2.rgbRed);
        SUMSQ(rgb1.rgbGreen, rgb2.rgbGreen);
        SUMSQ(rgb1.rgbBlue,  rgb2.rgbBlue);
    
        return sum;
    }

    Как сложно, оказывается, посчитать (a-b)² на Си. Нужно каждый раз писать макрос для этой операции...

    CCAHA9I_CPAHIHA, 30 Августа 2018

    Комментарии (26)
  2. PHP / Говнокод #24689

    −1

    1. 1
    define('DIR', pathinfo($_SERVER['SCRIPT_FILENAME'], PATHINFO_DIRNAME) . '/');

    phpMASTER666, 30 Августа 2018

    Комментарии (0)
  3. C++ / Говнокод #24688

    0

    1. 1
    2. 2
    #define ONE_GB 1024
    #define FIVE_GB 5115

    Написано в очень известной Калифорнийской конторе

    Starl1ght, 30 Августа 2018

    Комментарии (3)
  4. Python / Говнокод #24687

    −2

    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
    def printlen(x):
        print(len(x))
    
    def argslist(x):
        return list(x.args)
    
    def add(value_error, arg):
        raise Exception(*value_error, *arg)
    
    def fibonacci(a, b, x):
        try:
            assert b<x
            printlen(b)
            try:
                add(a,b)
            except Exception as e:
                fibonacci(argslist(e), a, x)
        except AssertionError as e:
            print(e)
    
    threshold = 1000
    fibonacci([[]],[[]],[[]]*threshold)

    Выводит числа Фибоначчи от 1 до threshold.
    Если убрать строку "assert b<x", то python.exe займёт всю оперативку, потому что зачем лимит вложенности исключений?

    tungmetla, 30 Августа 2018

    Комментарии (8)
  5. PHP / Говнокод #24686

    −6

    1. 1
    2. 2
    $haystack
    $needle

    Что за тупые названия аргументов?

    guestinxo, 30 Августа 2018

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

    −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
    /**
     * Class Iin
     * @package App\Classes\Support
     *
     * Класс проверки иин для казахстана
     *
     * ИИН содержит 12 цифр из которых
     * первые 6 цифр - дата рождения [гг-мм-дд]
     * 7-я цифра - пол и век (нечетные цифры - муж, четные женский)
     *      1,2 - 19 век
     *      3,4 - 20 век
     *      5,6 - 21 век
     *      7,8,9,0 - зарезирвированны на будущее
     * 8 - 11 регистрационный гос номер
     * и 12 - контрольный разряд
     *
     * Иин проверяесться по контрольной сумме через две последовательности
     * Сперва каждая цифра иин, кроме последней умножается на цифру из 1-й последовательности и суммируется
     * Результат делиться на 11 и если он от 0 до 9 и соотвествует 12-й цифре иин то иин верен,
     * если результат 0 - иин не верен, если результат 10 - то проверка продолжается по второй последовательности
     * Если результат проверки по всторой последовательности от 1 до 9 и равен 12-й цифре иин - то иин верен иначе проверка
     * заканчивается и иин не верный.
     *
     * UPD - Хьюстон у нас проблемы - некоторые безответственные работники цонов делают неверные иин с 7,8 и 9 цифрой для 22 и 23 века.
     * В итоге люди для системы как из 23 века а сами из 21 или 20 - так что пока не настал 22 и 23 век их разряды будут для 20 века.
     * Не люблю костыли но работники цонов такие работники - а менеджеры и клиенты недовольны, так что придеться
     *

    https://habr.com/company/ua-hosting/blog/420091/

    guestinxo, 29 Августа 2018

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

    +3

    1. 1
    Почему Application стал так часто падать???

    А ещё csrf eггог-и nocTo9lHHo

    kir_rik, 29 Августа 2018

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

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    def spam(low, up):
        for eggs in range(low, up+1):
            if str(eggs) in str(eggs**2):
                print(str(eggs) + " is in " + str(eggs**2) + ".")

    Проверяет, есть ли стринг числа n в стринге числа n**2.

    shite, 29 Августа 2018

    Комментарии (12)
  9. Си / Говнокод #24681

    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
    Ну и полный пример:
    
    #include "stdafx.h"
    #include "windows.h"
    #include "iostream.h"
    #include "process.h"			// специально для потока
    
    void  fThredFunct1(void* pv);		// декларация функции потока
    __declspec(thread) DWORD dwTlsIndex;		// локальная статическая функция для потока
    
    void main()
    {
    
    	ULONG hThread1 = 0;		// Идентификатор потока 1
    	ULONG hThread2 = 0;		// Идентификатор потока 2
    	//unsigned long _beginthread( void( __cdecl *start_address )( void * ),
    	//			unsigned stack_size, void *arglist );
    	hThread1 = _beginthread(fThredFunct1,0,NULL);	// создали первый поток
    	if (hThread1==-1)
    		cout << "Error create thread" << endl; 
    	hThread2 = _beginthread(fThredFunct1,0,NULL);	// создали второй поток
    	if (hThread1==-2)
    		cout << "Error create thread" << endl; 
    	Sleep(2000);				// ждем 
    }
    
    void fThredFunct1(void* pv)			// реализация функции потока
    {
    	dwTlsIndex=TlsAlloc();		// Запросить индекс
    	if (dwTlsIndex==-1)		// проверить на ошибку
    	{
    		cout << "Error TlsAlloc " << endl;
    		return;
    	}
    	cout << dwTlsIndex << endl;
    	Sleep(1000);
    
    	if ( TlsFree( dwTlsIndex)==0 )	// освободить индекс
    	{
    		cout << "Error TlsFree" << endl;
    		return;
    	}
    }

    Многопоточное говно
    Гуглояндексится.

    kir_rik, 29 Августа 2018

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

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    #include <set>
    #include <algorithm>
    
    bool overlap(const std::set<int>& s1, const std::set<int>& s2)
    {
        for( const auto& i : s1) {
            if(std::binary_search(s2.begin(), s2.end(), i))
                return true;
        }
        return false;
    }

    я зделял

    https://stackoverflow.com/a/29421606/1683138
    -- https://en.cppreference.com/w/cpp/container/set
    iterator Constant BidirectionalIterator

    roman-kashitsyn, 28 Августа 2018

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