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

    −102

    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
    Процедура СортировкаСписка(Список) 
    	
    	Перем лСредний;  
    	
    	лЛевый= СоздатьОбъект("СписокЗначений");
    	лПравый = СоздатьОбъект("СписокЗначений");
    	
    	Если Список.РазмерСписка()>1 Тогда  
    		
    		лРазмерСписка = Список.РазмерСписка();
    		лПозицияСреднего = Цел(лРазмерСписка/2);
    		лСреднее = Список.ПолучитьЗначение(лПозицияСреднего);
    		
    		Для й = 1 По лРазмерСписка Цикл
    			
    			Если й<>лПозицияСреднего Тогда
    				
    				лПроверяемоеЗначение =  Список.ПолучитьЗначение(й);
    				
    				Если лПроверяемоеЗначение<лСреднее Тогда
    					
    					лЛевый.ДобавитьЗначение(лПроверяемоеЗначение);
    					
    				ИначеЕсли лПроверяемоеЗначение>лСреднее Тогда
    					
    					лПравый.ДобавитьЗначение(лПроверяемоеЗначение);
    					
    				КонецЕсли;
    				
    			КонецЕсли;
    			
    		КонецЦикла;
    		
    		СортировкаСписка(лЛевый);
    		СортировкаСписка(лПравый);
    		
    		Список.УдалитьВсе();
    		
    		Для й = 1 По лЛевый.РазмерСписка() Цикл
    			Список.ДобавитьЗначение(лЛевый.ПолучитьЗначение(й));
    		КонецЦикла; 
    		
    		Список.ДобавитьЗначение(лСреднее); 
    		
    		Для й = 1 По лПравый.РазмерСписка() Цикл
    			Список.ДобавитьЗначение(лПравый.ПолучитьЗначение(й));
    		КонецЦикла;
    		
    	КонецЕсли;
    	
    	
    КонецПроцедуры
    
    Процедура Выполнить()
    	
    	ОтсортированныйСписок = СоздатьОбъект("СписокЗначений");
    	
    	СписокЗначений = СоздатьОбъект("СписокЗначений");   
    	
    	СписокЗначений.ДобавитьЗначение(2);
    	СписокЗначений.ДобавитьЗначение(7);
    	СписокЗначений.ДобавитьЗначение(15);
    	СписокЗначений.ДобавитьЗначение(16);
    	СписокЗначений.ДобавитьЗначение(20);
    	СписокЗначений.ДобавитьЗначение(21);
    	СписокЗначений.ДобавитьЗначение(3);
    	СписокЗначений.ДобавитьЗначение(5);
    	СписокЗначений.ДобавитьЗначение(4);
    	СписокЗначений.ДобавитьЗначение(14);
    	СписокЗначений.ДобавитьЗначение(12);
    	СписокЗначений.ДобавитьЗначение(13);
    	СписокЗначений.ДобавитьЗначение(11);
    	СписокЗначений.ДобавитьЗначение(19);
    	СписокЗначений.ДобавитьЗначение(1);
    	СписокЗначений.ДобавитьЗначение(8);
    	СписокЗначений.ДобавитьЗначение(6);
    	СписокЗначений.ДобавитьЗначение(17);
    	СписокЗначений.ДобавитьЗначение(9);
    	СписокЗначений.ДобавитьЗначение(10);
    	СписокЗначений.ДобавитьЗначение(18);
    	
    	СортировкаСписка(СписокЗначений);
    	
    	ВыбранноеЗначение = 0;
    	СписокЗначений.ВыбратьЗначение(ВыбранноеЗначение);
    	
    КонецПроцедуры

    informatikmarazmatik, 16 Мая 2012

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

    +61

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    class admin_payment {
        // ...
    }
    
    $m = 'admin_payment';
    $$m = new $m();
    $m->get();

    отборно.

    shmaltorhbooks, 16 Мая 2012

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

    −119

    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
    Функция ЧекМайл(Майл) 
        
    	Перем Чек;
    	
    	Если Найти(Майл,"@mail.ru")<>0 Тогда
    		
    		Чек = 0; 
    		
    	Иначе	
    		
    		Чек = 1;
    		
    	КонецЕсли;
    	
    	Возврат Чек;
    	
    КонецФункции
    
    ...
    	  Если ЧекМайл("[email protected]") = 0 Тогда
    	  	 Предупреждение("Ой! Что-то пошло не так!");
    	  	 Предупреждение("Не беспокойтесь, это наша ошибка. Мы уже знаем о ней и примем меры к ее исправлению!");
    	  	 СтатусВозврата(0);
    	  	 Возврат;
    	  КонецЕсли;

    могли и предупредить ...

    informatikmarazmatik, 16 Мая 2012

    Комментарии (10)
  4. Си / Говнокод #10294

    +138

    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
    typedef int32_t wl_fixed_t;
    
    //было:
    static inline double wl_fixed_to_double(wl_fixed_t f)
    {
      return (double) f / 256.0;
    }
    
    //стало:
    static inline double wl_fixed_to_double(wl_fixed_t f)
    {
      union {
        double d;
        int64_t i;
      } u;
    
      u.i = ((1023LL + 44LL) << 52) + (1LL << 51) + f;
    
      return u.d - (3LL << 43);
    }

    Заоптимизировали...

    rat4, 16 Мая 2012

    Комментарии (23)
  5. JavaScript / Говнокод #10293

    +176

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function getAnchor(link){
    	var url=( (!link) ? window.location : link).toString();
    	var idx = url.indexOf("#");
    	return (idx != -1 ? url.substring(idx+1) : '');	
    }
    function setAnchor(anchor){
    	var url=(window.location).toString();
    	var idx = url.indexOf("#");
    	return ( window.location= 
    		(idx != -1 ? url.substring(0,idx+1) : url+'#')+anchor
    	);
    }

    3.14159265, 16 Мая 2012

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

    −115

    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
    Тз = СоздатьОбъект("ТаблицаЗначений");
    	Тз.НоваяКолонка("Число");
    	Для й=1 По 100 Цикл
    		Тз.НоваяСтрока();
    		Тз.Число = й;
    	КонецЦикла;
    	КоличествоСтрокТз = Тз.КоличествоСтрок();
    	Для й=-КоличествоСтрокТз По -1 Цикл
    		ЗначениеИзТз = Тз.ПолучитьЗначение(-й,"Число");
    		ПроверяемоеЗначение = ЗначениеИзТз/2-Цел(ЗначениеИзТз/2);
    		Если ПроверяемоеЗначение <> 0 Тогда
    			Тз.УдалитьСтроку(-й);
    		КонецЕсли;
    	КонецЦикла;
    	Тз.ВыбратьСтроку();

    Четные числа до 100

    informatikmarazmatik, 16 Мая 2012

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

    +86

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    protected void ListViewAlerts_ItemCommand(object sender, ListViewCommandEventArgs e)
            {
                int commandArgument = e.Item.DataItemIndex;
                var listViewDataItem = (HiddenField)ListViewAlertRegistry.Items[commandArgument].Controls[3];
                int id = Convert.ToInt32(listViewDataItem.Value);
    .....
            }

    Из рабочего проекта. Новый способ узнать id item'а listview. Видимо свойство DataKeyNames кодеру незнакомо - id берет из hiddenfield, причем выбирает этот hiddenfield не по его id, а по позиции контрола по счету в строке. Добавляем еще один элемент в listview, и соответственно метод валится.

    _vinka, 16 Мая 2012

    Комментарии (0)
  8. Objective C / Говнокод #10290

    −1065

    1. 1
    @property (nonatomic, retain) NSString *totalCount;

    Чуть глаза от такого не лопнули

    QuickNick, 16 Мая 2012

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

    −19

    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
    TElement* get(void)
    {
    	TElement* result = this->allocateBuffer();
    	if (result!=NULL)
    	{
    		try
    		{
    			::new(result) TElement; //Вызов конструктора.
    		}catch(...)//Получили исключение в конструкторе конструироваемого объекта.
    		{
    			this->deallocateBuffer(result);
    			throw;
    		};
    	};
    	return result;
    };
    
    template<class TArg1>
    TElement* get(TArg1 arg1)
    {
    	TElement* result = this->allocateBuffer();
    	if (result!=NULL)
    	{
    		try
    		{
    			::new(result) TElement(arg1); //Вызов конструктора.
    		}catch(...)//Получили исключение в конструкторе конструироваемого объекта.
    		{
    			this->deallocateBuffer(result);
    			throw;
    		};
    	};
    	return result;
    };
    
    //...
    
    template<class TArg1, class TArg2, class TArg3, class TArg4, class TArg5, class TArg6>
    TElement* get(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6)
    {
    	TElement* result = this->AllocateBuffer();
    	if (result!=NULL)
    	{
    		try
    		{
    			::new(result) TElement(arg1, arg2, arg3, arg4, arg5, arg6); //Вызов конструктора.
    		}catch(...)//Получили исключение в конструкторе конструироваемого объекта.
    		{
    			this->DeallocateBuffer(result);
    			throw;
    		};
    	};
    	return result;
    };

    Хотя этот баян мы уже видели на Action Script.

    Говногость, 16 Мая 2012

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

    +91

    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
    private void changeTabItem(object parameter)
            {
                if (SelectedTabIndex == SelectedTabIndexOld) return;
                if (SelectedTabIndex != 0)
                {
                    if ([надо сохранить])
                    {
                        if ([попытка сохранить удалась]) SelectedTabIndexOld = SelectedTabIndex;
                        else SelectedTabIndex = 0;
                    }
                    else SelectedTabIndexOld = SelectedTabIndex;
    
                    if (SelectedTabIndex == 1)
                        [обновить древо]
    
                }
                else if (SelectedTabIndex != 1)
                {
                    if ([надо сохранить])
                    {
                        if ([попытка сохранить удалась]) SelectedTabIndexOld = SelectedTabIndex;
                        else SelectedTabIndex = 1;
                    }
                    else SelectedTabIndexOld = SelectedTabIndex;
                    if (SelectedTabIndex == 0)
                        [обновить древо]
                }
            }

    Раскопки продолжаются. Теперь Вашему вниманию предлагается "женское" переключение вкладок, работающее "от противного". В данном случае две вкладки, а теперь представим что надо добавить ещё пару. =)

    DukeGonzo, 16 Мая 2012

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