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

    +154

    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
    //TransFunc.h
    
    //Девиз
    #ifndef MyOwn
    #define MyOwn
    #define Blackjack J♠
    #define Hookers
    #endif
    
    class TransferFunction
    {
    private:
      //...
      class Polynom
      {
        Polynom(TransferFunction * Base);  //Ссылка на базовый класс обязательна!
        //...
      }
      Polynom *Numerator, *Denominator;
    
      //...
    
      class TransferProcess
      {
        TransferProcess(TransferFunction * Base); //Ну куда же я без него...
        DynamicArray<double> TransGraphic;  //Данные графика.
        //...
      }
      TransferProcess * TrancProc;
    
      //...
    
      class SystemOptimisator
      {
        SystemOptimisator(TransferFunction * Base); //Именно так и никак иначе.
        TransferFunction * TempFunction;  //Это я так, на всякий случай...
        Polynom *Backup_Numerator, *Backup_Denominator;
        DynamicArray<Polynom> CorrectingDevice;  //А чо? Работает ведь...
        //...
      }
      SystemOptimisator * Opt;
    
    //Тут ещё классы "Matrix", "Vector", "Report"  и многие другие.
    
    publuc:
      TransferFunction();
      ~TransferFunction();
      void Optimize();
    };

    Краткость - сестра таланта:-)
    Захотелось мне удивить преподавателя (в программировании он не особо подкован (впрочем, как и я :-) )) короткой и простой "программой". Оно работало, до определенного момента, когда я попытался вставить ещё один класс... Потом я, конечно, всё переписал, по-человечески структурировав и избавившись от DynamicArray, но эти грабли я запомнил на всю жизнь.

    Запостил: maniac, 14 Июня 2010

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

    • я чето не пойму почему оно перестало работать...
      Ответить
      • показать все, что скрытоВсе просто -- ты кодообезьянка.
        Ответить
      • Уже и не помню, почему оно перестало работать - снес с харда прежние исходники, чтоб ни бита не осталось. То ли там было рекурсивное создание объектов, то ли удаление из кучи по несуществующим указателям... Склоняюсь к мысли, что и то и другое :-)
        Ответить
        • в приведенном куске кода этого нет...
          по ходу что-то из разряда догадайтесь сами??
          Ответить
          • Код набросал по памяти, в реальности всё было куда более говнистее.
            А ошибка, вроде, здесь:
            TransferFunction * TempFunction;  //Это я так, на всякий случай...

            Типа, в конструкторе TransferFunction создается SystemOptimisator, в конструкторе которого создается TransferFunction, в конструкторе которого создается SystemOptimisator...
            Ответить
            • где в этой строке написано что что-то создается??
              где написано что что-то создается в конструкторе TransferFunction??
              Ответить
              • Ну извиняйте, тов. pushkoff, реализации как-то лень вспоминать:-) Да и говнистость кода не в этом заключена.
                Ответить
                • а в чем говнистость?
                  Ответить
                  • В структуре всей этой х..ни. Жопой чую, что говнокод, сам ведь писал :-)
                    Да и "работало" оно около 2-3 минут против 3-5 секунд переработанной версии.
                    Ответить
                    • в структуре все нормально... говнокод под троеточиями, а вам их впадлу было постить...
                      Ответить
                      • То есть я не говнокодер? ;-)
                        И всё-таки в структуре класса достаточно нечистот. Учту в следующий раз, что нужно описывать посты более подробно.
                        Ответить
        • Ты тоже кодообезьянка.
          Ответить
    • страйкер, за что анонимусам снова разрешил постить каменты ? :-(
      Ответить
      • Потому что без нас это превращается в унылое говно. Два коммента - норма.
        Ответить
      • Ололо, у вас бугурт, приложите лёд...
        Ответить
      • Потому что без анонимусов тут одни дегенераты типа вебкилов и инкрезонов
        Ответить
        • Обоснуй!
          Ответить
          • Ты мудак, это очевидно...
            Ответить
            • показать все, что скрытоЗасунь своё ad hominem себе в жопу!
              Ответить
              • М-м-м... Любитель анальной стимуляции, это хорошо, пропишем поциенту живительную дилду.
                Ответить
                • показать все, что скрытоОзабоченный малолетний долбоёб!
                  Ответить
                  • Мы вкурсе твоего заболевания малолетним долбоебизмом, и делаем все возможное, чтоб продлить... лулзы.
                    Ответить
                    • показать все, что скрытоЯ с тебя \ловлю лдулзы, дурень
                      Ответить
                      • Ладно, не отвлекайся. Время -- деньги. Одному сайт прачечной на друпале срочно понадобилось SEO. Платят $ 15.

                        Иди бабки зарабатывай, а не с нами тусуйся.
                        Ответить
                        • показать все, что скрытоТри дня выходных, тащем-та. Имею право потусоваться.
                          Ответить
                          • А что, на летнюю школу оставили? Литературу не сдал?
                            Ответить
                            • я закончил школу уже как бы
                              Ответить
                              • Точно, алые паруса же были недавно.
                                Поздравляю с началом взрослой жизни! Скоро тебе предстоит выбрать себе профессию
                                Ответить
                                • Кажется он её уже выбрал. На него возложена ответсвенная мИссия: "Убить Веб. Да прибудет Спаситель! МиссИя!"
                                  Ответить
                                  • Судя по тому, что его родной говносайт не только омерзителен по дизайну и написан на устаревшем HTML 4.01, так еще и содержит более ста ошибок валидации (я не шучу -- скормите его сайт в валидатор w3с) -- можно сделать вывод, что веб он уже убил.

                                    А сайт свой наверное во frontpage express делал. И эта личинка будет еще нас тут программированию учить, ага
                                    Ответить
                                  • не шути над иисусом
                                    Ответить
                                    • Про Иисуса тут небыло сказанно ни слова.
                                      Ответить
                                      • а это что:

                                        "Убить Веб. Да прибудет Спаситель! МиссИя!""
                                        Ответить
                                        • >МиссИя!
                                          Лол) Мессия пишется. Русский язык хоть проходил уже в школе? Или пока в прописях пишешь?

                                          >Убить Веб. Да прибудет Спаситель!
                                          http://ru.wikipedia.org/wiki/Terminator_Salvation
                                          Ты же должен остановить Скайнет(небесная сеть, интернет, веб2.0)! Терминаторы близятся...
                                          Ответить
              • А-а-а!
                Отлично парировано. Я б не догадался называть это ad hominem!
                Ответить
                • Ддд... ad hominem! А что это значит? Почему так круто парировано?
                  Ответить
                  • У нас это называется «переход на личности». Но использование именно латинского термина... Ахтунг, интеллектуалы в каментах!
                    Ответить
                    • Ахтунги в камментах? Пора сваливать...
                      Ответить
                    • Чувак просто перечитал Википедии.
                      http://ru.wikipedia.org/wiki/Ad_hominem
                      Глупо дрочить на онную. Интелект выше от этого не станет. Просто забросит на свой чердак лишний бардак(фактик).
                      Ответить
                      • > Чувак просто перечитал Википедии

                        Щас вот принято, когда быдло слышит что-то слишком интеллектуально для него непостижимое , говорить "гугл рулит" или "перечитал википедию".

                        А до появления интернета, интересно, как вы изворачивались? "В библиотеку много ходишь?"
                        Ответить
                        • >>А до появления интернета, интересно, как вы изворачивались? "В библиотеку много ходишь?"

                          до появления Интернета нас всех тут не сидело.
                          Интернет появился довольно таки давно. Это ты, ламер, думаешь что Интернет появился когда ты первый порно-сайт открыл.
                          А ему уже черте сколько лет. Ты тогда не то что на PHP своем -- на бейские-то писать не умел
                          Ответить
                          • Да, сначала только американские военные могли качать прон. Потом, сильно потом, это начали делать студенты и ученые... А потом и школьники.
                            До нас дошло в 94, но у нас тогда сексуальная ориентация была "интернет", поэтому мы мудились дни и ночи напролет.

                            А вот Александр Суханов, он да. Сам видел!
                            Ответить
                          • > Интернет появился довольно таки давно.
                            > А ему уже черте сколько лет.

                            инет стал набирать обороты в США только где-то к 1996 году, а в - СНГ ближе к 2002 г. (про Мосвкву не знаю) Если для тебя это давно и "чёрте сколько лет", то ты школота, палишься. Ещё 4 ребёнка заплюсовало. Срыв покровов с контингента говнокод.ру
                            Ответить
                            • у меня инет с 2002 года, у многих моих друзей с 2000... я из города с населением 30000 чел...
                              Ответить
                              • ну вот и молодец!

                                правда, то что у меня было в 2002 году нельзя назвать интернетом - диалап с 30 рублей в час с постоянными дисконнектами (

                                полноценный интернет появился совсем недавно (в 2006-2007)

                                хоть интернет и появился в конце 80-90х, вплоть до 1998 года это была унылая дыра, см. http://en.wikipedia.org/wiki/File:WIntHosts1981-2009.jpg
                                Ответить
                                • в 2002 выбор был особо невелик... либо диалап, либо тарелка...
                                  Ответить
                                • Вот сижу и умиляюсь. Dialup не интернет.
                                  Сходить по собственной ссылочке с википедии лень (там экспонента с 84 года, так что про набор оборотов помолчал бы).
                                  Ответить
                                  • > Вот сижу и умиляюсь. Dialup не интернет

                                    не погнял
                                    Ответить
                                • Да ну, нормально хватало. Тогда же появились первые ROM и жизнь начала налаживаться:)
                                  Ответить
                                • >>полноценный интернет появился совсем недавно (в 2006-2007)
                                  Ну послушайте, Вы и программировать в 2008м начали, это же не значит что всем языкам программирования всего пара лет.
                                  Ответить
                                  • речь была первоначально о постоянных выражениях типа "парень перечитал википедию". я спросил, а до интернетов что подобное быдло говорило об умных. википедия то ещё позже появилось. а потом набегли гесты и давай комментировать не понимая, о чём речь вообще.
                                    Ответить
                                    • >а потом набегли гесты и давай комментировать не понимая, о чём речь вообще.
                                      Может ты не мог обьяснить о чем речь вообще?
                                      Ответить
                                      • я употребил простое и понятное любому образованному человеку выражение ad hominem, а местная параолимпийская сборная начала этим восхищаться, а один выразил мнение, что "Чувак просто перечитал Википедии"
                                        Ответить
                                    • до интернетов была большая советская энциклопедия...
                                      Ответить
                                      • > до интернетов была большая советская энциклопедия...

                                        вот! тка и надо было ответить! точно. БСЭ перечитался парниша... хотя это скорее ремарка к аргументации устаревшими данными )
                                        Ответить
                                        • Да, был еще до войны юмористический рассказ про чувака, который клеил телку, оперируя фактами из дореволюционного БЕ, а она его срезала фактами из БСЭ:)
                                          Вот забыл, кто написал, а искать лень.
                                          Ответить
                                • >>хоть интернет и появился в конце 80-90х,
                                  :)))))
                                  да ну? а я думал в 83м уже на IP перешли.

                                  Скорее всего ты, как и все ламеры, путаешь Интернет и WWW.
                                  Иди RTFM читай, школьник:(((.
                                  Ответить
                                  • > да ну? а я думал в 83м уже на IP перешли.

                                    я говорю о появлении интернета с более=меенее современном виде, а не в виде одиночных кривых студенческо-военных сетей соединённых друг с другом соплями причём без википедии (((
                                    Ответить
                                    • Ну без википедии вебкил не может. О книжках ничего не знает.
                                      Ответить
                                    • Да-да, и Торвальдс с его юзнетом тоже сидел в "соединенный соплями сетях", ага.

                                      Ты просто не знал, когда появился Интернет, или (как тут правильно сказали) -- спутал его с WWW.
                                      Ты плохо разбираешься в компьютерах, так имей мужество это признать и слушай тех, кто тебя учит, а не крутись как уж на сковородке.
                                      Ответить
                                      • я хорошо разбираюсь в компьютерах, но плохо в сетях, признаю. сети это не единственное чтоесть.
                                        Ответить
                                  • > Скорее всего ты, как и все ламеры, путаешь Интернет и WWW.

                                    ничего плохого в смешивании этих понятий нет, в лингвистике это называется метонимия
                                    Ответить
                                    • >>ничего плохого в смешивании этих понятий нет
                                      Если ты ламер -- то и правда нет. Я бы рассказал тебе про таблицу OSI, и про то, что HTTP это один из тысяч прикладных протоколов Интернета, но боюсь что тебе рано пока.
                                      Так что поверь на слово: Интернету больше лет, чем тебе.
                                      Ответить
                                      • ты придираешься к словам. я имел в виду интернет в современном, "общем" употреблении, а не в технически-теоретическом-ботаньем-девушки-нет-ебу-свой-рука. почитай какую-нибудь лингвистическую книгу.

                                        наш диалог подобен следующему:

                                        - Я сегодня читал Пушкина.
                                        - Как ты мог читать Пушкина? Он же человек? Людей невозможно читать! У них нет страниц! ТЫ болен?
                                        - Это метонимия.
                                        - Нет, ты ламер, потому что не можешь отличить человека от книги.

                                        Уйди. Ты малограмотен и вызываешь отвращен.
                                        Ответить
                                        • >> а не в технически-теоретическом-ботаньем-девушки-нет-ебу-свой-рука.

                                          С этого и надо было начинать.
                                          Если техника тебе не приятна, и ты у нас гуманитарий -- то вообще не очень понятно хуйли ты тут делаешь.
                                          Это тебе что, стихиру что ли?
                                          Ответить
                                          • Нет, просто я образован сразу в обеих сферах, а ты ограниченный.
                                            Ответить
                                            • За лингвистику не скажу, но в информационных технологиях ты явно слаб. То сравниваешь ФЯ и ООП, то говоришь что в "ООП нет инкапсуляции, потому что все методы доступны через геттеры" (это кстати запах "envy class"), то говоришь что Интернет появлся в 90х....
                                              Ответить
                                              • > ООП нет инкапсуляции, потому что все методы доступны через геттеры"

                                                что? в распространённых ООП-реалиацияю нет инкапсуляции, потому что все методыполя доступны через геттеры (покрайней мере обратное считается много где моветоном)

                                                > то говоришь что Интернет появлся в 90х....

                                                так и есть.

                                                > То сравниваешь ФЯ и ООП

                                                А почему нельзя сравнить?
                                                Ответить
                                                • Ты уже одолел своей упоротой безграмотностью.
                                                  Ответить
                                                • >>что? в распространённых ООП-реалиацияю нет инкапсуляции, потому что все методыполя доступны через геттеры (покрайней мере обратное считается много где моветоном)

                                                  Для альтернативно одаренных имбицилов повторяю:
                                                  В хорошей программе (написанной НЕ вебкилом) бОльшая часть полей приватна, и аксессорв публичных не имеет, так как отражает внутреннее состояние объекта.
                                                  Если ВСЕ поля объекта доступны снаружи (напрямую или через аксессор/мутатор -- похуй) то это или DTO или его писал вебкил.
                                                  Так не бывает.

                                                  >>так и есть.
                                                  Ты кащенит или кретин?
                                                  Тебе говорят взрослые дяди: в 83м уже всемирная сеть перешла на IP, и если ты первый раз увидел порнуху в 2007м, то это не значит что до этого Интернета не было.

                                                  >>А почему нельзя сравнить?
                                                  Потому что если бы ты тратил время не на высеры о том, чт0 "c++ говно", а на чтение книг например, то ты бы знал, что ФЯ и ООП находятся на разных уровнях, так как ООП это частный случай императивных языков, и сравнивать с ФЯ можно именно их.

                                                  Иначе это тоже самое, что сравнивать внутреннее объединение в реляционках и документо-ориентированные базы данных.

                                                  Но ты сейчас скажешь, что с точки зрения лингвистики это всё не важно, а мы тут все технари-задроты, ага
                                                  Ответить
                                                  • > Если ВСЕ поля объекта доступны снаружи (напрямую или через аксессор/мутатор -- похуй) то это или DTO или его писал вебкил.

                                                    бля.... ты походу не въезжаешь чо я говорю... ты наркоман? ты краб? я не говорил, что все поля должны быть открытыми... пиздец...

                                                    > Тебе говорят взрослые дяди: в 83м уже всемирная сеть перешла на IP, и если ты первый раз увидел порнуху в 2007м, то это не значит что до этого Интернета не было.

                                                    опять наркоманишь... я говорил о становлении всемирной сети как о распространённом явлении, о котором знают и пользуются многие... а это случилось именно ближе к 1998 г. в сша, и к 2002 г. в россии... а до этого доступ был не у многих... а ты продолжаешь левую пургу гнать про ip... гений бля, я это и так знаю...

                                                    > ООП это частный случай императивных языков,

                                                    и чо (хотя это некорреткное утверждение)? я как раз сравнивл ООП-ориентированные императивные языки с алгебраический-тип-ориентированными функциональными. И чо дальше, капитан очевидность?

                                                    > Но ты сейчас скажешь, что с точки зрения лингвистики это всё не важно, а мы тут все технари-задроты, ага

                                                    так и есть, я уже сказал, что я имел в виду в том посту под выражением "появление интернета", а ты продолжаешь гнуть линию про его буквальное происхождение (когда им пользовалось три с половиной пиндоса). я-то лучше знаю, что Я имел в виду, ага
                                                    Ответить
                                  • Точно, а еще иожно указать на разницу между интернетом и Интернетом.

                                    Кто тут читал «TCP/IP в картинках»?
                                    Ответить
                                    • интернет - как средство общения, типа телефона, телевизора

                                      Интернет - как название сети

                                      съел???
                                      Ответить
                                      • Как-то так, да.
                                        Там (и, кажется, в каком-то RFC тоже видел) под Интернетом понимался интернет в его знакомом нам глобальном смысле. А под интернетом просто кучка компьютеров, соединенная в сеть.
                                        А потом появились всякие ланы, пативаны и маны, интранеты и черт-те что, и сбоку бантик, и на терминологию положили ПСС Ленина.
                                        Ответить
                                      • И я претензий не имею и наездов не чиню, просто для поддержания разговора ляпнул:)

                                        Peace!
                                        Ответить
                                        • "интернет это типа телевизора" (c) Webkill
                                          Ответить
                                      • (ржот) чувак, ты походу такой тупой, что даже гуглом пользоваться не можешь.

                                        интернет -- любая сеть на IP.
                                        Интернет -- всемирная сеть.
                                        Иди RTFM читай, школьник
                                        Ответить
                                        • > интернет -- любая сеть на IP.
                                          > Интернет -- всемирная сеть.

                                          Я это и сказал.
                                          Ответить
                • Ммм... Понял. Да. Круто. И совсем не по ВебКиловски. Я уже начинаю думать, что наш ВебКилушка очень ВебКуульный. :)
                  Ответить
    • ZeroMemory(&guest, sizeof(guest));
      Ответить
      • Сосни длинный и мясистый General Protection Fault.
        Ответить
        • Эх-х... Куда делся старый-добрый Intel 8080... Он так не огрызался, спокойненько выполнял и код, и данные... Теперь вот паять придется...
          Ответить
          • Старый-добрый огрызок пародии на хуепроцессор.
            Ответить
    • >publuc:
      %)
      Ответить
    • >>#ifndef MyOwn
      >>#define MyOwn

      пзц! я тут впервые, но мне очевидно что надо быть полным WebKillом что б так написать
      Ответить
      • паходу ты и в плюсах\сях впервые
        #pagma once не все компилеры поддерживают

        другое дело, что #endif не там где надо стоит
        Ответить
        • всё зависит от контекста, моежт быть, всё стоит там, где надо
          Ответить
          • Хуйло, ты даже не знаешь про include guard. Ты жалок и ничтожен.
            Ответить
            • знаю
              Ответить
              • Уже успел погуглить? Изумительно хорошо дрессированная мартышка.
                Ответить
                • вот пример из моего кода, бял

                  #ifndef WBOSS
                  #define WBOSS
                  
                  #define WBOSS_ONE 1
                  #include <stdio.h>
                  
                  int wbossLib_Factorial( int N )
                  {
                      if ( N <= WBOSS_ONE )
                          return WBOSS_ONE;
                      else
                          return  N * factorial( N - WBOSS_ONE );
                  }
                  
                  /* --- */
                  
                  #endif // WBOSS


                  всё я зхнаю
                  Ответить
                  • Ты ничерта не знаешь, полнейший абсолютный ноль. И в нагрузку -- гуманитарная блядь.
                    Ответить
                    • гуманитарная блядь и техносутенёр
                      Ответить
                      • >техносутенёр
                        Блэкджек и шлюхи? До VSL, с его технофашизмом, тебе далеко...
                        Ответить
                  • >WBOSS
                    Вброс?
                    Ответить
                  • >>#ifndef WBOSS
                    >>#define WBOSS

                    Это потому, что пару дней назад гест научил тебя инклуд гарджм?

                    >>#define WBOSS_ONE 1
                    Ебанись. А WBOSS_FOURTY_TWO у тебя нет?

                    Если бы ты не был задротом -- борцом-с-современными-технологиями, то ты бы читал Фаулера (а не гей-коммиксы) и знал бы как такой запах называет.
                    "#define ONE 1" бля, чем не говнокод?

                    >>int wbossLib_Factorial( int N )
                    Код стайл мощнейший. то камел, то с прочерком, то переменная с большой буквы -- ты из разных частей Интернета что ли его копипиздил?

                    >>if ( N <= WBOSS_ONE )
                    Тренарные операторы мы не проходили что ли?

                    >>factorial
                    Это что еще за зверь?
                    Ты сам его в модуле определил что ли?
                    ничего не скажешь -- круто: wbossLib_Factorial и factorial, что бы удобнее читать было.
                    Я бы посоветовал тебе сделать рефакторинг, но ты не знаешь, что это такое.

                    >>/* --- */
                    Это что за кавайная няка? ^_^ ?
                    Туду на элфийском?

                    >>#endif // WBOSS
                    А //WBOSS видимо что бы не терятся. Обычно у тебя файл из 8000 строк, и в нем примерно 42 таких endif, причем через 200 строк if, верно?
                    Без комментария такого тебе никак
                    Ответить
                    • > Это потому, что пару дней назад гест научил тебя инклуд гарджм?

                      нет, потому что я знаю, что такое гарды.

                      > Ебанись. А WBOSS_FOURTY_TWO у тебя нет?

                      хотел проверить твою реакцию

                      > Фаулера

                      не упоминай всуе этого ебанутого

                      > Код стайл мощнейший. то камел, то с прочерком, то переменная с большой буквы -- ты из разных частей Интернета что ли его копипиздил?

                      о, заметил, молодец

                      > Тренарные операторы мы не проходили что ли?

                      С какой стати он тут нужен? Точнее, какие преимущества? Это всё равно что "кого любишь больше, маму или папу". Никакой разницы не вносит.. Разве что любителям ФЯ даст повод подрочить.

                      > Ты сам его в модуле определил что ли?
                      ничего не скажешь -- круто: wbossLib_Factorial и factorial, что бы удобнее читать было.

                      Это был намёк на то, что я стебусь, а ты не проссал и столько нафлудил (мне-то непривыкать флудить, гыгы).

                      > Это что за кавайная няка? ^_^ ?
                      > Туду на элфийском?

                      Тьфу-ты, промазал, троеточие ъотел написать. Так пишут, когда сообщают, что что-то поскипано в цитате (как в "<..>" в русском языке).

                      > А //WBOSS видимо что бы не терятся. Обычно у тебя файл из 8000 строк, и в нем примерно 42 таких endif, причем через 200 строк if, верно?

                      Это правило хорошего тона - у инклюд-гардов ставить чем закрывается.

                      > Обычно у тебя файл из 8000 строк, и в нем примерно 42 таких endif, причем через 200 строк if, верно?

                      А если я пишу кросплатформенную портянку?
                      Ответить
                      • >А если я пишу кросплатформенную портянку?
                        Полюбасу красивее маленькие кусочки сделать дефайнами в одном месте. А если их много, то все в отдельный файл для данной платформы.
                        А то я давеча видел работу с сокетами в openssl, плевался. Повбывав бы!
                        Ответить
    • Должно быть:
      #define Hookers ♥$
      Ответить

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