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

    −1

    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
    // Microsoft открыла код Калькулятора Windows
    
    // https://github.com/Microsoft/calculator/blob/057401f5f2b4bb1ea143da02c773ac18d1bb9a2e/src/CalcViewModel/Common/CalculatorButtonUser.h#L8
    
    namespace CalculatorApp
    {
        namespace CM = CalculationManager;
    
        public enum class NumbersAndOperatorsEnum
        {
            Zero = (int) CM::Command::Command0,
            One = (int) CM::Command::Command1,
            Two = (int) CM::Command::Command2,
            Three = (int) CM::Command::Command3,
            Four = (int) CM::Command::Command4,
            Five = (int) CM::Command::Command5,
            Six = (int) CM::Command::Command6,
            Seven = (int) CM::Command::Command7,
            Eight = (int) CM::Command::Command8,
            Nine = (int) CM::Command::Command9,
            Add = (int) CM::Command::CommandADD,
            Subtract = (int) CM::Command::CommandSUB,
            Multiply = (int) CM::Command::CommandMUL,
            Divide = (int) CM::Command::CommandDIV,
            Invert = (int) CM::Command::CommandREC,
            Equals = (int) CM::Command::CommandEQU,
            Decimal = (int) CM::Command::CommandPNT,
            Sqrt = (int) CM::Command::CommandSQRT,
            Percent = (int) CM::Command::CommandPERCENT,
            Negate = (int) CM::Command::CommandSIGN,
            Backspace = (int) CM::Command::CommandBACK,
            ClearEntry = (int) CM::Command::CommandCENTR,
            Clear = (int) CM::Command::CommandCLEAR,
            Degree = (int) CM::Command::CommandDEG,
            Radians = (int) CM::Command::CommandRAD,
            Grads = (int) CM::Command::CommandGRAD,
            Degrees = (int) CM::Command::CommandDegrees,
            OpenParenthesis = (int) CM::Command::CommandOPENP,
            CloseParenthesis = (int) CM::Command::CommandCLOSEP,
            Pi = (int) CM::Command::CommandPI,
            Sin = (int) CM::Command::CommandSIN,
            Cos = (int) CM::Command::CommandCOS,
            Tan = (int) CM::Command::CommandTAN,
            Factorial = (int) CM::Command::CommandFAC,
            XPower2 = (int) CM::Command::CommandSQR,
            Mod = (int) CM::Command::CommandMOD,
            FToE = (int) CM::Command::CommandFE,
            LogBaseE = (int) CM::Command::CommandLN,
            InvSin = (int) CM::Command::CommandASIN,
            InvCos = (int) CM::Command::CommandACOS,
            InvTan = (int) CM::Command::CommandATAN,
            LogBase10 = (int) CM::Command::CommandLOG,
            XPowerY = (int) CM::Command::CommandPWR,
            YRootX = (int) CM::Command::CommandROOT,
            TenPowerX = (int) CM::Command::CommandPOW10,
            EPowerX = (int) CM::Command::CommandPOWE,
            Exp = (int) CM::Command::CommandEXP,
            IsScientificMode = (int) CM::Command::ModeScientific,
            IsStandardMode = (int) CM::Command::ModeBasic,
            None = (int) CM::Command::CommandNULL,
            IsProgrammerMode = (int) CM::Command::ModeProgrammer,
            DecButton = (int) CM::Command::CommandDec,
            OctButton = (int) CM::Command::CommandOct,
            HexButton = (int) CM::Command::CommandHex,
            BinButton = (int) CM::Command::CommandBin,
            And = (int) CM::Command::CommandAnd,
            Ror = (int) CM::Command::CommandROR,
            Rol = (int) CM::Command::CommandROL,
            Or = (int) CM::Command::CommandOR,
            Lsh = (int) CM::Command::CommandLSHF,
            Rsh = (int) CM::Command::CommandRSHF,
            Xor = (int) CM::Command::CommandXor,
            Not = (int) CM::Command::CommandNot,
            A = (int) CM::Command::CommandA,
            B = (int) CM::Command::CommandB,
            C = (int) CM::Command::CommandC,
            D = (int) CM::Command::CommandD,
            E = (int) CM::Command::CommandE,
            F = (int) CM::Command::CommandF,
            Memory, // This is the memory button. Doesn't have a direct mapping to the CalcEngine.        
            Sinh = (int) CM::Command::CommandSINH,
            Cosh = (int) CM::Command::CommandCOSH,
            Tanh = (int) CM::Command::CommandTANH,
            InvSinh = (int) CM::Command::CommandASINH,
            InvCosh = (int) CM::Command::CommandACOSH,
            InvTanh = (int) CM::Command::CommandATANH,
            Qword = (int) CM::Command::CommandQword,
            Dword = (int) CM::Command::CommandDword,
            Word = (int) CM::Command::CommandWord,
            Byte = (int) CM::Command::CommandByte,
            Cube = (int) CM::Command::CommandCUB,
            DMS = (int) CM::Command::CommandDMS,
    
            BINSTART = (int) CM::Command::CommandBINEDITSTART,
            BINPOS0 = (int) CM::Command::CommandBINPOS0,
            BINPOS1 = (int) CM::Command::CommandBINPOS1,
            BINPOS2 = (int) CM::Command::CommandBINPOS2,
            BINPOS3 = (int) CM::Command::CommandBINPOS3,
            BINPOS4 = (int) CM::Command::CommandBINPOS4,
            BINPOS5 = (int) CM::Command::CommandBINPOS5,

    Интересно, а эту херню кодогенерировали? Или это всё ручной труд?

    Запостил: j123123, 09 Марта 2019

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

    • Какой калькулятор )))
      Ответить
    • Decimal = (int) CM::Command::CommandPNT,
      ClearEntry = (int) CM::Command::CommandCENTR,
      XPowerY = (int) CM::Command::CommandPWR,
      LogBaseE = (int) CM::Command::CommandLN,
      InvSin = (int) CM::Command::CommandASIN,
      IsStandardMode = (int) CM::Command::ModeBasic,


      Как минимум из-за этих строк понадобится ручная работа. Может быть, где-то в секретном исходнике был массив, отображающий одно имя в другое, но его всё равно придётся набивать руками.
      Ответить
    • if (fontWeight == "black")
          {
              return FontWeights::Black;
          }
          else if (fontWeight == "bold")
          {
              return FontWeights::Bold;
          }
          else if (fontWeight == "extrablack")
          {
              return FontWeights::ExtraBlack;
          }
          else if (fontWeight == "extrabold")
          {
              return FontWeights::ExtraBold;
          }
          else if (fontWeight == "extralight")
          {
              return FontWeights::ExtraLight;
          }
          else if (fontWeight == "light")
          {
              return FontWeights::Light;
          }
          else if (fontWeight == "medium")
          {
              return FontWeights::Medium;
          }
          else if (fontWeight == "normal")
          {
              return FontWeights::Normal;
          }
          else if (fontWeight == "semibold")
          {
              return FontWeights::SemiBold;
          }
          else if (fontWeight == "semilight")
          {
              return FontWeights::SemiLight;
          }
          else if (fontWeight == "thin")
          {
              return FontWeights::Thin;
          }
          else
          {
              throw invalid_argument("Invalid argument: fontWeight");
          }
      }

      https://github.com/Microsoft/calculator/blob/057401f5f2b4bb1ea143da02c773ac18d1bb9a2e/src/CalcViewModel/Common/LocalizationService.cpp

      видите, там есть Сёмы лайт
      Ответить
      • Теперь сами видите, что весь опенсорсный софт –— дерьмо. Пока исходники были закрытыми, микрософтовские программы были хорошими.
        Ответить
        • Ты не представляешь какое вообще софт дерьмо

          Я раньше думал что в Windows или Linux весь код правильный, красивый, документированный, стабильный, использует лучшие практики и покрыт тестами

          Теперь я знаю что там такой же говнокод как и у меня. Если софт работает то всем похую что там внутри.
          Ответить
    • ахахаха
      MVVM в плюсах, какая прелесть
      #define OBSERVABLE_PROPERTY_RW(t, n)\
          property t n {\
          t get() { return m_##n; }\
          void set(t value) {\
          if (m_##n != value) {\
          m_##n = value;\
          RaisePropertyChanged(L#n);\
          }\
              }\
          } private: t m_##n; public:
      Ответить
    • Какому-нибудь стажеру дали задание ускорить калькулятор - вот он и заанроллил.
      Ответить
      • Ты чего голая?! Тут же могут сидеть цыплята, а ну быстро завернись в фольгу!
        Ответить
        • Потому, что гнриль.

          Ебаать, какая у нее дыра в жопе, только щаяс разглядел. На что ее насадили?
          Ответить
    • https://github.com/Microsoft/calculator/issues

      Ебать, уже 77 иссуесов!
      Ответить
      • пошли пул реквест

        можешь бесплатно поработать на не самую бедную компанию
        Ответить
    • > 35к строк
      Серьёзно? Лучше бы старый выложили, который на VC
      Ответить
    • А ведь Конардо был прав. Язык для калькуляторов.
      Ответить
      • https://www.youtube.com/watch?v=L7szuZ4y_es
        Ответить
        • МК-85 был вообще со встроенным «Бейсиком»:
          https://ru.wikipedia.org/wiki/Электроника_МК-85
          Ответить
        • ААААА! Клон «МК-52» до сих пор выпускается:
          https://ru.wikipedia.org/wiki/Электроника_МК-152

          >> В 2017 году МК-152 стоил 14200 рублей.

          Гамон!
          Ответить
          • https://artisanat.ru/category/schety/
            Ответить
          • хочу такую книгу

            http://s3.docme.ru/store/data/000031887_1-e6881018c69699efa0d3690047c475ac.png
            Ответить
            • https://cv3.litres.ru/pub/c/pdf-kniga/cover_330/8383732-kollektiv-avtorov-php-bystryy-start.jpg
              Ответить
            • У меня была какая-то подобная. Там были какие-то игры для микрокалькуляторов. Собственно игра состояла из формул, написанных в книжке, которые нужно было набрать на микрокалькуляторе, подставив какие-то числа в качестве исходных данных.
              Ответить

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