1. Pascal / Говнокод #19046

    −53

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    100. 100
    uses
      graphabc;
    
    var
      a, b, c, d, e, x: longint;
      a1, a3, b3, a4, b4, b1, c1, c2, y: longint;
      a2, b2: integer;
    
    procedure osordinat;
    begin
      line(325, 25, 325, 425, clblack);
      line(25, 225, 625, 225, clblack);
      line(320, 30, 325, 25, clblack);
      line(330, 30, 325, 25, clblack);
      line(620, 220, 625, 225, clblack);
      line(620, 230, 625, 225, clblack);
    end;
    
    begin
      c1 := 325; c2 := 225;
      Writeln('Уравнение имеет вид A*(X^2)+B*(Y^2)+C*X+D*Y+E = 0');Writeln('Введите параметры A,B,C,D,E');Write('Параметр A = ');read(a);Writeln(a);Write('Параметр B = ');read(b);Writeln(b);Write('Параметр C = ');read(c);Writeln(c);Write('Параметр D = ');read(d);Writeln(d); Write('Параметр E = ');//для сокращения строк, здесь просто ввод данных
      read(e);
      Writeln(e);
      a3 := round((b * sqr(c) + a * sqr(d) - (4 * a * b * e)) / (4 * sqr(a) * b));
      b3 := round((b * sqr(c) + a * sqr(d) - (4 * a * b * e)) / (4 * sqr(b) * a));
      a4 := round((c / (2 * a)));
      b4 := round((d / (2 * b)));
      if a3 < 0 then begin
        if b3 < 0 then writeln('no') else 
        begin
          writeln('Гипербола вида  : ((Y+', b4, ')^2)/', b3, ' - ((X+', a4, ')^2)/', a3, ' = 1');
          a1 := round(sqrt(abs(a3)));b1 := round(sqrt(abs(b3)));a2 := -a4;b2 := -b4;
          x := -1;
          repeat
            if x = 325 then break;
            x := (x + 1);
            if (sqr(x - a2) + sqr(a1)) >= 0 then 
            begin
              if abs(y) > 225 then writeln('Слишком большое значение получается, попробуй снова') else begin
                y := round((b1 / a1) * (sqrt((sqr(x - a2) + sqr(a1))) + b2));
                circle(c1 + 2 * x, c2 - 2 * y, 1);
                circle(c1 + 2 * x, c2 + 2 * y, 1);
                osordinat;
                circle(c1 + 10 * a2, c2 - 10 * b2, 1);
              end;
            end; 
          until abs(y) = 225;
          x := 1;
          repeat
            if x = -325 then break;
            x := (x - 1);
            if (sqr(x - a2) + sqr(a1)) >= 0 then 
            begin
              if abs(y) > 225 then writeln('Слишком большое значение получается, попробуй снова') else begin
                y := round((b1 / a1) * (sqrt((sqr(x - a2) + sqr(a1))) + b2));
                circle(c1 + 2 * x, c2 - 2 * y, 1);
                circle(c1 + 2 * x, c2 + 2 * y, 1);
                osordinat;
                circle(c1 + 10 * a2, c2 - 10 * b2, 1);
              end; 
            end;
          until abs(y) = 225;
        end
      end 
      else  
      begin
        if b3 > 0 then begin
          a1 := round(sqrt(abs(a3)));b1 := round(sqrt(abs(b3)));a2 := (-1 * a4);b2 := (-1 * b4);
          ellipse((c1 + 10 * a1 + 10 * a2), (c2 - 10 * b2 - 10 * b1), (c1 + 10 * a2 - 10 * a1), (c2 - 10 * b2 + 10 * b1));
          osordinat;
          circle(c1 + 10 * a2, c2 - 10 * b2, 1);
          writeln('Элипс вида : ((X+', a4, ')^2)/', a3, ' + ((Y+', b4, ')^2)/', b3, ' = 1');
        end
        else  begin
          writeln('Гипербола вида : ((X+', a4, ')^2)/', a3, ' - ((Y+', b4, ')^2)/', (-1) * b3, ' = 1');
          a1 := round(sqrt(abs(a3)));b1 := round(sqrt(abs(b3)));a2 := -a4;b2 := -b4;
          begin
            x := a2 + a1 - 1;
            repeat
              if x > 325 then break;
              x := (x + 1);
              if (sqr(x - a2) - sqr(a1)) >= 0 then begin
                y := round((b1 / a1) * (sqrt((sqr(x - a2) - sqr(a1))) + b2));
                if abs(y) > 225 then writeln('Слишком большое значение получается, попробуй снова') else begin
                  circle(c1 + 2 * x, c2 - 2 * y, 1);
                  circle(c1 + 2 * x, c2 + 2 * y, 1);
                  osordinat;
                end;
              end; 
            until abs(y) = 225;
            x := a2 - a1 + 1;
            repeat
              if x < -325 then break;
              x := (x - 1);
              if (sqr(x - a2) - sqr(a1)) >= 0 then begin
                if abs(y) > 225 then writeln('Слишком большое значение получается, попробуй снова') else begin
                  y := round((b1 / a1) * (sqrt((sqr(x - a2) - sqr(a2))) + b2));
                  circle(c1 + 2 * x, c2 - 2 * y, 1);
                  circle(c1 + 2 * x, c2 + 2 * y, 1);
                  osordinat;end; end; until abs(y) = 225;end; end;end;end. //Чтобы сократить колличество строк

    Первокурсник, представляю код от бога, который должен рисовать и распознавать по введенным данным кривую 2-го порядка. Если вы умрете со смеху, я не виноват.

    Запостил: Petr-Koshka, 18 Ноября 2015

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

    • БОЛЬШЕ ПЕРЕМЕННЫХ!!!!!!1
      Ответить
      • для бога переменных!!!!
        больше макросов для трона макросов!!!
        Ответить
    • студентокод.ru там -->
      Ответить
    • s/osordinat/ordinateaxis/
      Ответить
      • Откуда вы этот s/// берете? Если из sed, то правильнее s||| - не надо экранировать.
        Ответить
        • А что там нужно экранировать? Или речь о том, что в обрабатываемых текстах "/" встречается с большей вероятностью, чем "|"?
          Ответить
          • Спецсимволы регекспов
            Ответить
            • Какие спецсимволы, в какой ситуации?
              Например, sed 's/питух+/питух/' так же, как и sed 's|питух+|питух|' не работает без экранирования "+". К тому же, во втором случае "|" становится недопустимым, а "\|" означает "|", а регулярочное "или" вообще фиг знает, как сделать.
              Ответить
              • Пайп (|) удобнее использовать, когда пути в файловой системе переписываешь седом, в путях много прямых слэшей. Спец-символы регулярок, разумеется, тут не при чём.
                Ответить
              • Хуй его знает. У меня было так: sed -e "s|)|],|g" , на кой-то хрен я его использовал.
                Ответить
                • http://superuser.com/a/422467
                  Ответить
                  • \Qтекст, содержащий символы, совпадающие с разделителями\E

                    Красиво.
                    Ответить
                • Всё ещё нет различий:
                  > echo "f(x,y) f(y)" | sed -e "s/)/],/g"
                  f(x,y], f(y],
                  > echo "f(x,y) f(y)" | sed -e "s|)|],|g"
                  f(x,y], f(y],
                  > echo "f(x,y) f(y)" | sed -e "s/\)/\],/g"
                  sed: -e expression #1, char 10: Unmatched ) or \)
                  > echo "f(x,y) f(y)" | sed -e "s|\)|\],|g"
                  sed: -e expression #1, char 10: Unmatched ) or \)


                  > http://superuser.com/a/422467
                  Там сказали то же, что и Роман.

                  Проблема будет, если использовать \ - тогда с экранированием какая-то жопа.
                  Или если заменять путь, в котором есть несколько \ подряд: тогда с двойными кавычками надо ставить больше \, чем в случае одинарных кавычек.
                  Ответить
                  • Не забывайте, что в sed с круглыми скобками всё наоборот:
                    ) — это просто знак «скобка» (один символ в потоке);
                    \) — это ограничитель группы символов.

                    А с квадратными скобками всё нормально:
                    ] — это ограничитель группы символов;
                    \] — это просто знак «квадратная скобка» (один символ в потоке).
                    Ответить
                    • Вася очень любит unix, а Петя его (Васю или его ОС? Обоих?) просто ненавидит. Вася хочет доказать Пете, что в unix всё просто и понятно. Петя сказал, что поверит, если Вася скажет, сколько символов "\" должно встретиться в скрипте при определённых условиях с погрешностью не более 20%. Поскольку Петя ненавидит Васю и не хочет его видеть, он посылает Васе файл по почте. В первой строке Петя пишет название команды; во второй - 1, если кавычки одинарные или 2, если двойные; в третьей строке - регулярное выражение. Вася, получив файл, создаёт в папке ~vasya/petya файл "regexp.sh", в котором вызывает указанную команду с правильно записанным указанным регулярным выражением. Когда отлаженный ~vasya/petya/regexp.sh выполняется и делает то же самое, что и Петино регулярное выражение в браузере, Вася посылает Пете число знаков "\" в ~vasya/petya/regexp.sh.
                      Вася успешно доказывал Пете, что в unix всё просто и понятно в течение месяца, а потом устал. Помогите Васе и напишите программу, которая читает из файла INPUT.TXT то, что прислал Петя, а затем пишет в OUTPUT.TXT то, что мог бы ответить Вася (целое число), если бы не устал.
                      Ответить
                    • Что меня в нем взбесило когда я первый раз с нм начал ебстись.
                      Ответить
            • Опять ты хуйню сморозил.
              Ответить
            • Эй, пидар, сколько хуев ты сегодня пересосал уже?
              Ответить
              • А ты с какой целью интересуешься?
                Ответить
                • Отвечай на вопрос, петушок!
                  Ответить
                  • Так ты и есть петух, раз пидаров ищешь.
                    Ответить
                    • >Так ты и есть петух, раз пидаров ищешь.
                      У фашиков совсем плохо с логикой.
                      Ответить
                      • >У фашиков
                        Курточка, не надоело? Ничего нового еще не придумал?
                        Ответить
                        • Пидар, ты еще и фашист? Деды таких как ты на столбах вешали и в лагерях гноили!
                          Ответить
                      • Я твою мать ебал!
                        Ответить
        • А почему не s@@, не s##, или не s``?
          Ответить
          • s龖龖 чтоб уж наверняка.
            Ответить
            • Интересно, как они такие иероглифы читают? У меня вообще линии сливаются.
              Ответить
              • А ты думаешь, почему большинство китайцев и японцев ходят в очках? Вот вьетнамцы — молодцы: перешли на латиницу и очки не нужны.
                Ответить
                • А вот прикинь без компа это в словаре искать... Сколько черт в этом иероглифе? :)
                  Ответить
                  • 17*3?
                    Пришлось выставить максимальный зум в лисе, а потом судорожно скроллить распидорашенную страницу.
                    Ответить
                    • Вики говорит, что 32. Но у меня тоже почему-то получается по 17 на блок...
                      Ответить
                      • *2, да,
                        Но всё равно, почему 16... Ссаные читеры!
                        Ответить
                        • http://rghost.net/7dSvqsb7Y.view

                          Как-то так?
                          Ответить
                          • Правдоподобно. Я до такого не доучился, так что утверждать не берусь.
                            Ответить
                            • Да, так и есть. Вот от его половинки порядок:

                              https://upload.wikimedia.org/wikipedia/commons/b/b4/龍-order.gif
                              Ответить
                              • Поначалу не обратил внимания на иероглифы выше. Эту половинку (дракон) я использую в своем нике (в год дракона родился)
                                Ответить
                • 鸞 Вот этот вообще расплылся. А ведь если на какой-нибудь японский сайт зайти, они там ненамного больше...
                  Ответить
                  • Две нити, речь и птица... Что оно значит, кстати?
                    Ответить
                    • Птица Луань.

                      鸞 [ran]
                      1. Луань (волшебная птица в китайской
                      мифологии, разновидность феникса)
                      2. колокольчик на экипаже китайского
                      императора
                      Ответить
                      • Тот случай, когда перевод никак не прояснил ситуацию.
                        Ответить
                      • Проще настоящего феникса нарисовать
                        Ответить
                  • На Винде со стандартным растеризатором размазывается в кашу, а с gdipp половину линий видно даже в масштабе 100%, а в 150% видно всё.
                    Ответить
                    • А фаерфокс, сука, не показывает, во сколько раз зум включен...
                      Ответить
                    • Покрутил размер шрифта в отладчике - походу хинтинг заточен под 28px (20pt). Иероглиф вообще идеально читается.
                      Ответить
                    • На приёме у японского окулиста:
                      シナ
                      まぬみ
                      鬱鸞鸛鶴欟
                      Ответить
                      • Если не назвал букву правильно - делаешь сэппуку
                        Ответить
              • >линии сливаются
                Прыщепроблема?
                Ответить
                • гуглхром под линью норм показывает FF лень запускать.
                  Ответить
                  • А в 鸞 все черточки видишь? :)
                    Ответить
                    • Тест необъективен, ведь он может зачитерить - распознать все элементы и просуммировать количество черт в каждом
                      Ответить
                      • Да у них вообще подсчёт чёрточек читерский.

                        К примеру, в иероглифе их три.
                        Ответить
                        • Такие правила каллиграфии, щито поделаешь.
                          Ответить
                          • У коллеги была кружка с каллиграфическим иероглифом. Мы почти час угробили, чтобы его распарсить...
                            Ответить
                            • Может еще с няшной скорописью, когда один кракозябр сливается в плавный безотрывный высер шизофреника? :3
                              Ответить
                              • Да, именно такой. Половина иероглифа одной чертой.
                                Ответить
                    • Кстати, можно писать иероглифы курсивом!

                      Ответить
                      • http://i.imgur.com/TJYczXt.png
                        Ответить
                        • Первый жирный, второй курсив, третий нормальный, четвертый подчёркнут, пятый зачёркнут. Как-то так я их рисовал.
                          鸞鸞鸞鸞鸞
                          Ответить
                    • верхние штучки вот у них ножки даже вижу. вот заскринил.
                      https://www.evernote.com/shard/s311/sh/74e37adf-1832-4856-99ce-bb492f4e79cf/c2af77030f424391d1ccde2e06713f39
                      Ответить
                      • Правая нить вообще распидорашена. У меня в хроме точно так же, к слову.
                        Ответить
                    • Сравним.

                      Без gdipp: http://i.imgur.com/iuPI1bs.png
                      С gdipp: http://i.imgur.com/Obr4tKR.png

                      На всякий случай под gdipp подразумевается эта штука:
                      http://code.google.com/p/gdipp/

                      Кстати, Гуглокод стоит в очереди на мемориальное кладбище.
                      Ответить
                  • У меня в хроме еще большая каша. Очевидно, очень зависит от конфигурации прыщефонтконфига.
                    Ответить
    • > Элипс
      > колличество
      Нередко человеку дарят over 9000 запятых, когда он их не ставит. А тут такой баланс: ни убавить, ни прибавить. Шах и мат, граммар наци.
      Ответить
      • парабалойд
        Ответить
      • А помните бота, который переставлял кубвы в случайных солвах?
        Ответить
        • Вы таки хотите сказать, что он развился до уровня текста?
          Тревожно, однако. Так он скоро нам Интернет переставит.
          Ответить
        • Да такого кжыдай пасил, даже я
          Ответить
      • Буква л упала из эипса
        в слово "коллличество"

        так бывает
        Ответить
    • Опять первокурсник.
      Ответить
    • Походу мой говнокод удался если у него столько анлайков))))я рад
      Ответить

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