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

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

    +135

    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
    /// <summary>
    /// Converts to number.
    /// </summary>
    /// <param name="value">The value.</param>
    /// <returns>System.String.</returns>
    public static string convertToNumber(string value) {
        string mvalue = "0";
        string wildchars = @"~!@#$%^&*()_+={}[]|\/?><,`:;'";
        bool chknegative = false;
    	if (value == null)
    		value = "";
        try {
            if (value == "") {
                mvalue = "0";
            }
            for (var i = 0; i < wildchars.Length; i++) {
                string wildchar = wildchars.Substring(i, 1);
                //chknegative = value.Contains(wildchar);
                mvalue = value.Replace(wildchar, "");
                value = mvalue;
            }
    
    
            chknegative = value.Contains("-");
    
            if (chknegative) {
                mvalue = value.Replace("-", "");
                mvalue = "-" + mvalue;
            }
            else {
                mvalue = value;
            }
        }
        catch {
            mvalue = "0";
        }
        return mvalue;
    }

    barsv, 29 Декабря 2014

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

    −404

    1. 1
    UIImageView *footerWhite1PxLineThatOnlyAndersWillNotice = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sidebar_line_white"]];

    ох уж этот Андерс!

    besprincypniycentner, 23 Декабря 2014

    Комментарии (4)
  4. JavaScript / Говнокод #17348

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    express_static = express.static(static_files.file_path)
        app.use('/files', (req, res, next) ->
            if Math.random() > app.failureProbability
                express_static.handle(req, res, next)
            else
                # server failure or timeout
                if Math.random() < 0.5
                    console.log('\x1B[31mRandom failure\x1B[0m')
                    res.send(500, 'Fuck you')
                else
                    console.log('\x1B[31mRandom timeout\x1B[0m')
        )

    а вот так мы тестируем сетевую нагрузку (нода, кофе)

    makc3d, 21 Декабря 2014

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

    +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
    var resultList = new List<CentralBankRateData>();
    using (var resultSet = m_Service.GetCursOnDate(request.Date))
    using (var reader = new DataTableReader(resultSet.Tables["ValuteCursOnDate"]))
    	while (reader.Read())
    		resultList.Add(new CentralBankRateData
    		{
    			Name = (string) reader["Vname"],
    			Nominal = (decimal) reader["Vnom"],
    			Rate = (decimal) reader["Vcurs"],
    			NumberCode = (int) reader["Vcode"],
    			StringCode = (string) reader["VchCode"]
    		});

    Какой Центробанк, такая и валюта. m_Service типа DailyInfoSoap, это сервис отдачи курсов валют. А еще у них получение актуального списка БИКов возможно только в древнейшем формате dBASE.

    yamamoto, 19 Декабря 2014

    Комментарии (4)
  6. JavaScript / Говнокод #17337

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // В чем смысл переменной knc?
    var knc = 0;
    var k_fr = parent.document.getElementById(kph);
    if (k_fr) {
        knc = 1;
    }

    Маленький кусочек говнокода.
    Не сказал бы что тут что-то феноменальное, но подобная логика на всем проекте
    "Мы создали переменную для проверки для того что бы проверить переменную для проверки"

    MrFranke, 18 Декабря 2014

    Комментарии (4)
  7. Pascal / Говнокод #17324

    +88

    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
    procedure sr(var q, w: string; j, k: integer);
    begin
      for j := 1 to 100 do
      begin
        if ord(q[j]) - ord(w[j]) > 0 then begin for k := 1 to pos(' ', q) do write(q[k]);exit; end
        else if ord(q[j]) - ord(w[j]) < 0 then begin for k := 1 to pos(' ', w) do write(w[k]);exit; end;
      end;
      for k := 1 to pos(' ', w) do write(w[k]);
    end;
     
    procedure sr2(var q, w, e, r: string; j, k, p: integer);
    begin
      for j := 1 to 101 do
      begin
        if ord(q[j]) - ord(w[j]) > 0 then begin r := q;break; end
        else if ord(q[j]) - ord(w[j]) < 0 then begin r := w;break;end;
        inc(p);
      end;
      if p>100 then r:=w;
      for j := 1 to 100 do
      begin
        IF E[J]=' ' Then break;
        if ord(e[j]) - ord(r[j]) > 0 then begin for k := 1 to pos(' ', e) do write(e[k]);exit; end
        else if ord(e[j]) - ord(r[j]) < 0 then begin for k := 1 to pos(' ', r) do write(r[k]);exit; end;
      end;
      for k := 1 to pos(' ', r) do write(r[k]);
    end;
     
    var
      st, a, b, c, rd: string;
      i, s: integer;
     
    begin
      assign(input, 'input.txt'); reset(input);
      assign(output, 'output.txt'); rewrite(output);
      read(st);
      for i := 1 to 102
      do
      begin
        a := a + ' ';
        b := b + ' ';
        c := c + ' ';
      end;
      for i := 1 to length(st) do
        if st[i] = ' ' then inc(s)
        else
          case s of
            0: a[i] := st[i];
            1: b[i - pos(' ', a)] := st[i];
            2: c[i - pos(' ', a) - pos(' ', b)] := st[i];
          end;
      if (a=b) and (b=c) then for i := 1 to pos(' ', a) do write(a[i])
      else if (pos(' ', a) > pos(' ', b)) and (pos(' ', a) > pos(' ', c)) then for i := 1 to pos(' ', a) do write(a[i])
      else if (pos(' ', b) > pos(' ', a)) and (pos(' ', b) > pos(' ', c)) then for i := 1 to pos(' ', b) do write(b[i])
      else if (pos(' ', c) > pos(' ', b)) and (pos(' ', c) > pos(' ', a)) then for i := 1 to pos(' ', c) do write(c[i])
      else if (pos(' ', a) = pos(' ', b)) and (pos(' ', b) = pos(' ', c)) then sr2(a, b, c, rd, 0, 0, 0)
      else if pos(' ', a) = pos(' ', b) then sr(a, b, 0, 0)
      else if pos(' ', c) = pos(' ', b) then sr(c, b, 0, 0)
      else if pos(' ', a) = pos(' ', c) then sr(a, c, 0, 0);
    end.

    Выбор максимума из 3 целых длинных чисел

    AndreyZ, 17 Декабря 2014

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

    +57

    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
    if (this->IsWhiteFigure())
    		{
    			if (abs(position_x - this->GetPositionX()) == 1 && position_y - this->GetPositionY() == -1)
    			{
    				this->SetPositionX(position_x);
    				this->SetPositionY(position_y);
    			}
    			else
    			{
    				throw IncorrectMoveException();
    			}
    		}
    		else
    		{
    			if (abs(position_x - this->GetPositionX() == 1) && position_y - this->GetPositionY() == 1)
    			{
    				this->SetPositionX(position_x);
    				this->SetPositionY(position_y);
    			}
    			else
    			{
    				throw IncorrectMoveException();
    			}
    		}

    Тест на внимательность. Сможете ли вы догадаться почему это не работает ?

    GreatMASTERcpp, 13 Декабря 2014

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

    +63

    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
    int day (char* input, int begin, int number, int year)
    {
    	switch (input[begin])
    	{
    		case 65:
    		if (input[begin+1] == 112) 
    			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 91 + number; 
    			else return 90 + number;
    		else if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 213 + number; 
    			else return 212 + number;
    		break;
    			
    		case 68:
    		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 335 + number; 
    					else return 334 + number;
    		break;
    		
    		case 70:
    		return 31+number;	
    		break;
    		
    		case 74:
    		switch (input[begin+3])
    		{
    			case 117:
    			return number;
    			break;
    			
    			case 101:
    			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 152 + number; else return 151 + number;
    			break;
    			
    			case 121:
    			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 182 + number; else return 181 + number;
    			break;			
    		}
    		break;
    		
    		case 77:
    		switch (input[begin+2])
    		{		
    			case 114:
    			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 60 + number; else return 59 + number;
    			break;
    			
    			case 121:
    			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 121 + number; else return 120 + number;
    			break;			
    		}
    		break;
    		
    		case 78:
    		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 305 + number; else return 304 + number;
    		break;
    		
    		case 79:
    		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 274 + number; else return 273 + number;
    		break;
    		
    		case 83:
    		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 244 + number; else return 243 + number;
    		break;
    	}
    }

    Преобразование название месяца в его продолжительность.

    mottoper, 12 Декабря 2014

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

    +129

    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
    " Подсчёт количества документов
    
      DEFINE incr.
        add 1 to ls_summary-c_&1.
      END-OF-DEFINITION.
    
      CASE ls_s08_doc-status.
        WHEN `01`. incr vvr.
        WHEN `02`. incr vvr. incr vpz.
        WHEN `03`. incr prz.
        WHEN `04`. incr prz. incr nnp. incr otk.
        WHEN `05`.
        WHEN `06`. incr prz. incr nnp.
        WHEN `07`. incr prz. incr nnp. incr sgl.
        WHEN `ПД`. incr prz. incr nnp. incr v12.
        WHEN `ПП`.
        WHEN `ПС`. incr prz. incr nnp. incr pns.
        WHEN `НП`.
        WHEN `СФ`. incr prz. incr nnp. incr v12.
        WHEN `ТП`. incr vvr. incr vpz.
        WHEN `ОК`. incr prz. incr nnp. incr v12. incr o12.
        WHEN OTHERS.
      ENDCASE.

    В ABAP нет инкремента. Зато есть макросы, в которые подставляется «что написано» в точности так как написано ^_^

    Yaruson, 12 Декабря 2014

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

    −122

    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
    Для Индекс = 1 По 4 Цикл
    
    	Если Индекс = 1 Тогда
    		<Действие1...>;
    	ИначеЕсли Индекс = 2 Тогда
    		<Действие2...>;
    	ИначеЕсли Индекс = 3 Тогда
    		<Действие3...>;
    	ИначеЕсли Индекс = 4 Тогда
    		<Действие4...>;
    	КонецЦикла;	
    
    КонецЦикла

    facepeeler, 04 Декабря 2014

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