1. Java / Говнокод #28015

    +1

    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
    98. 98
    public class ExampleW{
        public static void main(){
            Scanner input = new Scanner(System.in);
            System.out.println("Give mark: ");
            int mark = input.nextInt();
            String Grade;
            switch (mark){
            case 100:
            case 99:
            case 98:
            case 97:
            case 96:
            case 95:
            case 94:
            case 93:
            case 92:
            case 91:
            case 90:{
                Grade = "A+";
                break;
            }case 89:
            case 88:
            case 87:
            case 86:
            case 85:
            case 84:
            case 83:
            case 82:
            case 81:
            case 80: {
                Grade = "A";
                break;
            }case 75:
            case 76:
            case 77:
            case 78:
            case 79:{
                Grade = "A-";
                break;
            }case 70:
            case 71:
            case 72:
            case 73:
            case 74:{
                Grade ="B+";
                break;
            } case 69:
            case 68:
            case 67:
            case 66:
            case 65:{
                Grade ="B";
                break;
            }
            case 64:
            case 63:
            case 62:
            case 61:
            case 60:{
                Grade = "C+";
                break;
            }case 50:
            case 51:
            case 52:
            case 53:
            case 54:
            case 55:
            case 56:
            case 57:
            case 58:
            case 59: {
                Grade = "C";
                break;
            }case 45:
            case 46:
            case 47:
            case 48:
            case 49:{
                Grade = "D";
                break;
            }case 40:
            case 41:
            case 42:
            case 43:
            case 44:{
                Grade = "E";
                break;
            }case 0:
            case 1:
            case 2:
            case 3:
            ...
            ...
            }default: {
                Grade = "null";
                break;
            }}
    }

    Запостил: Мистер Хэнки, 15 Февраля 2022

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

    • Что Вы хотите этим сказать, мистер?
      Ответить
    • Код прям для той нейронки.
      Ответить
      • Проверим:

        public class ExampleW{
            public static void main(){
                Scanner input = new Scanner(System.in);
                System.out.println("Give mark: ");
                int mark = input.nextInt();
                String Grade;
                switch (mark){
                case 100:
                case 99:
                case 98:
                case 97:
                case 96:
                case 95:
                case 94:
                case 93:
                case 92:
                case 91:
                case 90:{
                    Grade = "A+";
                    break;
                }case 89:
                case 88:
                case 87:
                case 86:
                case 85:
                case 84:
                case 83:
                case 82:
                case 81:
                case 80: {
                    Grade = "A";
                    break;
                }case 75:
                case 76:
                case 77:
                case 78:
                case 79:{
                    Grade = "A-";
                    break;
                }case 70:
                case 71:
                case 72:
                case 73:
                case 74:{
                    Grade ="B+";
                    break;
                }case 69:
                case 68:
                case 67:
                case 66:
                case 65:
                case 64:
                case 63:
                case 62:
                case 61:
                case 60:{
                    Grade ="B";
                    break;
                }case 50:
                case 49:
                case 48:
                case 47:
                case 46:
                 case 45:
                case 44:
                case 43:
                case 42:
                case 41:
                case 40: {
                    Grade ="C+";
                    break;
                }case 39:
                case 38:
                case 37:
                case 36:
                case 35:
                case 34:
                case 33:
                case 32:
                case 31:
                 case 30:{
                    Grade ="C";
                    break;
                }case 25:
                case 24:
                case 23:
                case 22:
                case 21:
                case 20:{
                    Grade ="D";
                    break;
                }
                }
                System.out.println("The mark "+ Grade + " is good");
                }
            }
        }
        Ответить
        • После 20 баллов ей надоело?
          Ответить
          • Эта нейросеть не в первый раз ведёт себя, как человек: то путает числа, то устаёт. Из неё бы вышла отличная решалка капчи...
            Ответить
    • Раньше были перекаты, сейчас все перекаты только от xyz бота имени борманда, скучно живем.
      Ответить
      • Солнце скрылось за горою
        Затуманились речные перекаты
        Ответить
        • Астрология - это наука о взаимоотношениях между людьми и звездами
          Ответить
          • Морскими звёздами? Звёздами на погонах?
            Ответить
            • Которые на сцене выступают.
              Ответить
              • Морские звёзды выступают на сцене?
                Ответить
                • Крокодил значительно интересней, чем броненосец, потому что из него можно сделать интересные сумочки
                  Ответить
                  • Твои комментарии напоминают тирлайны в раздетом дедушке.
                    Ответить
                    • Женщины придумали женскую логику, чтобы проверять мужчин на вшивость
                      Ответить
                      • Люди там странные, как будто чумы объелись
                        Ответить
                        • Реактивное движение это то, которое делается очень быстро и в правильном направлении
                          Ответить
                        • Вот этот чотко вписывается в диапазон уебков
                          govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/26133"])
                          govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/26134"])
                          govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/26135"])
                          govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/26137"])
                          Ответить
                          • Вот так правильнее:

                            govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/26133"])
                            govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/26134"])
                            govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/26135"])
                            govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/26137"])
                            govnokod.*##div.entry-comments div.entry-comment-wrapper:has(p.entry-info > strong.entry-author a[href$="/68019"])


                            Не благодари.
                            Ответить
                    • Когда-то Рената Муха напечатала в журнале стихи-окончания и предложила написать к ним начало.

                      Окончания были такие

                      - Ну не плачь,- сказала Мышка:
                      все равно кастрюле крышка!


                      -И это для Дятла такая наука,
                      Что он никуда не заходит без стука!


                      -Пожалуйста, я откажусь от короны,
                      Но можно сначала доесть макароны?

                      -Но тут Осьминог подошёл к Осьминогу
                      И в знак уваженья пожал ему ногу.

                      -Вчера крокодил улыбнулся так злобно,
                      Что мне до сих пор за него неудобно
                      Ответить
                  • Засунул тебе в горло гаважную трубку, проверь..
                    Ответить
                • У морских ежей нет мозга
                  Ответить
            • У него одна звезда
              Да и та на погоне
              Ответить
        • Скоро в Дали небосклон потемнеет,
          Скроется солнце в густых облаках.
          Ответить
    • ...
      case 2:
      case 1:{
                  Grade = "F";
                  break;
      }
      case 0:{
                  Grade = "A++";
                  break;
      }

      :trollface:
      Ответить
      • #include <stdio.h>
        
        int main(void)
        {
        	union
        	{
        		unsigned a:4;
        		int _;
        	} un;
        	scanf("%d", &un._);
        	
        	auto const char* grades[] = {"A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "E+", "E", "E-", "F+", "F"};
        	printf("%s", grades[un.a]);
        	return 0;
        }
        Ответить
        • а вот в крестах можно анонимные юнионы делать
          #include <iostream>
          
          int main(void)
          {
          	union
          	{
          		unsigned a:4;
          		int b;
          	};
          	std::scanf("%d", &b);
          	
          	const char* grades[] = {"A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "E+", "E", "E-", "F+", "F"};
          	std::printf("%s", grades[a]);
          
          	return 0;
          }
          Ответить
          • можно четыре байта сохранить
            #include <iostream>
            
            union Kokoko {int b; unsigned a:4;};
            int main(union Kokoko argc)
            {
            	std::scanf("%d", &argc.b);
            	
            	const char* grades[] = {"A+", "A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "D-", "E+", "E", "E-", "F+", "F"};
            	std::printf("%s", grades[argc.a]);
            	return 0;
            }
            Ответить
            • жаль нельзя прям в параметрах объявлять структуры.
              это же так можно бы было битоебить...
              Ответить
              • А зачем тут вообще юнион?
                Ответить
                • Бездари - это люди, которые периодически лежат у вокзалов
                  Ответить
                • Чтобы стриггерить UB!
                  Ответить
                  • А тут разве есть уб?
                    Ответить
                    • В сишке нет.
                      Ответить
                      • > В сишке нет.

                        > #include <iostream>
                        Ответить
                        • > iostream
                          > std::printf

                          Кстати, а использование функций случайно прилетевших по транзитивной зависимости -- это не UB? Или просто implementation defined?
                          Ответить
                          • Вроде просто нет гарантий, что у другого питуха это соберётся.
                            Ответить
                            • Кстати, у STL куча реализаций (STLPort, Rogue Wave, Dinkum STL и прочие). У них перекрёстные зависимости заголовков могут отличаться. Да даже у форков одной библиотеки для разных компиляторов и разных платформ зависимости могут отличаться.

                              Думаю, это implementation defined.
                              Ответить
                            • А представь, что реализация юзает разные по смыслу но одинаковые по названию платформозависимые функции, не описанные в самом стандарте. И т.к. код ничего явно не инклудил, он получает какую-то из них.

                              Всё-таки транзитивность препроцессора -- зло.
                              Ответить
                              • С header-only библиотеками связана проблема: всё, что использует реализация, нужно инклюдить, т. е. делать публичным для всех пользователей библиотеки.

                                Если же библиотека с раздельной компиляцией, то всё, от чего зависит только реализация и не зависит интерфейс, можно инклюдить только в c/cpp-файлы, не портя хедеры лишними зависимостями.
                                Ответить
                              • Нэйм пейсами это говно не решается? Разве обязаьельно инклудить это говно в std?
                                Ответить
                                • > Разве обязаьельно инклудить это говно в std?
                                  ЯНИХУЯНЕПОНЯЛ.ЖПГ

                                  > Нэйм пейсами это говно не решается?
                                  Проблема в том, что то, что внутри использует какая-то библиотека, вылазит к тебе.
                                  Импортируется какая-то бустовская либа, все эти имена доступны тебе. И теперь у тебя всё падает с ошибкой, потому что новый инклюд затащил через три колена какую-то функцию, которая стала находиться через ADL и оказалась лучшим кандидатом, чем оригинальная.
                                  Ответить
                                  • Я имел ввиду, библиотеку нельзя написать так, чтобы внутре нейсмпейса, например std, не было лишнего говна типа printf? Нельзя заинклудить stdio.h в какой-нибудь анонимный неймспейс?

                                    А хотя в крестоговне всё равно прилетят макросы из других хедеров. Какой багор )))
                                    Ответить
                                    • > какой-нибудь анонимный неймспейс
                                      Анонимный неймспейс не спасёт, он только даёт внутреннюю видимость. Единственный, кого это ебёт — линкер.
                                      Вся проблема именно в том что include это тупой копипаст. В последних С++ это попытались решить модулями, в которых прописано, что именно экспортируется.
                                      Ответить
                                      • > В последних С++ это попытались решить модулями

                                        И как эти "модули" кобенируются с обычными .h файлами, инклудящимися через препроцессор?
                                        Ответить
                                        • В принципе нормально. Заголовочные файлы можно импортировать, это даст доступ к сущностям, объявленным там, но не насрёт тем кто импортирует данный модуль. Если ты пишешь не модуль, а простую единицу трансляции, которую никто инклюдить не будет, то можешь смешивать импорты и инклюды в одном файле.

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

                                            Х.з., я даже с обычными хедерами всегда пишу такие настройки через -D. Чтобы заведомо рассогласования не было.
                                            Ответить
                                            • Верно
                                              за #define SETTING 1 да еще и в правлиьном парядке надо пробивать щелбана
                                              Ответить
                                • У меня не получилось. Смотри, сколько компилятор высрал:
                                  https://ideone.com/NCKGkG
                                  Ответить
                                  • Вы напоминаете поваров туалетной кухни, которые пропускают фекалии через мясорубку а потом формуют из полученного химуса котлеты.

                                    Бон аппетит.
                                    Ответить
                          • Ну хуйни то не неси )))
                            Ответить
                        • чуть выше сишка.
                          Ответить
                      • А в крестах нельзя биты члена юниона через другой член получить?
                        Ответить
                        • Там вроде такой ход мыслей:

                          - у юниона есть только один активный член
                          - остальные члены ещё не начали или уже закончили жить
                          - поэтому обращение к ним UB
                          Ответить
                          • У нас в коде используется запись в один член и чтение из другого. Пользуемся шлангом.
                            Ответить
                            • Ну видимо они у себя в доке разрешают такое делать, как и gcc. Иначе вполне валидный сишный код не будет конпеляться крестами.
                              Ответить
                              • В деревне жить плохо - там одни коровы и туалет в виде дырки
                                Ответить
                              • ЕМНИП в гцц/шланге это работает если в юнионе хранятся только POD. Иначе начинают работать с отдельными членами, как с несвязанными переменными, и может случиться UB, когда конпелятор решит подержать пока свежеприсвоенное значение на стеке и не записывать его, а другой член юниона в то время прочтут.
                                Ответить
                                • > решит подержать

                                  https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Type-punning

                                  Судя по приведённым там примерам, увидит что другой член трогают и зафлашит всё как положено. Но надо именно явно обращаться, не через указатели. Иначе не зафлашит.
                                  Ответить
                                  • > Судя по приведённым там примерам, увидит что другой член трогают и зафлашит всё как положено.

                                    С точки зрения стандарта это UB.
                                    Ответить
                                    • > С точки зрения стандарта это UB.

                                      См. цитату Линуса ниже по тексту.
                                      Ответить
                                      • Линус и про кресты кстати много чего интересного говорил.
                                        https://lore.kernel.org/lkml/[email protected]/


                                        The fact is, C++ compilers are not trustworthy. They were even worse in
                                        1992, but some fundamental facts haven't changed:

                                        - the whole C++ exception handling thing is fundamentally broken. It's
                                        _especially_ broken for kernels.
                                        - any compiler or language that likes to hide things like memory
                                        allocations behind your back just isn't a good choice for a kernel.
                                        - you can write object-oriented code (useful for filesystems etc) in C,
                                        _without_ the crap that is C++.

                                        И правильно. Кресты - кривоублюдочное говно с говноэксепшенами.
                                        Ответить
                                        • --fno-exceptions
                                          Ответить
                                          • Непереносимое расширение (хотя тут уместнее сказать "сужение"). В стандарте нет никакого "--fno-exceptions"
                                            Ответить
                                            • вот когда в плюсы портируют самое лучшее из сишки, вот тогда попляшем.
                                              Ответить
                                            • > В стандарте нет никакого "--fno-exceptions"

                                              Просто не юзай 90% стандартной либы и не пиши try и throw.

                                              З.Ы. В стандарте нет никакого "размера кода", поэтому на размер кода это никак не влияет.
                                              Ответить
                                              • > Просто не юзай 90% стандартной либы и не пиши try и throw.

                                                А также надо не юзать никаких библиотек, которые используют эти говноэксепшены и что-то из той 90% части стандартной либы, которой эксепшены нужны. В общем хуй че тогда можно поюзать, говно одним словом
                                                Ответить
                                                • Иди работать в гугл, у них все либы без исключений.
                                                  Ответить
                                                  • У Go'внарей?
                                                    Ответить
                                                  • > Иди работать в гугл, у них все либы без исключений.

                                                    И они пользуют только те 10% из стандартной крестоговнолибы, которой не нужны исключения, да?
                                                    Ответить
                                                    • Да, для всего остального у них свой либозаменитель.
                                                      Ответить
                                                • > В общем хуй че тогда можно поюзать, говно одним словом

                                                  Если мы говорим конкретно о ядре, то и в сишной либе хуй чего можно поюзать. Ну разве что какие-то совсем базовые вещи в духе memcpy да strncpy.
                                                  Ответить
                                                  • > Если мы говорим конкретно о ядре, то и в сишной либе хуй чего можно поюзать. Ну разве что какие-то совсем базовые вещи в духе memcpy да strncpy.

                                                    Во-первых в сишной либе и так хуй что есть. Во-вторых stdatomic.h вполне можно поюзать. И stdalign.h например. Или это тоже базовые вещи? Что вообще считать за базовые, а что за "небазовые" вещи?
                                                    Ответить
                                                    • > Во-первых в сишной либе и так хуй что есть.
                                                      Тебе не скажут, что в твоей либе кучу вещей нельзя использовать в каких-то обстоятельствах, если и так там использовать нечего.

                                                      Лучший язык — брейнфак. Одинакого непригоден что для прикладного программирования, что для ядра, что для контроллеров.
                                                      Ответить
                                                    • > Во-вторых stdatomic.h вполне можно поюзать.

                                                      Ну и в крестах ты вполне можешь поюзать атомики и кучу алгоритмов. Те же сортировки. Они или в принципе ничего не кидают или не кидают если твои типы ничего не кидают.
                                                      Ответить
                                                      • Когда мой друг тонул, я бросился его спасать, потому что на нем были мои плавки
                                                        Ответить
                                                        • Сначала я не понимала, почему директор при разговоре со мной корчит рожи и думала: что же его так плющит? Потом выяснилось, что он мою мимику копировал
                                                          Ответить
                                              • В стандарте хоть что-нибудь есть?

                                                Даже Торвальдс сказал, что туалетная бумага полезнее стандарта, потому что она не оставляет чернил на жопе.
                                                Ответить
                                        • >- any compiler or language that likes to hide things like memory
                                          allocations behind your back just isn't a good choice for a kernel.

                                          ну тут надо сказать, что прячет только STL. Сам С++ ничего не прячет
                                          Ответить
                                  • ХВАТИТ ТРОГАТЬ ЧЛЕНЫ!!111
                                    Ответить
                                • I've said this before, and I'll say it again: a standards paper is just so much toilet paper when it conflicts with reality. It has absolutely _zero_ relevance. In fact, I'll take real toilet paper over standards any day, because at least that way I won't have splinters and ink up my arse.

                                  Linus Torvalds
                                  Ответить
                • Чувак не осили касты и битовые опереции
                  Ответить
                • что бы при попытке поставить F ставился A+
                  Ответить
              • Можно
                Ответить
          • В сях тоже можно, но только в структуре.
            Ответить

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