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

    +59

    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
    #include <iostream>
    #include <time.h>
    #include <cmath>
    #include <windows.h>
    using namespace std;
    int main()
    {
    Hashtable^ hat = gcnew Hashtable();
    hat->Add(1,"|");
    hat->Add(2,"||");
    hat->Add(3,"|||");
    hat->Add(4,"||||");
    hat->Add(5,"|||||");
    hat->Add(6,"||||||");
    hat->Add(7,"|||||||");
    hat->Add(8,"||||||||");
    hat->Add(9,"|||||||||");
    hat->Add(10,"||||||||||");
    hat->Add(11,"|||||||||||");
    hat->Add(12,"||||||||||||");
    hat->Add(13,"|||||||||||||");
    hat->Add(14,"||||||||||||||");
    hat->Add(15,"|||||||||||||||");
    hat->Add(16,"||||||||||||||||");
    hat->Add(17,"|||||||||||||||||");
    hat->Add(18,"||||||||||||||||||");
    hat->Add(19,"|||||||||||||||||||");
    hat->Add(20,"||||||||||||||||||||");
    hat->Add(21,"|||||||||||||||||||||");
    hat->Add(22,"||||||||||||||||||||||");
    hat->Add(23,"|||||||||||||||||||||||");
    hat->Add(24,"||||||||||||||||||||||||");
    hat->Add(25,"|||||||||||||||||||||||||");
    hat->Add(26,"||||||||||||||||||||||||||");
    hat->Add(27,"|||||||||||||||||||||||||||");
    hat->Add(28,"||||||||||||||||||||||||||||");
    hat->Add(29,"|||||||||||||||||||||||||||||");
    hat->Add(30,"||||||||||||||||||||||||||||||");
    hat->Add(31,"|||||||||||||||||||||||||||||||");
    hat->Add(32,"||||||||||||||||||||||||||||||||");
    hat->Add(33,"|||||||||||||||||||||||||||||||||");
    hat->Add(34,"||||||||||||||||||||||||||||||||||");
    hat->Add(35,"|||||||||||||||||||||||||||||||||||");
    hat->Add(36,"||||||||||||||||||||||||||||||||||||");
    hat->Add(37,"|||||||||||||||||||||||||||||||||||||");
    hat->Add(38,"||||||||||||||||||||||||||||||||||||||");
    hat->Add(39,"|||||||||||||||||||||||||||||||||||||||");
    hat->Add(40,"||||||||||||||||||||||||||||||||||||||||");
    hat->Add(41,"|||||||||||||||||||||||||||||||||||||||||");
    hat->Add(42,"||||||||||||||||||||||||||||||||||||||||||");
    hat->Add(43,"|||||||||||||||||||||||||||||||||||||||||||");
    hat->Add(44,"||||||||||||||||||||||||||||||||||||||||||||");
    hat->Add(45,"|||||||||||||||||||||||||||||||||||||||||||||");
    hat->Add(46,"||||||||||||||||||||||||||||||||||||||||||||||");
    hat->Add(47,"|||||||||||||||||||||||||||||||||||||||||||||||");
    hat->Add(48,"||||||||||||||||||||||||||||||||||||||||||||||||");
    hat->Add(49,"|||||||||||||||||||||||||||||||||||||||||||||||||");
    hat->Add(50,"||||||||||||||||||||||||||||||||||||||||||||||||||");
    srand(time(0));
        for(int i = 1; i<50; i++)    
           {
             int r = rand() % 1000; 
             String^ s = hat[i]->ToString(); 
             Console::WriteLine("\r"+i*2+"% completed:"+s);                
           }    
        cout << endl << "Operation completed successfully.\n" << flush;
    return 0;
    }

    // http://stackoverflow.com/questions/16635787/making-a-console-progress-bar-windows/19589370#19589370
    // Рисуем прогресс бар на С++

    Запостил: a1g0r, 27 Февраля 2015

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

    • А автор - индус
      Ответить
    • Белеет парус одинокий....
      Ответить
    • Какое нахрен си. Кли же.
      Ответить
    • >> Hashtable^ hat = gcnew Hashtable();
      > ^
      Может кто-нибудь объяснить, что это? Насколько мне понятно из нагугленного (понятно далеко не всё), это нечто, указывающее Runtime'у о новых объектах, память (т. е. её выделение и освобождение) для которых управляется этим самым Runtime'ом.
      Так что это? Средство, избавляющее от delete, добавляющее некое подобие сборщика мусора?
      Ответить
      • Операторы ^ это аналог *, а gcnew ≈ new.
        Это C++ CLI, очередное «расширение» языка от Майкрософта. В общем запилили они .NET, и решили хуйнуть под него все известныя языки (Java, C++, Basic, OCaml). Как скрестить кресты с диезом? А очередным расширением. Всё это превращается во всё тот же IL-ассемблер.
        Вот, согласись неприятно когда встречаешь очередной крестоблядский значок и в ахуе пытаешься гуглить что он значит, да?

        http://en.wikipedia.org/wiki/C%2B%2B/CLI
        https://msdn.microsoft.com/ru-ru/library/te3ecsc8.aspx
        Ответить
        • Благодарю.

          Насчёт неприятно - это да. Только мне всегда казалось, что такие "значки" и прочие издевательства над языком требуются только для низкоуровневого программирования. Что ж, это была ошибка, выходит.
          Ответить
          • > только для низкоуровневого программирования
            А C++CLI для низкоуровневого и применяется... Кому взбредёт в голову писать на этом что-то кроме обёрток для сишных либ да кода, в котором требуется быстродействие?
            Ответить
            • Не совсем так. Дало в том, что шарп поддерживает все фичи .net. Нельзя сделать код быстрее через C++/CLI чем на решетке (правда нужно знать чего кого, как оно там устроено в деталях). Могу соврать, но и кажется и лабу сишную можно из шарпа завернуть.
              По сути Cli - это .net для конченных крестоблядей, которые не могут или не хотят из принципа сисетку
              Поэтому
              "Кому взбредёт в голову писать на этом?"
              fixed
              Ответить
              • > Дало в том, что шарп поддерживает все фичи .net.
                Не все.

                > Нельзя сделать код быстрее через C++/CLI чем на решетке
                Можно. Можно же не .net'товского кода понаписать, а сишного.

                > Могу соврать, но и кажется и лабу сишную можно из шарпа завернуть.
                Можно, но проблематично.
                Ответить
                • >>Можно. Можно же не .net'товского кода понаписать, а сишного

                  Дык это обычные плюсы, которые компилятся в нативный экзешник и к дотнету никакого отношения не имеют

                  >>Не все.

                  Пример можно?
                  Ответить
                  • > > > Дало в том, что шарп поддерживает все фичи .net.
                    > > Не все.
                    > Пример можно?
                    CLR имеет модификатор доступа к членам "Family and Assembly", аналога которому C# не имеет.
                    Ответить
                    • черт побери, точно)
                      не прав, каюсь.
                      Но я в целом говорил о том, что писать под дотнет нужно на шарпах (C унд F) и не ипать мозг крестами, все преимущества которых губятся платформой
                      Ответить
                  • > Дык это обычные плюсы, которые компилятся в нативный экзешник и к дотнету никакого отношения не имеют
                    неа, их можно смешивать - для этого и надо ;)

                    > Пример можно?
                    - protected and internal
                    - fault-блок для try
                    - exception filters (есть в VB.NET, добавлены в C# 2015)
                    - отсутствие шарпоограничений на goto (собственно, есть везде)
                    - немного отличающаяся система приведения типов
                    - возможность явного невирнульного вызова метода (хм.. а вот это может быть в Си++.NET, хотя понятия не имею)
                    - возможность создания ref-переменных - как шарповские ref/out-аргументы, только для обычных переменных (рассматривается вопрос о добавлении с C# 7)
                    - возможность бросать не Exception
                    - возможность игнорировать проверку корректности приведения типа (кажется)
                    - ...
                    Ответить
    • Вот уже пожарники прислонили лесенку,потому что с корешем мы МОЧИЛИ песенку
      Ответить

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