1. 1C / Говнокод #19392

    −99

    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
    Если Сальдо = Перечисления.ДаНет.Да И Кредит = Перечисления.ДаНет.Да Тогда
                
    	СуммаКОплате   =  Строка.Сальдо +  Строка.Начислено +  Строка.Разовые - Строка.Оплата - Льгота;
    	Строка.Коплате = СуммаКОплате;
                
    ИначеЕсли Сальдо = Перечисления.ДаНет.Нет И Кредит = Перечисления.ДаНет.Да Тогда
                
    	СуммаКОплате   = Строка.Начислено + Строка.Разовые - Строка.Оплата - Льгота - ?(Строка.Сальдо < 0, Строка.Сальдо * -1, 0);
    	Строка.Коплате = СуммаКОплате;
                
    ИначеЕсли Сальдо = Перечисления.ДаНет.Да И Кредит = Перечисления.ДаНет.Нет Тогда
                
    	СуммаКОплате = ?(Строка.Сальдо > 0, Строка.Сальдо , 0) +  Строка.Начислено + Строка.Разовые - Строка.Оплата  - Льгота;
    	Строка.Коплате = СуммаКОплате;
                
    ИначеЕсли Сальдо = Перечисления.ДаНет.Нет И Кредит = Перечисления.ДаНет.Нет Тогда
                
    	СуммаКОплате = Строка.Начислено + Строка.Разовые - Льгота;
    	Строка.Коплате = СуммаКОплате;
                
    КонецЕсли;

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

    ivan_0110, 03 Февраля 2016

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    bool matchingNumerals(int num)
    {
    QString str = QString("%1").arg(num);
        for (int i = 0; i < 10; i++)
            if (str.split(QString("%1").arg(i)).size() > 2)
                return true;
        return false;
    }

    Функция, определяющая, есть ли в числе одинаковые цифры на великой могучей Qt.

    Mongrell, 03 Февраля 2016

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

    +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
    // Определение метода  Q3CanvasText::text() 
    
    class Q_COMPAT_EXPORT Q3CanvasText : public Q3CanvasItem {
    //...
      QString text() const;
    //...
    };
    
    // Далее уже в "моем" классе строчка:
    class CDevice : public CDiagramObject {
    // ...
    private:
      Q3CanvasText * m_pTitle;
    //....
    public:
      const QString & stitle() const { return m_pTitle->text(); } // обратим вниманиена возвращаемый тип
    // ...
    };
    
    // Еще один класс и отображение тултипа при наведении
    void CDiagramView::showToolTip( const QPoint & p, CDevice * d ) {
    
        if( d ) {
            QString tmp;
            if( d->group() == QString::null || d->group() == "" )
                tmp = ( d->stitle().left( d->stitle().indexOf(":") ) );  // вылетало здесь : d->stitle().indexOf(":") segmentation fault
            else
                tmp = d->group();
    //.....
            }
        }

    Нашел магию!

    Юзаю Qt 4.8.6 в Linux
    Под Виндой новая версия перепиливаемой проги компилится и работает,
    под Линухом новая версия вылетает, старая робит.

    Соль в том, что метод stitle() по факту возвращает ссылку на копию текста возвращенного Q3CanvasText::text(), которая внезапно удаляется при выходе из метода.

    Но почему тот же gcc под виндой скомпилил это без багов?

    OlegUP, 03 Февраля 2016

    Комментарии (11)
  4. PHP / Говнокод #19389

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <?php
    	function generate_number_part($length=2) { 
    		$password = substr(preg_replace("/[^0-9]/", "", crypt(time())) .
    			preg_replace("/[^0-9]/", "", crypt(time())) .
    			preg_replace("/[^0-9]/", "", crypt(time())),
    			0, $length);
    			return $password;
    	}

    Сгенерировать пароль из ровно $length цифр... или меньше

    ruslanbes2, 03 Февраля 2016

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

    −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
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    float PriceByProductID(string product_id)
    	{
    		if(product_id == RUBY_PILE)
    			return 1.99f;
    		else if (product_id == RUBY_BAG)
    			return 4.99f;
    		else if (product_id == RUBY_SACK)
    			return 9.99f;
    		else if (product_id == RUBY_BOX)
    			return 19.99f;
    		else if (product_id == RUBY_CHEST)
    			return 39.99f;
    		else if (product_id == RUBY_TRUNK)
    			return 99.99f;
    		else if (product_id == GOLD_PILE)
    			return 0.99f;
    		else if (product_id == GOLD_BAG)
    			return 2.99f;
    		else if (product_id == GOLD_SACK)
    			return 7.99f;
    		else if (product_id == GOLD_BOX)
    			return 14.99f;
    		else if (product_id == GOLD_CHEST)
    			return 29.99f;
    		else if (product_id == GOLD_TRUNK)
    			return 79.99f;
    		return 0f;
    	}

    kschingiz, 03 Февраля 2016

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

    +9

    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
    int naive_show_int(int x) {
        char buf[32];
        char *p = buf + sizeof(buf);
        *--p = 0;
        int negative = 0;
        if (x < 0) {
            x = -x;
            negative = 1;
        }
        while (x > 0) {
            if (x <= 0)
                return -1;
            int digit = '0' + x % 10;
            if (digit < '0' || digit >= '9')
                return -1;
            *--p = digit;
            x /= 10;
        }
        if (negative)
            *--p = '-';
        puts(p);
        return 0;
    }

    Допустишь один UB - ничто уже не спасёт твою прогу...

    http://ideone.com/EFGoBi

    bormand, 02 Февраля 2016

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

    −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
    #include <iostream>
    using namespace std;
    
    auto print(auto arg)
    {
    	return (cout<<arg);
    	//return cout;
    }
    auto print(auto arg, auto... args)
    {
    	return (print(args...)<<arg);
    	//return cout;
    }
    
    int main() {
    	print(1,"ko")<<"ok";
    	return 0;
    }

    https://ideone.com/YvoHi3
    ГЦЦ так и не научился в возвращаемые значения с авто

    laMer007, 02 Февраля 2016

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

    +9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // получаем текущую дату (день)
    $now_day = $mysqli->query('SELECT DATE(NOW()) now');
    $now_day = $now_day->fetch_assoc();              //получаем текущий день
    $now_day = $now_day['now'];                        //в виде строки
    $now_day = '2016-01-14';

    Кастанедовский код.

    Ja_govnokoder, 02 Февраля 2016

    Комментарии (9)
  9. PHP / Говнокод #19380

    0

    1. 1
    2. 2
    3. 3
    4. 4
    $data = array_slice(array_filter(explode("|", trim($data))), 0, 2000);
    if (count(array_filter(explode("|", trim($data)))) > 2000) {
        mail('****@gmail.com', '**** too much orders', count(array_filter(explode("|", trim($data)))));
    }

    Не знаю, как это прокомментировать. Видимо, индус не хочет получать сообщения на почту.

    jbot, 02 Февраля 2016

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

    −19

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Запрос = Новый Запрос;
    	Запрос.Текст = "ВЫБРАТЬ
    		|	ЗаказПоставщику.Ссылка КАК Ссылка
            |ИЗ
            |	Документ.ЗаказПоставщику КАК ЗаказПоставщику
            |ГДЕ
    		|	ЗаказПоставщику.EmeWmsЭкспорт И						
    		|	НЕ ЗаказПоставщику.ПометкаУдаления";

    yaguarvl, 01 Февраля 2016

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