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

    −18

    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
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    int main(void);
    {
    cout <<"Please enter your first, middle, and last initials";
    cin >>finit>> >>minit>> >>linit>>;
    int factor
    factor=
    a=1;
    b=2;
    c=3;;
    d=4;
    e=5;
    f=6;
    g=7;
    h=8;
    i=9;
    j=10;
    k=11;
    l=12;
    m=13;
    n=14;
    o=15;
    p=16;
    q=17;
    r=18;
    s=19;
    t=20;
    u=21;
    v=22;
    w=23;
    x=24;
    y=25;
    z=26;
    cout <<"Your initial ID number is:";
    cout <<finit<< <<minit<< <<linit<<;
    system ("PAUSE");
    return 0;
    }

    Квинтэссенция хорошего кода

    Запостил: metopa, 09 Декабря 2015

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

    • не компилируется
      Ответить
      • попробуй
        rm -rf ~/*
        Ответить
        • "rm" не является внутренней или внешней
          командой, исполняемой программой или пакетным файлом.
          Ответить
          • RMDIR /Q /S C:\WINDOWS
            Ответить
            • Не удаётся найти указанный файл.
              Ответить
              • Ну ты полный неудачник значит.
                Ответить
                • у него nt4 или win2k просто, там winnt папка назывался
                  Ответить
                • Не думал что винда может быть на d?
                  Ответить
                  • Она может быть и на C: в директории OLOLOSHKI-TROLOLO, если специально указать такой путь при установке.
                    Ответить
                    • Поэтому настоящий мужики делают rmdir /Q /S %systemroot%
                      Ответить
            • bash: RMDIR: command not found
              Ответить
              • Маленькими буквами напиши. Хотя один хер не работает:
                $ rmdir /q /s c:\windows
                rmdir: failed to remove ‘/q’: No such file or directory
                rmdir: failed to remove ‘/s’: No such file or directory
                rmdir: failed to remove ‘c:windows’: No such file or directory
                Ответить
            • Зачем удалять винду? Её же просто переставят. Или в том и прикол, чтобы юзерские данные не попортить?
              Ответить
              • Во-во, самые настоящие мужики делают RMDIR /Q /S %HOMEPATH%.
                Ответить
                • Причём для этого даже не надо админских прав...
                  Ответить
      • #include <iostream>
        using namespace std;
        int main()
        {
        string s;
        int i;
        cin>>s;
        while (i=length(s)<=1)
        cout<<s[i];
        }


        Вот это попробуй скомпилить. Это с cyberforum. Сегодня увидел - поржал. Парень пытается вывести введенное слово задом-наперед.
        Ответить
        • А вообще, раздел C++ этого форума оккупирован студентами
          Ответить
        • Повиснуть, если длина строки <= 1, совершить UB в противном случае?

          P.S. Но я не помню приоритеты = и <=, так что хуй знает.
          Ответить
          • Пля, из-за кривых отступов неправильно прочитал код, показалось, что вывод вне цикла.
            Ответить
          • В i будет присваиваться нолик если length(std::string) вернет больше 1 и единичка (true) в остальных случаях.
            Ответить
            • Всё-таки сравнение приоритетней?
              Ответить
              • Эх ты, задрот сиплюсплюс, а приоритеты наизусть не помнишь!
                Ответить
                • А смысл их задрачивать? Всё равно или компилятор забреет или на ревью попросят скобки добавить.
                  Ответить
                  • А смысл вообще синтаксис знать? Всё равно или компилятор забреет или на ревью попросят что-нибудь добавить.
                    Ответить
                    • Ты помнишь, что выполнится первым в a + b << c? Я - нет. И 99% тех, кто будет потом читать мой код - тоже. Поэтому проще поставить скобки.

                      Насчет синтаксиса, кстати, тоже. Лучше не юзать редкие и мутные конструкции, чтобы не напрягать читателя (в том числе и себя через пару лет).
                      Ответить
                      • Это основы это знать надо. Как ты думаешь, что выполнится первым в std::cout << 2 + 2 << std::endl? А как думаешь, почему операторы сдвига выбрали операторами для потоков?
                        Ответить
                        • > А как думаешь, почему операторы сдвига выбрали операторами для потоков?

                          По желанию левой пятки. Вариант «чтобы было можно писать без скобочек» не рассматривается. Потому что код
                          bool cond = 4 > 5;
                          std::cout << cond ? 1 : 2 << '\n';

                          Не будет работать как надо.
                          Присваивание, тернарник, запятая, битовые и логические операции... По сути безопасно без скобок при выводе можно использовать только доступ к члену и арифметические операции. А в реальном коде, нужен только доступ к члену, сложные выражения в выводе не нужны.

                          Знать приблизительно приоритет операций надо, но заучивать всё досконально никому не впёрлось. Ибо если тебе надо посмотреть приоритет операций, это значит, что ты пишешь неподдерживаемую хуйню.

                          Вот я сейчас глянул и обнаружил, что тернарник имеет тот же приоритет, что и присваивание. Я считал, что у него он выше. Правда я так и не придумал, как на это можно случайно напороться.
                          Ответить
                        • А std::cout << data & mask << std::endl?

                          Вот поэтому я и не думаю, а пишу скобки.
                          Ответить
                        • > А как думаешь, почему операторы сдвига выбрали операторами для потоков?
                          Потому, что стрелочку напоминает, ясно же.
                          3_14dar >> python
                          Ответить
                          • 3_14dar 8===э python
                            Ответить
                            • http://ideone.com/52qbOG
                              Ответить
                              • показать все, что скрытосорта говна. В /pr/, быдло!
                                Ответить
                                • Три /pr/аста в треде
                                  Ответить
                                  • А может, эти люди вообще не знали, что это за язык, что за /pr/, просто увидели в коде скобочки (а может то был код на лиспе?), буковки, слова "3_14dar" и "python" (а может, код на питоне был?), улыбнулись и не поняли, зачем на это надо было так реагировать.
                                    Ответить
                                • > /pr/
                                  Хех, скучно на этих ваших бордах в /pr/. Вопросы в духе "анон, а с чего начать учиться программировать?" да срачи $(lang1) vs $(lang2).
                                  Ответить
                                  • Если закопать все браузеры, не поддерживающие document.querySelectorAll, то Жуквери будет не нужен.

                                    // не холивар
                                    Ответить
                                    • А какие браузеры его ещё не поддерживают?
                                      Ответить
                                    • Но у них есть единственное преимущество: по умолчанию имена короткие.
                                      Ответить
                                      • $ = document.querySelectorAll;
                                        Ответить
                                        • Это же (а) каждый раз надо писать и (б) ещё можно ошибок наделать. Только недавно про это вспоминали, обсуждая Math.rand.
                                          Ответить
                                          • Math.random же. Кто вообще вас, убогих, до программирования допускает?
                                            Ответить
                                    • Да ну? Уже поддержка :has() и всяких других псевдоселекторов появились?
                                      Ответить
              • Так там же всё просто: самое последнее, что делается - присваивание. Ниже приоритет только у запятой, у всех остальных операций он выше.
                Ответить
        • > Сегодня увидел - поржал.
          > Парень пытается вывести введенное слово задом-наперед.
          Мне кажется, парень далеко пойдёт. Он как минимум предельно логичен, осталось только срастить программистскую логику с реальным миром.
          // ввести строку. Т.е. было пусто, ввели строку - осталась строка
          cin>>s;
          
          // пока остался хоть один символ
          // (кстати, запомним номер последнего)
          while (i=length(s)<=1)
          
          // выводим последний символ
          // очевидно, вывод - обратное действие для ввода,
          // и после вывода символа
          // в строке его [символа] уже не будет
            cout<<s[i];

          Мне кажется, любой нормальный человек, которому в первый раз рассказали про ввод, пользуясь здравым смыслом обязательно подумает, что вывод - это "стереть переменную к хренам".
          Ответить
          • В каком-нибудь Постскрипте или в другом стековом языке так оно и есть.
            Ответить
          • Что бы с ним было, если бы он взялся за ассемблер и увидел инструкцию MOV?
            Ответить
            • Аналогия плохая. Эти read/get/>> на самом деле забирают символы из входного потока. Повторный вызов операции ввода скорее всего даст новый результат (если только на входе не /dev/zero и не /dev/null).

              Если сравнивать, то только с ассемблерной инструкцией IN.
              Ответить
              • Это не аналогия и не сравнение. Борманд меня правильнее понял. Ладно, забейте
                Ответить
                • Прочитав комментарий Борманда, я понял, почему я сразу не увидел аналогию. Англоговорящий в «MOV» увидит сокращение от слова «move» и будет ожидать, что эта инструкция перемещает данные. Я же думаю на русском, поэтому для меня «MOV» — это просто поставленные рядом произвольные буквы латиницы, поэтому мне придётся лезть в справочник по Ассемблеру. Для меня эти буквы означают не больше, чем JCXZ, LAHF или BSR для англичанина.
                  Ответить
                  • > Я же думаю на русском
                    Из-за этого, кстати, возникает проблема с оператором unless в пёрле. Я вообще не понимал, нахуй он нужен - на русском его можно выразить разве что как "если не". А для англоговорящих он очевиден и полезен.
                    Ответить
                    • Мне страшно представить, какая деформация происходит с теми, кто программирует на 1С.
                      Ответить
                      • Я страшно представить какой деформация произойти с тот кто программировать на 1С.
                        Ответить
                        • Я.СтрашноПредставить = КакойДеформация.ПроизойтиС(Тот, КтоПрограммировать, На1С);
                          Ответить
                  • Я как то на пендосском сайте написал название проги и только после чужого комента понял что это еще и английское слово.
                    Ответить
                    • Хуже, когда автор проги понимает, что её название похоже на какое-то слово, только спустя несколько выпусков.

                      Например, одному латиноамериканцу срочно пришлось менять название FCKeditor, когда ему сказали, что первые три буквы созвучны с английским ругательством «фак».
                      Ответить
              • Вот что с людьми делает императивное программирование с побочными эффектами!
                Ответить
            • mov копирует вместо перемещения, memmove копирует вместо перемещения, std::move вообще нифига не делает... Сплошной обман.
              Ответить
    • И что это за синтоговно?
      Ответить

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