1. C++ / Говнокод #10760

    −42

    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
    #include <iostream>
    
    using namespace std;
    int main()
     {
    for(int i = 0x1; 0x1 <= i; i++)
     {
    int a = 0x5;
    int b = 0xa;
     cin >> i;
    if(b || a)
     {
     a += 0x5;
     cout << "\n ";
     cout << "первое условие: ";
     cout << "\n ";
     cout << "переменная a = " << a;
     cout << "\n ";
     cout << "переменная b = " << --b + 0x5 - 0x9;
     cout << "\n";
    goto var;
     }
    else
     {
     var:
     cout << "\n ";
    cout << "второе условие: ";
     a = (0xa - 0x5);
     cout << "\n ";
     cout << "переменная a = " << a;
     cout << "\n ";
     cout << "переменная b = " << ++b;
     cout << "\n";
     }
    break;
     }
    
     system("pause");
    return 0;
     }

    Попросил чела решить классическую задачку - обменять значениями две переменные, не используя третьей

    telhar, 08 Июня 2012

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

    −125

    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
    // Преобразовывает геокоординаты из одной СК в другую
    //
    // КоординатыТочки 			- Структура	- координаты
    //
    // ПараметрыПреобразования	- Структура - параметры преобразования из одной системы коорднат в другую
    //
    // ВысотаТочки 				- Число		- выстоа точки над уровнем моря
    //
    // Точность					- Число		- точность возвращаемых координат
    //
    // Возвращаемое значение:
    //   Структура	- координаты
    //
    Функция ПреобразоватьКоординаты(КоординатыТочки, ПараметрыПреобразования, ВысотаТочки = 0, Точность = 6) Экспорт
    
    	ПП = ПараметрыПреобразования;
    	
    	ШиротаВГрадусах 	= КоординатыТочки.Широта;
    	ДолготаВГрадусах 	= КоординатыТочки.Долгота; 
    	
    	ЧислоПи = 3.14159265358979;
    	ЧислоУгловыхСекундВРадиане = 206264.8062;
    	
    	КвадратЭксцентриситетаИсходногоЭллипсоида 	= 2 * ПП.СжатиеИсходногоЭллипсоида - Pow(ПП.СжатиеИсходногоЭллипсоида , 2);
    	КвадратЭксцентриситетаКонечногоЭллипсоида 	= 2 * ПП.СжатиеКонечногоЭллипсоида - Pow(ПП.СжатиеКонечногоЭллипсоида , 2);
    	
    	СреднееБольшаяПолуось 				= (ПП.БольшаяПолуосьИсходногоЭллипсоида + ПП.БольшаяПолуосьКонечногоЭллипсоида) / 2;
    	СреднееКвадратЭксцентриситета 		= (КвадратЭксцентриситетаИсходногоЭллипсоида + КвадратЭксцентриситетаКонечногоЭллипсоида) / 2;
    	РазностьБольшихПолуосей 			= ПП.БольшаяПолуосьКонечногоЭллипсоида - ПП.БольшаяПолуосьИсходногоЭллипсоида;
    	РазностьКвадратовЭксцентриситетов 	= КвадратЭксцентриситетаКонечногоЭллипсоида - КвадратЭксцентриситетаИсходногоЭллипсоида;
    	
    	ШиротаВРадианах 	= ШиротаВГрадусах * ЧислоПи / 180;
    	ДолготаВРадианах 	= ДолготаВГрадусах * ЧислоПи / 180;
    	РадиусКривизныМеридианногоСечения 	= СреднееБольшаяПолуось * (1 - СреднееКвадратЭксцентриситета) 
    	/ Pow(1 - СреднееКвадратЭксцентриситета * Pow(Sin(ШиротаВРадианах) , 2) , 1.5);
    	РадиусКривизныПервогоВертикала 		= СреднееБольшаяПолуось * Pow(1 - СреднееКвадратЭксцентриситета 
    	* Pow(Sin(ШиротаВРадианах) , 2) , -0.5);
    
    	СмещениеШиротыВСекундах 	= ЧислоУгловыхСекундВРадиане / (РадиусКривизныМеридианногоСечения + ВысотаТочки) 
    	* (РадиусКривизныПервогоВертикала / СреднееБольшаяПолуось * СреднееКвадратЭксцентриситета * Sin(ШиротаВРадианах) 
    	* Cos(ШиротаВРадианах) * РазностьБольшихПолуосей + (Pow(РадиусКривизныПервогоВертикала , 2) / Pow(СреднееБольшаяПолуось , 2) + 1) 
    	* РадиусКривизныПервогоВертикала * Sin(ШиротаВРадианах) * Cos(ШиротаВРадианах) * РазностьКвадратовЭксцентриситетов / 2 
    	- (ПП.ЛинейноеСмещениеОсьАбсцисс * Cos(ДолготаВРадианах) + ПП.ЛинейноеСмещениеОсьОрдинат * Sin(ДолготаВРадианах)) 
    	* Sin(ШиротаВРадианах) + ПП.ЛинейноеСмещениеОсьАппликат * Cos(ШиротаВРадианах)) 
    	- ПП.УгловоеСмещениеОсьАбсцисс * Sin(ДолготаВРадианах) * (1 + СреднееКвадратЭксцентриситета * Cos(2 * ШиротаВРадианах)) 
    	+ ПП.УгловоеСмещениеОсьОрдинат * Cos(ДолготаВРадианах) * (1 + СреднееКвадратЭксцентриситета * Cos(2 * ШиротаВРадианах)) 
    	- ЧислоУгловыхСекундВРадиане * ПП.ДифференциальноеРазличиеМасштабов * СреднееКвадратЭксцентриситета * Sin(ШиротаВРадианах) 
    	* Cos(ШиротаВРадианах);
    	
    	СмещениеДолготыВСекундах 	= ЧислоУгловыхСекундВРадиане / ((РадиусКривизныПервогоВертикала + ВысотаТочки) 
    	* Cos(ШиротаВРадианах)) * (-ПП.ЛинейноеСмещениеОсьАбсцисс * Sin(ДолготаВРадианах) 
    	+ ПП.ЛинейноеСмещениеОсьОрдинат * Cos(ДолготаВРадианах)) + Tan(ШиротаВРадианах) * (1 - СреднееКвадратЭксцентриситета) 
    	* (ПП.УгловоеСмещениеОсьАбсцисс * Cos(ДолготаВРадианах) + ПП.УгловоеСмещениеОсьОрдинат * Sin(ДолготаВРадианах)) 
    	- ПП.УгловоеСмещениеОсьАппликат;
    
    	СмещениеВысоты 				= -СреднееБольшаяПолуось / РадиусКривизныПервогоВертикала * РазностьБольшихПолуосей 
    	+ РадиусКривизныПервогоВертикала * Pow(Sin(ШиротаВРадианах) , 2) * РазностьКвадратовЭксцентриситетов / 2 
    	+ (ПП.ЛинейноеСмещениеОсьАбсцисс * Cos(ДолготаВРадианах) + ПП.ЛинейноеСмещениеОсьОрдинат * Sin(ДолготаВРадианах)) 
    	* Cos(ШиротаВРадианах) + ПП.ЛинейноеСмещениеОсьАппликат * Sin(ШиротаВРадианах) 
    	- РадиусКривизныПервогоВертикала * СреднееКвадратЭксцентриситета * Sin(ШиротаВРадианах) * Cos(ШиротаВРадианах) 
    	* (ПП.УгловоеСмещениеОсьАбсцисс / ЧислоУгловыхСекундВРадиане * Sin(ДолготаВРадианах) 
    	- ПП.УгловоеСмещениеОсьОрдинат / ЧислоУгловыхСекундВРадиане * Cos(ДолготаВРадианах)) 
    	+ (Pow(СреднееБольшаяПолуось , 2) / РадиусКривизныПервогоВертикала + ВысотаТочки) * ПП.ДифференциальноеРазличиеМасштабов;
    	
    	Возврат Новый Структура("Широта,Долгота,Высота", Окр(ШиротаВГрадусах + СмещениеШиротыВСекундах / 3600, Точность), Окр(ДолготаВГрадусах + СмещениеДолготыВСекундах / 3600, Точность), Окр(ВысотаТочки + СмещениеВысоты,3));
    	
    КонецФункции

    Как ни странно, но работает)))

    TamerlanDE, 08 Июня 2012

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

    +153

    1. 1
    http://pastebin.com/KNAhNqJC

    В связи с тем что толстота освоила новую тактику, выпущена очередная версия говнофильтра™.

    * поддержка скрытия постов. Увы, выкинуть пост из выдачи совсем не получится, так что при флуд-атаках будут пустые страницы.
    * альтернативный "мягкий" метод скрытия комментариев - белое на белом.
    * переписано на jQuery, раз уж оно есть на уютненьком ГК.

    Как обычно, заточено под Firefox+GreaseMonkey.

    Vindicar, 08 Июня 2012

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

    +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
    public void set...(...){
      ...
      throw INVALID_PARAM;
    }
    public void set...(...){
      ...
      throw INVALID_PARAM;
    }
    public void set...(...){
      ...
      throw INVALID_PARAM;
    }
    
    ...
    private final static Exception INVALID_PARAM=new RuntimeException("Incorrect value!");

    3.14159265, 08 Июня 2012

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

    +148

    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
    var isScheduledRadio = $('#ContentPlaceHolder1_FormView1_ctl04_ctl00___IsScheduled_RadioButtonList1_0')[0],
                    isSitnGoRadio = $('#ContentPlaceHolder1_FormView1_ctl04_ctl00___IsScheduled_RadioButtonList1_1')[0],
                    startDateTextBox = $('#ContentPlaceHolder1_FormView1_ctl04_ctl07___StartDate_TextBox1')[0],
                    minPlayersTextBox = $('#ContentPlaceHolder1_FormView1_ctl04_ctl14___MinPlayers_TextBox1')[0],
                    maxPlayersTextBox = $('#ContentPlaceHolder1_FormView1_ctl04_ctl15___MaxPlayers_TextBox1')[0],
                    maxPlayersRequiredValidator = $('#ContentPlaceHolder1_FormView1_ctl04_ctl15___MaxPlayers_RequiredFieldValidator1')[0],
                    maxPlayersRow = $('#ContentPlaceHolder1_FormView1_ctl04_ctl15___MaxPlayers_TextBox1')
                        .parent()
                        .parent()[0],
                    endDateTextBox = $('#ContentPlaceHolder1_FormView1_ctl04_ctl08___EndDate_TextBox1')[0],
                    endDateRequiredValidator = $('#ContentPlaceHolder1_FormView1_ctl04_ctl08___EndDate_RequiredFieldValidator1')[0],
                    endDateRow = $('#ContentPlaceHolder1_FormView1_ctl04_ctl08___EndDate_TextBox1')
                        .parent()
                        .parent()[0],

    Увидел такой код с сорцах ASP.Net страницы

    krikz, 08 Июня 2012

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

    +65

    1. 1
    $new_array = explode('.sep.', implode('.sep', $old_array));

    Полезная функция с http://www.dzone.com/snippets/re-create-array-index

    Anon8yXubeVu, 08 Июня 2012

    Комментарии (21)
  7. Java / Говнокод #10628

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    // Handle Ctrl-1 ... Ctrl-9 keypresses
    if (!event.isSpecialKey() && event.isControlKey()) {
    	final int code = event.getKeyCode();
    	
    	if (code >= '1' && code <= '9') {
    		// Technically, the keyCode is not the ASCII code and should not
    		// be treated as such. Stupid JavaScript events. However, it
    		// *just so happens* that for number keys these codes match their
    		// ASCII codes. Luckily for us.

    someone, 08 Июня 2012

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

    +158

    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
    function check_email(_email)
    {
      var letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_0123456789 ";
      var i = 0, j = 0;
      var match = false;
    
      if (_email.length == 0) {
        return false;
      }
    
      for (i = 0; i < _email.length; i++)
      {
        match = false;
        for (j = 0; j < letters.length; j++)
        {
          if (_email.charAt(i) == letters.charAt(j))
          {
            match = true;
            break;
          }
        }
    
        if (!match)
        {
          if (_email.charAt(i) == '.') {
            match = true;
          }
        }
    
        if(!match) {
          break;
        }
      }
     
      if (i >= _email.length) {
        return false;
      }
     
      if (_email.charAt(i++) != '@') {
        return false;
      }
    
      var dotpassed = false;
    
      while (i < _email.length)
      {
        var match = false;
        for (j = 0; j < letters.length; j++)
        {
          if (_email.charAt(i) == letters.charAt(j))
          {
            match = true;
            break;
          }
        }
     
      if (!match)
      {
        if (_email.charAt(i) == '.')
        {
          dotpassed = true;
          match = true;
        }
      }
    
      if (!match) return false;
      i++;
      }
     if (dotpassed) return true;
     return false;
    }

    в недрах http://astro.smsonline.ru/

    Timon, 08 Июня 2012

    Комментарии (36)
  9. Pascal / Говнокод #10625

    +92

    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
    function THandlerServerCommands.CheckCommandOnDigits(const AComand: string;
      var AIndex: integer): Boolean;
    var
      i, k: Integer;
      Nn, Ln: integer;
      TempComand: string;
    begin
      Result := False;
      try
        TempComand := AComand;
        Ln := 1;
        Nn := 0;
        if FServerCommands.Find(TempComand, i) then
        begin
          AIndex := i;
          Result := True;
          Exit;
        end;
    
        for k := 1 to Length(AComand) do
        begin
          if not (AComand[k] in ['0'..'9']) then
            inc(Nn)
          else
          begin
            inc(Nn);
            if Nn > Ln then
            begin
              TempComand := '';
              TempComand := Copy(AComand, 1, Nn - 1);
              if FServerCommands.Find(TempComand, i) then
              begin
                AIndex := i;
                Result := True;
                Break;
              end;
            end;
            Ln := Nn + 1;
          end;
        end;
      except
        on e: Exception do
        begin
          Result := False;
          LogEx.Error('Ошибка в процедуре CheckCommandOnDigits c параметрами AComand = ' + AComand + ' ' + e.Message);
        end;
      end;
    end;

    Проверьте код на запашок

    DeadIgle, 08 Июня 2012

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

    −33

    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
    CArray <CStyle *, CStyle *> m_aStyles;
    
    ...
    
    #define RETURN_TRUE  return *bOk = TRUE, S_OK
    #define RETURN_FALSE return *bOk = FALSE, S_FALSE
    #define RETURN_ERROR(E) \
    	return LastErrorCode = (ERROR_##E), *bOk = FALSE, S_FALSE
    
    ...
    
    // Создание нового стиля (пустого)
    STDMETHODIMP CEffector::AddStyle(VARIANT_BOOL *bOk)
    {
    	AFX_MANAGE_STATE(AfxGetStaticModuleState())
    	
    	CStyle *pNew = new CStyle;
    	if (pNew)
    	{
    		INT n = m_aStyles.GetSize();
    		m_aStyles.Add(pNew);
    		if (m_aStyles.GetSize() <= n)
    			RETURN_ERROR(MEMORY);
    	}
    	else
    		RETURN_ERROR(MEMORY);
    	RETURN_TRUE;
    }
    
    ...
    
    // Получение кода ошибки
    STDMETHODIMP CEffector::GetErrorCode(long *p)
    {
    	AFX_MANAGE_STATE(AfxGetStaticModuleState())
    
    	*p = LastErrorCode;
    	LastErrorCode = ERROR_NONE;
    	return S_OK;
    }

    Мой первый COM-объект.
    1) Если при успешном возвращении метод должен возвращать S_OK, то при ошибке... S_FALSE, наверное.
    2) Только в Дельфи почему-то возвращается не HRESULT, а параметр, помеченный [out]. Поэтому пришлось добавить аргумент *bOk.
    3) Интересно, что делает CArray, когда кончается память.

    Steve_Brown, 08 Июня 2012

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