Кресты / Говнокод #16213 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
void MainWindow::mathFun()
{
   if(stringBuffer->indexOf("pi") != -1)
    {
        int i = stringBuffer->indexOf("pi");
        stringArg2->clear();
        stringArg2->append( stringBuffer->mid(i+2, stringBuffer->size()));
        stringSum->clear();
        stringSum->append(QString::number(stringArg2->toDouble() * 3.1415926));
        ui->lineEdit->clear();
        ui->lineEdit->insert(*stringSum);
        qDebug() <<" i=" << i << " size=" << stringBuffer->size();
    }
    if(stringBuffer->indexOf("log") != -1)
    {
        int i = stringBuffer->indexOf("log");
        stringArg2->clear();
        stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
        stringSum->clear();
        stringSum->append(QString::number(qLn(stringArg2->toDouble())));
        ui->lineEdit->clear();
        ui->lineEdit->insert(*stringSum);
        qDebug() <<" i=" << i << " size=" << stringBuffer->size();
    }
    if(stringBuffer->indexOf("sqr") != -1)
    {
        int i = stringBuffer->indexOf("sqr");
        stringArg2->clear();
        stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
        stringSum->clear();
        stringSum->append(QString::number(qSqrt(stringArg2->toDouble())));
        ui->lineEdit->clear();
        ui->lineEdit->insert(*stringSum);
        qDebug() <<" i=" << i << " size=" << stringBuffer->size();
    }
    if(stringBuffer->indexOf("fac") != -1)
    {
        int i = stringBuffer->indexOf("fac");
        stringArg2->clear();
        stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
        stringSum->clear();
        long long j = 1;
        for(int k = 1; k <= stringArg2->toInt(); ++k)
        {
            if(stringArg2->toInt() == 0)
            {
                ui->lineEdit->insert(QString::number(0));
                return;
            }
            j *= 1 * k;
        }
        stringSum->append(QString::number(j));
        ui->lineEdit->clear();
        ui->lineEdit->insert(*stringSum);
        qDebug() <<" i=" << i << " size=" << stringBuffer->size();
    }
    if(stringBuffer->indexOf("pow") != -1)
    {
        int i = stringBuffer->indexOf("pow");
        stringArg1->clear();
        stringArg1->append( stringBuffer->mid(0, i));
        stringArg2->clear();
        stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
        stringSum->clear();
        stringSum->append(QString::number( pow(stringArg1->toDouble(), stringArg2->toDouble())));
        ui->lineEdit->clear();
        ui->lineEdit->insert(*stringSum);
        qDebug() <<" i=" << i << " size=" << stringBuffer->size();
    }
    if(stringBuffer->indexOf("exp") != -1)
    {
        int i = stringBuffer->indexOf("exp");
        stringArg2->clear();
        stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
        stringSum->clear();
        stringSum->append(QString::number(exp(stringArg2->toDouble())));
        ui->lineEdit->clear();
        ui->lineEdit->insert(*stringSum);
        qDebug() <<" i=" << i << " size=" << stringBuffer->size();
    }
    if(stringBuffer->indexOf("mod") != -1)
    {
        int i = stringBuffer->indexOf("mod");
        stringArg1->clear();
        stringArg1->append( stringBuffer->mid(0, i));
        stringArg2->clear();
        stringArg2->append( stringBuffer->mid(i+3, stringBuffer->size()));
        stringSum->clear();
        stringSum->append(QString::number(fmod(stringArg1->toDouble(), stringArg2->toDouble())));
        ui->lineEdit->clear();
        ui->lineEdit->insert(*stringSum);
        qDebug() <<" i=" << i << " size=" << stringBuffer->size();
    }
    stringSum->clear();
    stringBuffer->clear();
}

Калькулятор на C++/Qt

Запостил: ConstantineVL ConstantineVL, (Updated )

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

    • То есть когда я у пхпшника вижу файл "myfun.php" то там порнуха внутри, а не все написанные за всю жизнь им функции?
      Ответить
  • мой первый калькулятор с разбором выражений был большим говном
    например, он искал операцию с высшим приоритетом и вхерачивал в строку скобки
    Ответить
    • >например, он искал операцию с высшим приоритетом и вхерачивал в строку скобки
      о, а я искал операцию с высшим приоритетом и заменял ее на результат. Но уже на следующем курсе переписал по человечески.
      Ответить
      • ну у меня там ещё и иксы были в строке, чтоб график рисовать, то есть уже тогда я строку преобразовывал в дерево

        по-человечески - это строить дерево на ходу, принимая токен за токеном, не возвращаясь назад и не убегая вперёд, такую технику я освоил только после универа
        Ответить
    • Первый калькулятор на F# после нескольких лет изучения программирования? Наркоман штоле?
      Я ожидал порцию какого-нибудь бейсикового ностальгического кода.
      Ответить
      • О, так оно ещё автором обновляется. Прямая трансляция на ideone, главное - чаще жать F5.
        Ответить
        • да я решил поправить что то) Больше не буду.

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

        по факту я сначала написал интерпретатор, потом транслятор в C# а уже потом калькулятор
        Ответить
      • MessageBox("Считай сам, сука!");
        system("calc.exe");

        Юзер-френдли вариант.
        Ответить
        • > Считай сам, сука!
          > calc.exe
          Нестыковочка, говнокод, сбивающий с толку интерфейс.

          MessageBox("Считай сам, сука!");
          exit(0);
          Ответить
              • Да, нужно искать старую версию rm.

                В новых нужно --no-preserve-root или проще: /* вместо просто слеша.
                Ответить
                • Но тогда корневая директория не удалится?
                  Ответить
                      • 'sudo' is not recognized as an internal or external command,
                        operable program or batch file.


                        ахахаха, винда поимела ваш вирус, или что вы там распостраняете.
                        А на линуксе все файлы удалились

                        А еще говорят, что виндуос не безопасный! всё наоборот! это линукс не безопаснычй!
                        Ответить
                          • Wsl это какой-то линукс в виндуосе?

                            ну да, через него удалились важные файлы!!

                            Линукс это ДЫРА В windows!!! пока его не было у меня ничего не удалялось!!
                            Ответить
                            • У меня в контроллерах нет ни виндовса, ни линукса. Переходи на контроллеры!
                              Ответить
                          • Попробовал тебя меж сисек, не понравилось. Силикон жесткий.
                            Ответить
                          • Борманд, ты же силен в керберосе поди.
                            Знаешь, что такое SPN?

                            Если я хочу чтобы пользщователи могли прозрачно аунтентифицуроаваться в моем сервисе, то у меня есть две опции

                            * войти в домен, и зарегать SPN
                            * принть от них NTLM hash

                            Верно ли я понимаю, что второй способ гомосячий, а перый требует работать от имени доменного юзера?

                            иными словами, работать от локального пользователя мне нельзя.

                            Что думаешь про https://winitpro.ru/index.php/2014/03/28/group-managed-service-accounts-v-windows-server-2012/ ?
                            Кажется, от нее надо работать
                            Ответить
                            • Ну тут джва стула... Или ты доменный юзер или пароль везде передаёшь.
                              Ответить
                              • Пароль я не могу, потому что админ в домене запретил NTLM нахуй.
                                Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8