1. PHP / Говнокод #11649

    +70

    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
    95. 95
    96. 96
    97. 97
    <?php
    $nodata = 'nodata';
    $A60    = doubleval(@$HTTP_POST_VARS['A60']);
    $B60    = doubleval(@$HTTP_POST_VARS['B60']);
    $C60    = doubleval(@$HTTP_POST_VARS['C60']);
    $D60    = doubleval(@$HTTP_POST_VARS['D60']);
    $F60    = doubleval(@$HTTP_POST_VARS['F60']);
    $G60    = doubleval(@$HTTP_POST_VARS['G60']);
    $H60    = doubleval(@$HTTP_POST_VARS['H60']);
    $I60    = doubleval(@$HTTP_POST_VARS['I60']);
    $J60    = doubleval(@$HTTP_POST_VARS['J60']);
    $K60    = doubleval(@$HTTP_POST_VARS['K60']);
    $L60    = doubleval(@$HTTP_POST_VARS['L60']);
    $M60    = doubleval(@$HTTP_POST_VARS['M60']);
    echo $A60;
    if (($A60 < 0) || ($B60 < 0) || ($C60 < 0) || ($D60 < 0) || ($F60 < 0) || ($G60 < 0) || ($H60 < 0) || ($I60 < 0) || ($J60 < 0) || ($K60 < 0) || ($L60 < 0) || ($M60 < 0)) {
        readfile("cerror.html"); exit; }
    if (($A60 == 0) && ($B60 == 0) && ($C60 == 0) && ($D60 == 0) && ($F60 == 0) && ($G60 == 0) && ($H60 == 0) && ($I60 == 0) && ($J60 == 0) && ($K60 == 0) && ($L60 == 0) && ($M60 == 0)) {
      readfile("cerror.html"); exit;}
    $D1  = @($A60);
    $A2  = @(405.2);
    $B2  = @((0.9 + 0.8) / 2);
    $C2  = @(8);
    $D2  = @($A60 / 3);
    $E2  = @(0.00000012);
    $F2  = @(exp(-1.60978 + 0.021845 * ($A2 / exp(3 * $B2)) - 0.000186 * pow($A2 / exp(3 * $B2), 2) + 0.0000011 * pow($A2 / exp(3 * $B2), 3)) * exp($B2 * (0.674 + 0.2 * $B2 + 0.007577 * ($A2 / exp(3 * $B2)) + 0.0084248753 * ($A2 / exp(3 * $B2)) * $B2 + 0.0000224434 * pow($A2 / exp(3 * $B2), 2))) * $E2 * $D2);
    $I2  = @(0.37);
    $J2  = @(0.24);
    $K2  = @(0.22);
    $A3  = @(368.7);
    $B3  = @((0.9 + 0.8) / 2);
    $C3  = @(20);
    $D3  = @($A60 / 3);
    $E3  = @(0.000000013);
    $F3  = @(exp(-1.60978 + 0.021845 * ($A3 / exp(2.5 * $B3)) - 0.000186 * pow($A3 / exp(2.5 * $B3), 2) + 0.0000011 * pow($A3 / exp(2.5 * $B3), 3)) * exp($B3 * (0.674 + 0.2 * $B3 + 0.007577 * ($A3 / exp(2.5 * $B3)) + 0.0084248753 * ($A3 / exp(2.5 * $B3)) * $B3 + 0.0000224434 * pow($A3 / exp(2.5 * $B3), 2))) * $E3 * $D3);
    $I3  = @(0.37);
    $J3  = @(0.24);
    $K3  = @(0.22);
    $A4  = @(621.4);
    $B4  = @(0.9);
    $C4  = @(36);
    $D4  = @($A60 / 3);
    $E4  = @(0.00000001);
    $F4  = @(exp(-1.60978 + 0.021845 * ($A4 / exp(2.5 * $B4)) - 0.000186 * pow($A4 / exp(2.5 * $B4), 2) + 0.0000011 * pow($A4 / exp(2.5 * $B4), 3)) * exp($B4 * (0.674 + 0.2 * $B4 + 0.007577 * ($A4 / exp(2.5 * $B4)) + 0.0084248753 * ($A4 / exp(2.5 * $B4)) * $B4 + 0.0000224434 * pow($A4 / exp(2.5 * $B4), 2))) * $E4 * $D4);
    $I4  = @(0.37);
    // ..аналогичные вычисления и инициализация для остальных переменных типа "буква-число"
    $D54 = @($M60 / 2);
    $E54 = @(0.0000007);
    $I54 = @(0.192);
    $J54 = @(0.027);
    $K54 = @(0);
    $A55 = @(232.5);
    $B55 = @((0.5 + 0.8) / 2);
    $C55 = @(0);
    $D55 = @($M60 / 2);
    $E55 = @(0.00000009);
    $I55 = @(0.192);
    $J55 = @(0.027);
    $D56 = @($D53 + $D46 + $D47 + $D48 + $D40 + $D35 + $D30 + $D26 + $D22 + $D18 + $D13 + $D9 + $D5 + $D1);
    // поехали по новой считать какие-то средние значения...
    $A1  = @(($A2 + $A3 + $A4) / 3);
    $B1  = @(($B2 + $B3 + $B4) / 3);
    $C1  = @(($C2 + $C3 + $C4) / 3);
    $E1  = @(($E2 + $E3 + $E4));
    $F1  = @(($F2 + $F3 + $F4));
    $I1  = @(($I2 + $I3 + $I4) / 3);
    $J1  = @(($J2 + $J3 + $J4) / 3);
    $K1  = @(($K2 + $K3 + $K4) / 3);
    $H2  = @($F2 * ($I2 + $K2));
    $M2  = @(1 - exp(-$H2 * 8766.00));
    $H3  = @($F3 * ($I3 + $K3));
    $M3  = @(1 - exp(-$H3 * 8766.00));
    $H4  = @($F4 * ($I4 + $K4));
    $M4  = @(1 - exp(-$H4 * 8766.00));
    // ещё немного кода...
    $J53 = @(($J54 + $J55) / 2);
    $K53 = @(($K54 + $K55) / 2);
    $F54 = @(exp(-3.94361687 + 0.02181877 * ($A55 / exp(5 * $B55)) + 0.00000171 * pow($A55 / exp(5 * $B55), 2)) * exp($B54 * (3.464157793 + 0.0000789055 * ($A55 / exp(5 * $B55)))) * $E54 * $D54);
    $H54 = @($F54 * ($I54 + $K54));
    $M54 = @(1 - exp(-$H54 * 8766.00));
    $F55 = @(exp(-3.94361687 + 0.02181877 * ($A56 / exp(5 * $B56)) + 0.00000171 * pow($A56 / exp(5 * $B56), 2)) * exp($B55 * (3.464157793 + 0.0000789055 * ($A56 / exp(5 * $B56)))) * $E55 * $D55);
    $H55 = @($F55 * ($I55 + $K55));
    $M55 = @(1 - exp(-$H55 * 8766.00));
    // и ешё чуть-чуть....
    $F10 = @(((293 / (273 + $A10 / exp(4.5 * $B10) + 3000 * $B10 / (125 + $A10 / exp(4.5 * $B10)))) * exp((1 / (273 + $A10 / exp(4.5 * $B10) + 3000 * $B10 / (125 + $A10 / exp(4.5 * $B10)))) - (1.00 / 293.00) + 2 * ($B10 - 1))) * $E10 * $D10);
    $H10 = @($F10 * ($I10 + $K10));
    $M10 = @(1 - exp(-$H10 * 8766.00));
    $F11 = @(((0.75 + 0.104 * $B11 * exp(0.877 * pow($B11, 3))) * (273 + ($A11 / exp(4.6 * $B11))) / 293) * exp((390 + 190 * $B11) * (($A11 / exp(4.6 * $B11)) - 20 + 0.016 * pow($B11 * ($A11 / exp(4.6 * $B11) - 20), 2)) / (293 * (273 + ($A11 / exp(4.6 * $B11))))) * $E11 * $D11);
    $H11 = @($F11 * ($I11 + $K11));
    $M11 = @(1 - exp(-$H11 * 8766.00));
    $F12 = @((pow($B12, 2) + 0.01) * exp((4500 + 400 * $B12 + 1400 * pow($B12, 3)) * ((1.00 / 293.00) - (1 / (273 + ($A12 / exp(8 * $B12)))))) * $E12 * $D12);
    $G12 = @(($H11 - $F11 * $K11) * ($A12 / exp(8 * $B12) / $A12));
    $H12 = @($F12 * ($I12 + $K12));
    $L12 = @((1 - exp(-$G12 * 8766.00)));
    $M12 = @(1 - exp(-$H12 * 8766.00));
    // 650+ строк таких вычислений для каждой буквы-переменной
    ?>

    Код получает несколько значений: кол-во моторов, транзисторов, микросхем и прочих элементов, после считает разные коэффициенты пожароопасности и шансы возгорания. Записывает их в таблицу и показывает на странице. Говорят, что это работает верно и уже около 6 человек защитили курсовые по этой теме(пожароопасность электроприборов) с использованием этого кода.

    Запостил: vovkalamer, 24 Августа 2012

    Комментарии (32) RSS

    • ух тэж йопт... это на каких веществах автор кода был, интересно?
      Ответить
    • наплодил однако переменных)
      Ответить
    • Читал код - чувствую, электронщик писал, не иначе.
      Ответить
    • Прямо асмом пахнет. Но это жуткое извращение.
      Ответить
      • Хуями.

        Пользователь guest получает предупреждение.
        Ответить
        • Господин модератор, но ведь guest не пользователь, и ему побоку предупреждения.

          Пользователь 7ion получает третье предупреждение.
          Причина: «самый умный? далее - бан».
          Ответить
          • 7ion получает бан за подражание модератору
            Ответить
          • guest такой же пользователь как и мы. И, кстати, он почти всегда забанен. Модератор разбанивает его только по вторникам, пятницам и субботам.

            Пользователь bormand получает предупреждение.
            Причина: обсуждение действий модератора.
            Ответить
            • Эх.. помню старые-добрые времена, когда были только guest-ы и никаких пользователей...
              Я смотрю тут на шару предупреждения раздают, и мне можно?
              Ответить
              • Нельзя.
                Ответить
                • Кажется у нас модератор с манией величия... печально, я таким в 15 лет был)
                  Ответить
          • Кажется у нас модератор с манией величия... печально, я таким в 15 лет был)
            Ответить
    • Вся соль в том, что где-то всё таки есть ошибка. Если не указать количество, например, транзисторов, то в одном из главных полей будет не 0, а 1e-12. Очень маленькое число, которое ничего не значит в расчётах - однако "директора фирмы", в которой я проходил практику, это реально беспокоит и он очень хочет это исправить. Всего на странице 2309 строк и я пока не нашёл, где же косяк(
      Ответить
      • > не 0, а 1e-12
        > не нашёл, где же косяк
        1) В IEEE 754-2008.Т.к. разрядность машинного представления числа ограничена, а чисел бесконечно много.
        2) В выводе, который вываливает результаты с дохеразнаками после запятой без округления.

        Не нашел ссылочку, про float'ы, которую хотел кинуть. Поэтому кину вот эту: http://habrahabr.ru/post/112953/
        Ответить
    • do u bleval?
      Ответить
    • Лол, да это же юбилейный трехтысячный пост в разделе PHP.
      Ответить
      • пхп в 3 раза говнистее крестов
        Ответить
        • Мне кажется, надо пересчитать в соответствии с их популярностью - тогда получится в 5 раз (исходя из рейтинга TIOBE)
          Ответить
        • http://tinyurl.com/8basep9
          Ответить
    • Я такой код на бейсике видел. Только там любили записывать кучу объявлений через двоеточие, активно пользовались goto, gosub и on error'ами. И, само собой, по метке в начале строки.
      Ответить
    • Я сначала подумал, что это какое-то асмовое говно для АРМ, потом увидел что ПХП. Вот это я понимаю - смесь жанров - ассемблер и ПХП!!!
      Ответить
    • Интересно, а чем отличаются D2, D3, D4? I2, I3, I4? И где потеряли I1?
      ...Может и правда написать скриптик, перевести ...это... обратно в ексель - в виде таблицы понятнее выйдет?
      Ответить

    Добавить комментарий