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

    −4

    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
    #include <stdio.h>
    #include <iostream>
    #include <regex>
    using namespace std;
    int cube(int);
    int main()
    {
            char number;
            label:
            cout << " Введите число " << endl;
            cin >> number;
            regex txt_regex("/^\d+$/");
        if (!regex_match(number, txt_regex))
        {
            cout << "Вводить можно только цифры!" << endl;
            goto label;
        }
        int value = atoi(number);
            int result = cube(value);
            cout << "Куб числа " << number << " равен " << result;
        return 0;
    }
    int cube(int number)
    {
          return number * number * number; 
    }

    Возведение числа в куб.

    Запостил: Exclumice, 30 Сентября 2015

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

    • Говнолаба очередная, вторая программа, которую человек написал в своей жизни.
      Ответить
    • господи, зачем людям вообще говорят про GOTO?
      Ответить
      • А Вы код почитайте, это же естественно:
        1. Слёзно просим пользователя ввести число
        2. Если это не число - возвращаемся к п.1
        3. Преобразуем число
        Ввели, проверили, в случае чего вернулись - всё очевидно.
        Позитивный подход: если только не получится, вернёмся.

        В случае с циклом:
        1. В цикле, пока не ввели число (почему в цикле, нам же нужно ровно одно число, не?)
        1.1. Слёзно просим пользователя ввести число
        2. Преобразуем число
        Зачем-то создали цикл, чтоб ввести одно(!) число - бред какой-то.
        Негативный подход: никто не вводил число с первого раза, поэтому давайте сразу цикл.
        Ответить
    • > regex txt_regex("/^\d+$/")
      Кстати, есть написанные на C++ регулярные выражения, уже готовые на этапе компиляции (литералы)?
      Т.е. как я делал вызовы цепочек функций, только для регулярок: https://gist.github.com/1024--/d7ac863b94622228beff
      Ответить
      • > C++ регулярные выражения, уже готовые на этапе компиляции (литералы)?

        Посмотри Boost.Xpressive, Static Regexes
        Ответить
        • но... как же... boost.spirit?...
          Ответить
          • хотите, я покажу вам особую, шаблонную магию?
            нененене, Андрей Александреску, нененене


            этим недоразумением и правда кто-то пользуется в продакшне?
            Ответить
            • > кто-то пользуется в продакшне?
              У нас в коде видел код пары упоротых людей, которые использовали spirit для парсинга двух чиселок из строки, но я бы это выкинул и заменил на scanf.
              Ответить
            • > этим недоразумением и правда кто-то пользуется в продакшне?
              ага
              парсят html там всякий или что попросят

              > spirit для парсинга двух чиселок из строки, но я бы это выкинул и заменил на scanf.
              но ведь перформанс!
              Ответить
              • он уж перестал вываливать нечитаемые пятистраничные сообщения об ошибках?
                он уж перестал увеличивать время компиляции простейшей грамматики до десятков секунд?

                парсер-комбинаторы в виде DSL нужны и важны, но C++ отчаянно сосёт по части DSL, поэтому я не понимаю героев, которым не лень упарывать спиритус, вместо того, чтобы взять Bison/Antlr/Haskell
                Ответить
                • разве кого-то пугают проблемы компиляции?
                  о каком языке мы вообще говорим?
                  зато он летает когда работает!!1одинодин
                  за год непрерывной работы можно влёгкую сэкономить до нескольких минут!

                  на самом деле один раз хорошо написанная грамматика отлично экономит потом время на разборе, доработке и сопровождении кода
                  а вопросы компиляции ортогональны
                  Ответить
    • Нормальный код.
      Ответить
      • Если у тебя в домашнем задании по информатике такой код, это еще не значит чот он хорошо
        Ответить
        • "чот он хорошо"?
          Ты в говно, или ты - говно?
          Ответить
          • Опять хамство. Чему тебя только учили?
            Ответить
            • А разве этот сайт может научить хорошему?
              Ответить
              • Меня он многому научил. Это практически мой университет.
                Раньше я был никем, а теперь я очень важный человек. И всё благодаря этому сайту.
                Ответить
                • Раньше ты умел говнокодить на одном языке, а теперь -на нескольких?
                  Ответить
                  • Вы так говорите, как будто это не достижение!
                    Ответить
                    • Ачивмент гет: Раздражаю всех!
                      Научиться хреново кодить на 5+ языках и давать всем советы
                      Ответить
                  • Я пишу как бог на всех существующих языках программирования включая изотерические, никогда не существовавшие и ассемблеры процессоров шестидесятилетней давности
                    Ответить

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