1. Си / Говнокод #14091

    +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
    VariableValue *locVars;
    locVars = new VariableValue;
    locVars->variable = "r";
    locVars->value = mTaskParameters.rNodes[0]; //x_low;
    locVars->link = new VariableValue;
    locVars->link->variable = "theta";
    locVars->link->value = mTaskParameters.thetaNodes[0]; //y_low;
    locVars->link->link = new VariableValue;
    locVars->link->link->variable = "r_min";
    locVars->link->link->value = mTaskParameters.rNodes[0]; //this->x_low;
    locVars->link->link->link = new VariableValue;
    locVars->link->link->link->variable = "r_max";
    locVars->link->link->link->value = mTaskParameters.rNodes[mTaskParameters.rNodes.size()-1]; //this->x_high;
    locVars->link->link->link->link = NULL;

    Построение связного списка

    xredor, 12 Ноября 2013

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

    +165

    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
    // comparison arrays - quadruple nesting
        public function comparisonArrays(array $newOptions, array $prevOptions) {
            $diffOptions = array();
            foreach ($newOptions as $key=>$op) {
                if (isset($prevOptions[$key])) {
                    if (is_array($op)) {
                        foreach ($op as $kkk=>$ooo) {
                            if (isset($prevOptions[$key][$kkk])) {
                                if (is_array($ooo)) {
                                    foreach ($ooo as $kk=>$oo) {
                                        if (isset($prevOptions[$key][$kkk][$kk])) {
                                            if (is_array($oo)) {
                                                foreach ($oo as $k=>$o) {
                                                    if (isset($prevOptions[$key][$kkk][$kk][$k])) {
                                                        if ($prevOptions[$key][$kkk][$kk][$k]!=$o) $diffOptions[$key][$kkk][$kk][$k] = $o;
                                                    } else {
                                                        $diffOptions[$key][$kkk][$kk][$k] = $o;
                                                    }
                                                }
                                            } else {
                                                if ($prevOptions[$key][$kkk][$kk]!=$oo) $diffOptions[$key][$kkk][$kk] = $oo;
                                            }    
                                        } else {
                                            $diffOptions[$key][$kkk][$kk] = $oo;
                                        }
                                    }
                                } else {
                                    if ($prevOptions[$key][$kkk]!=$ooo) $diffOptions[$key][$kkk] = $ooo;
                                }
                            } else {
                                $diffOptions[$key][$kkk] = $ooo;
                            }
                        }
                    } else {
                        if ($prevOptions[$key]!=$op) $diffOptions[$key] = $op;
                    }
                } else {                    
                    $diffOptions[$key] = $op;
                }    
            }        
            return $diffOptions;        
        }

    crook, 11 Ноября 2013

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

    +131

    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
    private static int GetCarMaxRoomNumberNominal(string trainName, TrainCar car)
            {
                if (!String.IsNullOrEmpty(trainName))
                {
                    trainName = trainName.ToUpper();
                    if (trainName.StartsWith("САПСАН"))
                    {
                        return 66;
                    }
                    else if (trainName.StartsWith("ЛАСТОЧКА"))
                    {
                        return 103;
                    }
                    else if (trainName.StartsWith("АЛЛЕГРО"))
                    {
                        return 72;
                    }
                }
    
                switch (car.Category)
                {
                    case TrainCarCategory.ReservedSeat:
                    case TrainCarCategory.Common:
                        return 54;
                    case TrainCarCategory.Compartment:
                        return car.TwoStorey ? 112 : 36;
                    case TrainCarCategory.Lux:
                    case TrainCarCategory.Soft:
                        return car.TwoStorey ? 96 : 18;
                    case TrainCarCategory.Sedentary:
                        if (car.ServiceClass.Contains("1С"))
                        {
                            return 42;
                        }
                        else if (car.ServiceClass.Contains("2С"))
                        {
                            return 80;
                        }
                        if (car.ServiceClass.Contains("3С"))
                        {
                            return 117;
                        }
                        return 1;
                    default:
                        return 1;
                }
            }

    Расчет количества мест в вагоне

    Shadeglare, 10 Ноября 2013

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

    +108

    1. 1
    assert(buf=malloc(BUF_SIZ));

    А в релизе мы сэкономим памяти

    crastinus, 10 Ноября 2013

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

    +131

    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
    try
                {
                    m = (int)Convert.ToInt32(num[1]);
                }
                catch
                {
                    Console.WriteLine("Invalid parametr");
                    return true;
                }
    
    //...................................................
                  try
                        {
                            matrix[i, j] = (float)Convert.ToDouble(num[j]);
                            
                        }
                        catch
                        {
                            Console.WriteLine("Invalid matrix");
                            return false;
                        }

    Лаба одногруника...

    Michigan, 09 Ноября 2013

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

    +153

    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
    // Высота шрифта
    
    	$lenHdr = mb_strlen( strip_tags($header), 'UTF-8');
    
    	$maxDefaultStrLen = 38;	// максимальное количество символов при заданном размере шрифта
    	$maxFontSize = 22;		// заданный размер шрифта
    
    	$fontSize = $maxFontSize;
    
    	if ( $lenHdr > $maxDefaultStrLen ) {
    
    		$k = ceil(sqrt(($lenHdr - $maxDefaultStrLen) + 0.25) - 0.5) + 2 ;
    
    		$k = ($k<3)? 3:$k;
    
    		$fontSize = $maxFontSize - ($k - 2)*2;
    
    		$fontSize = ($fontSize<12)? 12:$fontSize;
    	}

    Вот. Откопалось

    bot, 08 Ноября 2013

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

    +18

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    std::string MetaInfo::SetField() {
      return m_value;
    }
    
    /* ... */
    
    std::string value = meta.SetValue();

    Йода-стайл. Переменную эту, хочешь установить ты.

    JeremyW, 08 Ноября 2013

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

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    this.ShowHideNoticeDate = function () {
            if ($("#associateNotice").is(':checked')) {
                jsNoticeField.setFieldValue(1);            
                $("#associateNotice").parent().parent().parent().parent().parent().parent().next().show();
                $("#associateNotice").parent().parent().parent().parent().parent().parent().next().children(1).children(0).children(0).children(0).children(0).children(0).children(1).val("");
                
            } else {
                jsNoticeField.setFieldValue(0);
                $("#associateNotice").parent().parent().parent().parent().parent().parent().next().hide();            
                $("#associateNotice").parent().parent().parent().parent().parent().parent().next().children(1).children(0).children(0).children(0).children(0).children(0).children(1).val("");            
            }
        };

    Голландский джаваскриптик)))

    RomashkaPro, 08 Ноября 2013

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

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int t, max, x;
    scanf("%d", &x);
    for(t=x%10; max!=t; max=t);
    for(t=x%100/10; max<t; max=t);
    for(t=x%1000/100; max<t; max=t);
    for(t=x/1000; max<t; max=t);
    printf("Max: %d\n", max);

    Нахождение максимальной цифры в 4-значном числе. Одна из первых лаб по Си. Предполагалось использование if, но студенты не ищут лёгких путей. (Сдвиги они пока не учили, так что на вычисление цифры не обращайте внимания.)

    proDOOMman, 07 Ноября 2013

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

    +68

    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
    public static AstRoot parse (String code) {
            CompilerEnvirons env = new CompilerEnvirons();
            env.setRecoverFromErrors(true);
            env.setGenerateDebugInfo(true);
            env.setRecordingComments(true);
    
            // try to ignore errors - does not seem to work
            env.setIdeMode(true);
    
            IRFactory factory = new IRFactory(env);
            AstRoot root = factory.parse(code, null, 0);
    
            // work around rhino bug 800616 (not fixed in neither rhino nor closure)
    
            root.visit(new NodeVisitor() {
                @Override
                public boolean visit(AstNode node) {
                    if (node instanceof NumberLiteral) {
                        NumberLiteral num = (NumberLiteral)node;
                        int from = num.getAbsolutePosition();
                        int to = from + num.getLength() + 2;
                        if (to < code.length()) {
                            String hex = "0x" + num.toSource();
                            if (code.substring(from, to).equals(hex)) {
                                // reset node value and length
                                num.setValue(hex); num.setLength(hex.length());
                            }
                        }
                        return false;
                    }
                    return true;
                }
            });
    
            // work around rhino SwitchStatement.toSource() bug with empty switches
            // https://github.com/mozilla/rhino/blob/master/src/org/mozilla/javascript/ast/SwitchStatement.java#L96
            // https://github.com/mozilla/rhino/blob/master/src/org/mozilla/javascript/ast/SwitchStatement.java#L107-L109
            // https://github.com/mozilla/rhino/blob/master/src/org/mozilla/javascript/ast/SwitchStatement.java#L158
            root.visit(new NodeVisitor() {
                @Override
                public boolean visit(AstNode node) {
                    if (node instanceof SwitchStatement) {
                        SwitchStatement ss = (SwitchStatement)node;
                        if (ss.getCases().isEmpty()) {
                            // need to add at least one node to make ss.cases non-null
                            ArrayList<SwitchCase> cases = new ArrayList<>();
                            cases.add(new SwitchCase());
                            ss.setCases(cases);
                            // set this back to empty list
                            cases.clear();
                            ss.setCases(cases);
                        }
                        return false;
                    }
                    return true;
                }
            });
    
            return root;
        }

    И ещё немножко трудовыебуднев пользователей рино: правда клёво взять и распарсить джаваскрипт одним простым методом? Авотхуй.

    makc3d, 07 Ноября 2013

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