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

    +143

    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
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main ()
    {
        int n,m;
        char c[10][10];
        cin >> n >> m;
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                cin >> c[i][j];
            }
        }
        c[0][0] = 'E';
        c[n-1][0] = 'D';
        c[0][m-1] = 'F';
        c[n-1][m-1] = 'C';
        
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                if (c[i][j] == 'A')
                {
                    if (j == 0) {c[i][j] = 'B';} else
                    {if (i>0 && c[i][j-1] != 'A' && c[i][j-1] != 'D' && c[i][j-1] != 'E' && (c[i-1][j] == 'E' || c[i-1][j] == 'F' || c[i-1][j] == 'B')) c[i][j] = 'B';}
    
                } 
                else 
                {
                        if (c[i][j] == 'B')
                    {
                        if (i == 0) {c[i][j] = 'A';} else
                        {if (j>0 && c[i-1][j] != 'B' && c[i-1][j] != 'F' && c[i-1][j] != 'E' && (c[i][j-1] == 'D' || c[i][j-1] == 'F' || c[i][j-1] == 'A')) c[i][j] = 'A';}
    
                    } 
                    else
                    { //уголки
                        if (i==0 && j > 0) 
                        {
                            if (c[i][j-1] == 'A' || c[i][j-1] == 'E') c[i][j] = 'F'; else c[i][j] = 'E';
                        } 
                        else
                        {
                            if (i==n-1 && j > 0) 
                            {
                                if (c[i][j-1] == 'A' || c[i][j-1] == 'D') c[i][j] = 'C'; else c[i][j] = 'D';
                            } 
                            else
                            {
                                if (j==0 && i > 0)
                                {
                                    if (c[i-1][j] == 'B' || c[i-1][j] == 'E') c[i][j] = 'D'; else c[i][j] = 'E';
                                } 
                                else
                                {
                                    if (j==m-1 && i > 0)
                                    {
                                        if (c[i-1][j] == 'B' || c[i-1][j] == 'F') c[i][j] = 'C'; else c[i][j] = 'F';
                                    }
                                    else 
                                    {
                                        if ((c[i-1][j] == 'B' || c[i-1][j] == 'F') && (c[i][j-1] == 'A' || c[i][j-1] == 'D')) c[i][j] = 'C';
                                        else
                                        {
                                            if (c[i-1][j] == 'B' || c[i-1][j] == 'E') c[i][j] = 'D';
                                            else
                                            {
                                                if (c[i][j-1] == 'A' || c[i][j-1] == 'E') c[i][j] = 'F';
                                                else c[i][j] = 'E';
                                            }
                                        }
                                    }
                                }
                            }
                        }                   
                    }
                }
            }
        }
    
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                cout << c[i][j];
            }
            cout << endl;
        }
    }

    http://vk.com/photo70606856_365037363
    Пройдено 77 тестов из 85

    yury99, 26 Апреля 2015

    Комментарии (0)
  2. Си / Говнокод #18062

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if (false == very_long_function(arg1, arg2, ...)) 
    {
        if (false == very_long_other_function(even_more_args) 
        {
            do_something();
        }
        else 
        {   
            do_something_else();
        }
    }

    И вот такими многоэтажками забит весь проект.

    codemonkey, 26 Апреля 2015

    Комментарии (5)
  3. Python / Говнокод #18061

    −180

    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
    try:
        ip_port = sys.argv[1].split(':')
        ip = ip_port[0]
     
        if len(ip_port) == 2:
            port = ip_port[1]
        elif len(ip_port) == 1:
            port = "80"
        else:
            raise IndexError
    except IndexError:
        print "Usage: %s <target ip:port>" % sys.argv[0]
        sys.exit(1)

    Эксплоиты. Неиссякаемый источник ГК.

    Я бы сделал так:

    try:
    ip_port = sys.argv[1].split(':')
    ip = ip_port[0]
    try:
    port = ip_port[1]
    except IndexError:
    port = 80
    except IndexError:
    print "Usage: %s <target ip:port>" % sys.argv[0]
    sys.exit(1)

    3_14dar, 25 Апреля 2015

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

    +144

    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
    function IsIntStr(const str:string):boolean;                                    // Для проверки, состоит ли логин целиком из цифр.
    var                                                                             // TryStrToInt не подходит.
      p:pchar;
    begin
      result:=false;
      p:=pchar(str);
      if p^=#0 then exit;
      while p^ <> #0 do
      begin
        if not (p^ in ['0'..'9']) then
        exit;
        p:=charnext(p) ;
      end;
      result:=true;
    end;

    Showmessage(IntToStr(4324324233213564)); // а хуйца не желаете?

    Stertor, 24 Апреля 2015

    Комментарии (12)
  5. Pascal / Говнокод #18059

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    FYears.Items.Clear;
          for i := 10 downto 1 do
            FYears.Items.Add(IntToStr(Year - i));
          FYears.Items.Add(IntToStr(Year));
          for i := 1 to 10 do
            FYears.Items.Add(IntToStr(Year + i));

    Заполнение итемов номерами лет
    Сначала добавим 10 лет до даты Х
    Потом дату Х
    Потом 10 лет после даты Х
    RAD Studio XE8 FMX.Calendar.Style.pas

    PeaK, 24 Апреля 2015

    Комментарии (0)
  6. Pascal / Говнокод #18058

    +143

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(LocaleService)) then
            S := LocaleService.GetLocaleFirstDayOfWeek
          else
            S := '6';
          FFirstDayOfWeekNum := Ord(S.Chars[0]) - Ord('0');
          {$IFDEF MACOS}
          FFirstDayOfWeekNum:= Ord(S.Chars[0]) + Ord('0');
          {$ENDIF}
          {$IFDEF ANDROID}
            FFirstDayOfWeekNum := FFirstDayOfWeekNum - MondayOffset;
          {$ENDIF}

    Это FireMonkey! FMX.Calendar.Style.pas! И это реально работает.
    Главное, что всё очевидно.

    PeaK, 24 Апреля 2015

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public function createAdvertApart () { // ВНИМАНИЕ! Видимость функции protected
    
    // проверяем max размер допустимый к загрузке
    			if ( $_files[size] > 3000000 )
    			$error[] = "Файл превышает размер три мегабайта";

    Прислали вместе с резюме пример кода, а там ...

    kolko91, 24 Апреля 2015

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

    +144

    1. 1
    IntToStr(StrToInt(VarToStr()))

    Сегодня пришла мадам и спросила почему это не работает. Сказали что бы так больше не ...кодила.

    ViktorR, 24 Апреля 2015

    Комментарии (8)
  9. Java / Говнокод #18055

    +144

    1. 1
    Шёл 2015 год, а SQLite на ведре так и не научился сравнивать не ASCII'шные строки без учёта регистра...

    Или это у меня руки из жопы растут?

    bormand, 24 Апреля 2015

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

    +141

    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
    func (db *DB) CountResults(filial []int64, device []int64, workplace []int64, from time.Time, to time.Time, splits bool, skip int64) (res []*AvgResults, err error) {
    
    	var query string
    	var rows *pgx.Rows
    
    	_, err = db.Exec("SET LOCAL TIME ZONE 'Asia/Yekaterinburg';")
    	if err != nil {
    		return nil, err
    	}
    
    	switch {
    	case splits:
    		query = `WITH data AS (SELECT "IndicatorResultValue"."IndicatorId", "qm"."Session"."Blocked", "qm"."Result"."SessionId" AS "SessionId", "qm"."DeviceIPRangeType"."Number" AS "RangeType", "qm"."DeviceIPRangeType"."Id" AS "RangeTypeId", "qm"."BranchWorkPlace"."Id" AS "WorkPlaceId", "DeviceIPRange"."BranchId", date("Datetime") as "Date"
      			FROM qm."Result"
      			LEFT OUTER JOIN "qm"."Device" ON ("Result"."DeviceId" = "Device"."Id")
      			LEFT OUTER JOIN "qm"."BranchWorkPlace" ON ("BranchWorkPlace"."Id" = "Device"."WorkPlaceId")
      			LEFT OUTER JOIN "qm"."Session" ON ("Result"."SessionId" = "Session"."Id")
      			LEFT OUTER JOIN "qm"."IndicatorResultValue" ON ("Result"."IndicatorResultValueId" = "IndicatorResultValue"."Id")
      			LEFT OUTER JOIN "qm"."ResultValue" ON ("IndicatorResultValue"."ResultValueId" = "ResultValue"."Id")
      			LEFT OUTER JOIN "qm"."DeviceIPRangeType" ON ("DeviceIPRangeType"."Id" = "Session"."DeviceIPRangeTypeId")
      			LEFT OUTER JOIN "qm"."DeviceIPRange" ON ("Session"."DeviceIPRangeId" = "DeviceIPRange"."Id") 	
      			FULL OUTER JOIN "queue"."Branches" ON ("DeviceIPRange"."BranchId" = "Branches"."Id" AND (0 = any ($1::int8[]) OR "Branches"."Id" = any($1::int8[])))),
    			data1 AS (SELECT COUNT(DISTINCT(data."SessionId")) AS "Count", 
    	 		"BranchId", 
    	  		CASE WHEN "RangeTypeId" < 3 THEN 0
                	ELSE "RangeTypeId"
    	  		END,  
    	  		"Date"
    	  		FROM data
    	  		WHERE (0 = any($2::int8[]) OR "RangeType" = any($2::int8[]))
    	   		AND (0 = any ($1::int8[]) OR "BranchId" = any($1::int8[]))
    	   		AND (0 = any($3::int8[]) OR "WorkPlaceId" = any($3::int8[]))
    	   		AND "Date" BETWEEN $4::timestamptz AND $5::timestamptz
    	   		AND NOT "Blocked"
    	  		GROUP BY "BranchId", CASE WHEN "RangeTypeId" < 3 THEN 0 ELSE "RangeTypeId" END, "Date"),  
    			data2 AS (SELECT "Id", "Name", date("d") AS "Date" FROM
    			queue."Branches"
    			CROSS JOIN generate_series($4::timestamptz, $5::timestamptz, $6) as "d" 
    			WHERE (0 = any ($1::int8[]) OR "Id" = any($1::int8[])) ),	            
    			data3 AS (SELECT "Count" AS C, 0 AS Avg, data1."Date", data1."RangeTypeId", data1."BranchId"
    			FROM "data1" GROUP BY "data1"."Date", "Count", "data1"."BranchId", "data1"."RangeTypeId"),
    			data3_1 AS (SELECT "qm"."DeviceIPRangeType"."Id" FROM "qm"."DeviceIPRange"
    			RIGHT OUTER JOIN "qm"."DeviceIPRangeType" ON ("qm"."DeviceIPRange"."DeviceIPTypeId" = "qm"."DeviceIPRangeType"."Id")
    			WHERE (0 = any ($1::int8[]) OR "DeviceIPRange"."BranchId" = any($1::int8[]))
    			GROUP BY "qm"."DeviceIPRangeType"."Id"),
    			data4 AS (SELECT "Id", "Name", date("d") AS "Date" FROM
    			"qm"."DeviceIPRangeType"
    			CROSS JOIN generate_series($4::timestamptz, $5::timestamptz, $6) as "d"
    			WHERE "Id" > 2 AND (0 = any($2::int8[]) OR "Number" = any($2::int8[])) AND "Id" IN (SELECT "Id" FROM data3_1)),
    			data5 AS (SELECT coalesce(c, 0) AS C, coalesce(avg, 0) AS Avg, coalesce("data2"."Date", "data3"."Date") AS date, "data2"."Name", "data3"."RangeTypeId" FROM
    			data2
    			FULL OUTER JOIN data3 ON ("data3"."BranchId" = "data2"."Id" AND "data3"."Date" = "data2"."Date"))
    			SELECT array_agg(coalesce(c, 0) ORDER BY coalesce("data5"."date", "data4"."Date")) AS "Count",
           		array_agg(coalesce(avg::double precision, 0::double precision) ORDER BY coalesce("data5"."date", "data4"."Date")) AS "Avg",
           		array_agg(coalesce("data5"."date", "data4"."Date") ORDER BY coalesce("data5"."date", "data4"."Date"))::timestamptz[] AS "Date",
           		coalesce("data5"."Name", "data4"."Name") AS "Name" FROM data5
    			FULL OUTER JOIN data4 ON ("data4"."Id" = "data5"."RangeTypeId" AND "data5"."date" = "data4"."Date")
    			WHERE coalesce("data5"."Name", "data4"."Name") IS NOT NULL
    			GROUP BY coalesce("data5"."Name", "data4"."Name")
    			ORDER BY coalesce("data5"."Name", "data4"."Name")`
    	default:
    		query = `WITH data AS (SELECT "IndicatorResultValue"."IndicatorId", "qm"."Session"."Blocked", "qm"."Result"."SessionId" AS "SessionId", "qm"."DeviceIPRangeType"."Number" AS "RangeType", "qm"."DeviceIPRangeType"."Id" AS "RangeTypeId", "qm"."BranchWorkPlace"."Id" AS "WorkPlaceId", "DeviceIPRange"."BranchId", date("Datetime") as "Date"
    	 		FROM qm."Result"
    	 		LEFT OUTER JOIN "qm"."Device" ON ("Result"."DeviceId" = "Device"."Id")
    	 		LEFT OUTER JOIN "qm"."BranchWorkPlace" ON ("BranchWorkPlace"."Id" = "Device"."WorkPlaceId")
    	 		LEFT OUTER JOIN "qm"."Session" ON ("Result"."SessionId" = "Session"."Id")
    	 		LEFT OUTER JOIN "qm"."IndicatorResultValue" ON ("Result"."IndicatorResultValueId" = "IndicatorResultValue"."Id")
    	 		...

    Код для БД на go

    g2347933, 24 Апреля 2015

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