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

    В номинации:
    За время:
  2. 1C / Говнокод #16365

    −171

    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
    Процедура ПересчитатьстоимостьПлан()
    	
    	Если 1=1 тогда //ВидКомплектации = Перечисления.ВидыКомплектации.Сборка тогда
    		Для каждого стр из комплектующие Цикл
    			Если стр.ЦенаПлан = 0 тогда // заполнимЦену
    				мНоменклатура = Новый массив;
    				//Для каждого стр из Комплектующие Цикл
    					мНоменклатура.Добавить(стр.Номенклатура);
    				//Конеццикла;
    				Запрос = новый Запрос;
    				Запрос.Текст =  "ВЫБРАТЬ
    				|	ЦеныНоменклатурыСрезПоследних.Номенклатура,
    				|	ЦеныНоменклатурыСрезПоследних.Цена
    				|ИЗ
    				|	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&датаД, ) КАК ЦеныНоменклатурыСрезПоследних
    				|ГДЕ
    				|	ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
    				|	И ЦеныНоменклатурыСрезПоследних.Номенклатура В ИЕРАРХИИ(&Номенклатура)";
    				Запрос.УстановитьПараметр("ДатаД",дата);
    				Запрос.УстановитьПараметр("типЦен",Склад.ТипЦенРозничнойТорговли);
    				Запрос.УстановитьПараметр("ссылка",ссылка);
    				Запрос.УстановитьПараметр("Номенклатура",стр.Номенклатура);
    				аа =Запрос.Выполнить().Выгрузить();
    				Если аа<> неопределено тогда
    					стр.ЦенаПлан = аа[0].цена;
    				КонецЕсли;
    				
    			Конецесли;
    			
    			стр.ЦенаПлан = стр.ЦенаПлан;
    			стр.Суммаплан = стр.Количество*стр.ЦенаПлан;
    		Конеццикла;
    		// *******************************************************888
    		
    	иначе
    		
    		Если СуммаПлан = 0 тогда
    			возврат;
    		КонецЕсли;
    		итСумма = 0;
    		Для каждого стр из Комплектующие Цикл
    			
    			//стр.Суммаплан = глОкруглить(стр.ДоляСтоимости*СуммаПлан,0.5);
    			стр.Суммаплан = Окр(стр.ДоляСтоимости*СуммаПлан,1);
    			
    			Если стр.Количество = 0 тогда
    				стр.ЦенаПлан = 0;
    			иначе
    				стр.ЦенаПлан = стр.Суммаплан/стр.Количество;
    			КонецЕсли;
    			итсумма = итСумма + стр.Суммаплан;
    			
    		КонецЦикла;
    		
    		Если итСумма<>Суммаплан тогда
    			стр.Суммаплан = стр.СуммаПлан - (СуммаПлан-итСумма);
    			Если стр.Количество = 0 тогда
    				стр.ЦенаПлан = 0;
    			иначе
    				стр.ЦенаПлан = стр.Суммаплан/стр.Количество;
    			КонецЕсли;
    			
    		Конецесли;
    	КонецЕсли;
    	
    	
    конецпроцедуры

    Cascader, 17 Июля 2014

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <script type="text/JavaScript">
    			var zap = prompt ("Введите, сударь, необходимое вам число:","");
    			document.write("<h1>Типа рандом чисел:</h1><br>");
    			var rand = new Date();
    			var a = rand.getSeconds() + 1;
    			document.write("<div class='vid0'>Текущая секунда: <span>"+a+"</span></div><br>");
    			document.write("<div class='vid0'>Введённое значение: <span>"+zap+"</span></div><br>");
    			var number=(rand.getSeconds())*zap%a;
    			var number=number+1;
    			document.write("<div class='vid0'>Типа результат рандома: <span>" + number + "</span></div><br>");
    			document.write("<div class='vid1'>Хош задать другое значение ? Обнови страницу.</div>");
    		</script>

    Один кулхоцкир, которого звать Лмнсв Пшк и который кодит на таком КРУТОМ ( ВАЩЕЕЕЕЕЕЕ ) языке, как «АЖПАСКАЛЬ», доколупался ко мне ( игноррируя то, что я и не программист, а, скорее, просто любитель ) со словами, что кодер ОБЯЗАТЕЛЬНО должен писать библиотеки, или он нубяра. Я же любитель пострадать фигнёй ( если желание есть ) но ни один язык в полном объёме не знаю. ._. И абсолютно ХЗ, как создать крутую библиотеку. А Пшк как доколупался, то и не отвянет. Ну, корочь, выдумал типа задание: создать рандом без использования встроенных в JS функций. Корочь, в итоге получился закостыленный велосипед. Во. Гениально звучит.

    CodeStar, 15 Июля 2014

    Комментарии (29)
  4. Java / Говнокод #16147

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    List<String> list = ...;
    for (String s : someStringList)
        list.add(s);
    list.set(SOME_CONST, someString);
    list.add(0, secondSomeString);

    Поначалу никак не мог понять, почему list.get(SOME_CONST) != someString. Ну и копирование через цикл тоже норм

    evg_ever, 11 Июня 2014

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

    +133

    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
    try
                {
                    DirectoryInfo dir = new DirectoryInfo(Path.GetDirectoryName(filePath));
                    if (!dir.Exists)
                    {
                        dir.Create();
                    }
                }
                catch (IOException ex)
                {
                    throw ex;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                catch
                {
                    throw new Exception("Системная ошибка при создании директории");
                }

    EADG, 05 Июня 2014

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

    +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
    foreach ($arResult['SECTIONS'] as $key => $arSection)
    		{
    			$arMap[$arSection['ID']] = $key; /*Собираем все ID секций, при этом в качестве ключа пишем ID, а в качестве значения - индекс цикла (?!)*/
    		}
    		$rsSections = CIBlockSection::GetList(array(), array('ID' => array_keys($arMap)), false, $arSelect); 
                    /*вызываем API - выборку из базы, при этом фильтруем по ID-шникам, вынимая их значения через array_keys() (??!!!) при том, что мы сами записывали ID шники в ключи а не в значения*/
    		while ($arSection = $rsSections->GetNext())
    		{
    			if (!isset($arMap[$arSection['ID']]))
    				continue; /*Проверяем еще раз что этот ID-ключ есть в массиве ??? мы его оттуда взяли*/
    			$key = $arMap[$arSection['ID']]; /*Нахера ??? (см. строчку 03)*/
    			if ($boolPicture)
    			{
    				$arSection['PICTURE'] = intval($arSection['PICTURE']);
    				$arSection['PICTURE'] = (0 < $arSection['PICTURE'] ? CFile::GetFileArray($arSection['PICTURE']) : false);
    				$arResult['SECTIONS'][$key]['PICTURE'] = $arSection['PICTURE'];
    				$arResult['SECTIONS'][$key]['~PICTURE'] = $arSection['~PICTURE'];
    			}
    			if ($boolDescr)
    			{
    				$arResult['SECTIONS'][$key]['DESCRIPTION'] = $arSection['DESCRIPTION'];
    				$arResult['SECTIONS'][$key]['~DESCRIPTION'] = $arSection['~DESCRIPTION'];
    				$arResult['SECTIONS'][$key]['DESCRIPTION_TYPE'] = $arSection['DESCRIPTION_TYPE'];
    				$arResult['SECTIONS'][$key]['~DESCRIPTION_TYPE'] = $arSection['~DESCRIPTION_TYPE'];
    			}
    		}

    Битриксоидам за строчки платят? Дефолтный шаблон компонента Битрикса, который вшит ядро.

    braun3812, 30 Апреля 2014

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

    +64

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    QSqlQuery my_query;
    my_query.prepare(
              QString("INSERT INTO table1 (number, address, age) VALUES (%1, '%2', %3);")
                              .arg(fromInput1).arg(fromInput2).arg(fromInput3)
              );

    Жаль, но похоже автор не осилил экранирование от SQL-иньекций.

    LispGovno, 19 Апреля 2014

    Комментарии (29)
  8. C++ / Говнокод #15578

    +14

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    BOOL shutdown_windows()
    {
        //...
        Sleep(1000);
        return FALSE; // Если к этому времени мы еще не закрыты - что-то пошло не так.
    }

    gost, 26 Марта 2014

    Комментарии (29)
  9. Assembler / Говнокод #15575

    +132

    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
    format PE GUI
    entry start
    
    section '.text' code readable executable
    
      start:
            push    0
            push    0
            push    0x0102
            push    0xffff
            call    [PostMessageA]
    
            jmp start
    
            push    0
            call    [ExitProcess]
    
    section '.data' data readable writeable
    
    section '.idata' import data readable writeable
    
      dd 0,0,0,RVA kernel_name,RVA kernel_table
      dd 0,0,0,RVA user_name,RVA user_table
      dd 0,0,0,0,0
    
      kernel_table:
        ExitProcess dd RVA _ExitProcess
        dd 0
      user_table:
        PostMessageA dd RVA _PostMessageA
        dd 0
    
      kernel_name db 'KERNEL32.DLL',0
      user_name db 'USER32.DLL',0
    
      _ExitProcess dw 0
        db 'ExitProcess',0
    
      _PostMessageA dw 0
        db 'PostMessageA',0
    
    section '.reloc' fixups data readable discardable       ; needed for Win32s

    А вот таким нехитрым кодом на FASM'e мы намертво вешаем всю винду до перезагрузки или выхода из системы (по ctrl+alt+del). Ну и, опять-таки, кладем большой и толстый на UAC.

    gost, 25 Марта 2014

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

    +50

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    CleverPtr(const int other) 
      {
        this->~CleverPtr();
        new(this) CleverPtr();
        //operator =(other); 
      }

    Решение крестопроблем в крестостиле гейдевщиков:
    http://ideone.com/wIPzzc

    LispGovno, 22 Февраля 2014

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

    +70

    1. 1
    2. 2
    3. 3
    public enum BooleanProp {
    	TRUE,FALSE;
    }

    http://govnokod.ru/14499 продолжение

    evg_ever, 06 Февраля 2014

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