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

    +13

    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
    #include <iostream>
    #include <vector>
    #include <stdlib.h>
    #include <time.h>
    
    using std::vector;
    
    void print_vec(const vector<int> v)
    {   /* Print Vector */
        for(vector<int>::size_type i(0); i!=v.size(); ++i)
            std::cout << v[i] << (i!=v.size()-1 ? "|":"\n");
    }
    
    bool sort_vec(const vector<int> v)
    {   /* Return True if vector sorted */
        bool b(true);
        for(vector<int>::size_type i(v.size()-1);i!=0;--i)
            if (v[i]<v[i-1]) {b=false;}
        return b;
    }
    
    int main()
    {
        vector<int> VectorForNumber;
        const unsigned int ConstMaxElement(10);
        srand(time(NULL));
        for(vector<int>::size_type i(0);i!=ConstMaxElement;++i)
            VectorForNumber.push_back(rand() % 50); // Max Number. Unsigned int && 0<N!
        while (not sort_vec(VectorForNumber))
        {
            print_vec(VectorForNumber);
            std::swap(VectorForNumber[rand() % ConstMaxElement],VectorForNumber[rand() % ConstMaxElement]);
        }
        print_vec(VectorForNumber);
        return 0;
    }

    Менять местами два элемента вектора до тех пор, пока он не станет отсортированным по возрастанию.
    С выводом сортирует примерно за 30 секунд вектор из 10 элементов, без вывода - от 0.5-1 секунды.

    eli, 06 Апреля 2013

    Комментарии (58)
  2. C++ / Говнокод #12852

    +16

    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
    #include <iostream>
    using namespace std;
     
    class Function {
    public:
        Function() {
            cout << "Function created!" << endl;
        }  
    };
     
    void Function() {
        cout << "Function called" << endl;
    }
     
    int main() {
        //class Function f;
        class Function *f = new class Function;
        Function();
        
        return 0; 
    }

    Бодаемся с семантическим анализатором.

    Elvenfighter, 05 Апреля 2013

    Комментарии (12)
  3. 1C / Говнокод #12851

    −117

    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
    Запрос.УстановитьПараметр("Дата1",началомесяца(дата));
     запрос.УстановитьПараметр("Дата2",Конецмесяца(дата)-Дней(1));//дата заказа
     Запрос.УстановитьПараметр("МесяцОплаты",Месяц(Дата));
     Запрос.УстановитьПараметр("ПДата1",НачалоМесяца(Дата));
     Запрос.УстановитьПараметр("ПДата2",КонецМесяца(Дата)+345600);
     Запрос.УстановитьПараметр("ЗДата1",НачалоМесяца(ПДата));
     Запрос.УстановитьПараметр("ЗДата2",КонецМесяца(ПДата));
     Запрос.УстановитьПараметр("ЗПДата1",НачалоМесяца(Дата));
     Запрос.УстановитьПараметр("ЗПДата2",КонецМесяца(Дата));
     Запрос.УстановитьПараметр("ППДата1",НачалоМесяца(Дата));
     Запрос.УстановитьПараметр("ППДата2",КонецМесяца(Дата));
     запрос.УстановитьПараметр("дата22",Конецмесяца(дата));
     запрос.УстановитьПараметр("Дата21", Конецмесяца(дата));// для корпоративных клиентов берем весь период
     запрос.УстановитьПараметр("ПодключениеФ",Справочники.ФормулировкиСчетов.Подключение);
     запрос.УстановитьПараметр("Сотрудник",Сотрудник);
     запрос.УстановитьПараметр("Список",Список);
     запрос.УстановитьПараметр("ПРИХОД",ВидДвиженияНакопления.Расход);

    kovyl2404, 05 Апреля 2013

    Комментарии (9)
  4. Python / Говнокод #12850

    −99

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    # 2017991 => 20/17/99
                    # 658581 => 65/85
                    # 6585 => 65
    
                    id = id[:(len(id)%2) - 2]
                    subfolders = ''.join([(i and i % 2 == 0 and '/' or '') + x for  i, x  in enumerate(id)])

    В 4 часа утра написал такой вот щит. Можно по вашему мнению это как-то упросить?

    sbb, 04 Апреля 2013

    Комментарии (116)
  5. JavaScript / Говнокод #12849

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var z=fggh.getElementsByTagName("*");
    for(iii=0; iii<z.length; z++)
    if(z[iii].parentNode==fggh){
    //z[iii] - непосредственный потомок fggh, и мы с ним что-то делаем!
    …
    }

    Раз народ решил, что я незаслуженно обижаю юниора, то вот вам ещё более шокирующий пример подобного кода от программиста, с которым мы вместе работали несколько лет назад в одной московской фирме. Тут, к сожалению, воспроизвожу по памяти, но очень близко к оригиналу.

    torbasow, 04 Апреля 2013

    Комментарии (7)
  6. PHP / Говнокод #12848

    +159

    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
    if(@$_POST['submit']) {
            
    	$title = "title";
    	$string = "";
    	$equal = "=";
    	$amper = "&";
            $to = '[email protected]';
            $from='[email protected]';
    
    	foreach($_POST as $key => $value) {
    		foreach($value as $v) {
    			$string=$string.$key.$equal.$v.$amper;
    		}
    	}
    
            mail($to, $title, $string, 'From:'.$from);
    }

    clauclauclau, 04 Апреля 2013

    Комментарии (6)
  7. JavaScript / Говнокод #12847

    +156

    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
    if (e.button in [-1, -1, -1]) { // попробуйте теперь сообразите, почему true
    				e.preventDefault();
    				var rel = this.rel.split(';'),
    					fn;
    				switch (e.button) {
    				case 0:
    					fn = 'attr';
    					break;
    				case 1:
    				case 2:
    					fn = 'removeAttr';
    					break;
    				default:
    					return false;
    				}
    				$('td.mod[rel="' + rel[0] + '"] input[rel="' + rel[1] + '"]').each(function () {
    					if (fn === 'removeAttr' && $(this).attr('rel') === 'view') { // Я маразматик
    						var parts = /(chk\[\d+\]\[\d+\])\[view\]/.exec(this.id),
    							p = ['add', 'edit', 'del'],
    							i;
    						for (i in p) {
    							$('#' + parts[1].replace(/[[\]]/g, "\\$&") + '\\[' + p[i] + '\\]')[fn]('checked');
    						}
    					}
    					$(this)[fn]('checked', 'checked');
    				});
    				return false;
    			}

    ГК, не?
    первая строка вот... текущий проект, сижу с ним на данный момент. Почему захотелось так сделать, объяснить не могу. Но работает, ведь

    Serabas, 04 Апреля 2013

    Комментарии (8)
  8. C++ / Говнокод #12846

    +16

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for ( std::size_t i = startIndex; i < indices.size(); ++i )
    {
        std::size_t idx = i % indices.size();
        // Some code that uses idx ...
    }

    Обогреваем помещение.

    Cpp, 03 Апреля 2013

    Комментарии (9)
  9. JavaScript / Говнокод #12845

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var detailsTable = document.getElementById("detailsTable").tBodies[0];
    var childs = [], j=0;
    for (var i = 0; i < detailsTable.childNodes.length; i++)
    	if  (detailsTable.childNodes[i].nodeType == 1){
    		childs[j++] = detailsTable.childNodes[i];
    	}
    childs[0].childNodes[1].innerHTML = ''

    Наткнулся в нашем проекте. Так юниор получал доступ к ячейкам таблицы. Видно, он не знал про коллекции rows и cells.

    torbasow, 03 Апреля 2013

    Комментарии (12)
  10. C++ / Говнокод #12844

    +20

    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
    #include <iostream>
    #include <string>
    #include <utility>
    #include <tuple>
    #include <array>
    #include <vector>
    #include <algorithm>
    #include <iterator>
    
    int main() {
       const std::array< const std::pair<const int, const std::string>, 3 > a {{{1,"2"}, {3,"4"}, {5,"6"}}};   
       std::vector<std::string> r;
       std::transform(std::begin(a), std::end(a), std::back_inserter(r), static_cast<std::string const& (*)(const std::tuple<const int, const std::string>&)>(std::get<1, const int, const std::string>));
       std::copy(std::begin(r), std::end(r), std::ostream_iterator<const std::string>(std::cout, " "));
       return 0;
    }

    У нас новичку на собеседовании предложили продемонстрировать работу (без конкретики) с кортежами и итераторами.
    Что вы можете сказать про его умения, характер и состояние психики? А вы бы этого взяли на работу?
    http://liveworkspace.org/code/2DW59a$0

    LispGovno, 03 Апреля 2013

    Комментарии (109)