1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #6067

    +166

    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
    void СSomeClass::InternalRemovePath( QString qsPath, int pUIModule )
    {
      QProgressDialog * pDlg = (QProgressDialog *)pUIModule;
    ...................
    }
    .......................
    void someFunction ()
    {
    ..................
    QProgressDialog * pProgress = NULL;
    pProgress = new QProgressDialog( QObject::tr( "Deleting...") , QObject::tr( "Abort" ), 0, nTotal, NULL );
    InternalRemovePath( qsPath , (int) pProgress );
    ..................
    }

    И по коду таких вещей (приведение указателей к int при передаче в функции) очень много. Пока собрал проект, задолбался.
    Интересно, что автор курил? Хотя, нет - тут уже что-то потяжелее.

    panter_dsd, 23 Марта 2011

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

    +181

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    int maxOf5(int a, int b, int c, int d, int e) {
            int arr[5];
            arr[0] = a;
            arr[1] = b;
            arr[2] = c;
            arr[3] = d;
            arr[4] = e;
            bubbleSort(&arr, 5);
            return arr[0];
    }

    no comments...

    wh_, 22 Декабря 2010

    Комментарии (52)
  4. PHP / Говнокод #4796

    +145

    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
    <? 
    // Функция для того, чтобы иЗ***оВаТь текст 
    $str = 'бросайте вы корявить текст'; 
    
    function koryavka ($t){ 
    $c = strlen($t); 
    
    for($i=0;$i<$c;$i++) { 
    $t[$i] = (is_int($i/2)) ? strtoupper($t[$i]) : $t[$i]; 
    $ret[] =  $t[$i];  
    } 
    
    return implode('',$ret); 
    } 
    
    echo koryavka ($str); 
    ?>

    Aligan, 01 Декабря 2010

    Комментарии (52)
  5. PHP / Говнокод #3507

    +162

    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
    <a href="/otherss/foto/">Фото</a><br>
    <!-- *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= -->
    <?
    $ip=$REMOTE_ADDR;
    $modip=substr($ip,0,7);
        if ($modip=="192.168")
        {
        echo "<a href=\"http://192.168.1.1:8000/\">Радио</a><hr>";
    //    echo "<a>Радио</a><br>";
        }
        else
        {
        echo "<a href=\"http://92.255.xxx.10:8000/\">Радио</a><hr>";
    //    echo "<a>Радио</a><br>";
        }
    
        if ($modip=="192.168")
        {
        echo "<a href=\"http://192.168.1.1:3000/\">Вэб-Почта</a><br>";
        }
        else
        {
        echo "<a href=\"http://92.255.xxx.10:3000/\">Вэб-Почта</a><br>";
        }
    ?>
    <a href="/filesearch/index.php">Поиск</a><br>
    <a href="http://192.168.1.1/stat/kabinet">Кабинет&#133;</a><br>
    <a href="/phone_book/">Телефон</a><a href="/phone_book/index_all.php">ы</a><br>
    <br>

    снова один из отжигов)
    маска xxx в третьем бите ип моя, чтоб не палить)

    nur, 18 Июня 2010

    Комментарии (52)
  6. C# / Говнокод #3334

    +124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    char arr[] = ... // Здесь происходит чтение массива, неважно как
    string result = "";
    for(int i = 0; i < arr.Length; i++) 
    {
        result += Char.ToString(arr[i]);
    }
    
    Console.WriteLine(result);

    Что интересно, автор уже пол года на C# пишет, до этого 2 года на Java. Решение ко всему прочему еще и очевидно с квадратичной сложностью. А должно быть, естественно Console.WriteLine(new String(array));

    theos, 27 Мая 2010

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

    +162.1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ( !empty($a1) ||
         !empty($a1) && !empty($a2) ||
         !empty($a1) && !empty($a2) && !empty($a3) ||
         !empty($a1) && !empty($a2) && !empty($a3) || && !empty($a4) ||
         !empty($a1) && !empty($a2) && !empty($a3) || && !empty($a4) || && !empty($a5) ||
    ...
         !empty($a1) && !empty($a2) && !empty($a3) || && !empty($a4) || && !empty($a5) || && ... !empty($a8) )
    {
     // что-то делать...
    }

    Уже и не припомню где именно, но всретил я такую проверочку на рабочем сайте:
    После небольшой оптимизации получилось нормально условие... кто скажет какое ???

    Death, 24 Февраля 2010

    Комментарии (52)
  8. PHP / Говнокод #1773

    +152.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function clearUsers()
    {
    	$f=fopen("users", "w");
    	fclose($f);
    	return 0;
    }

    Tanger, 06 Сентября 2009

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

    −115.8

    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
    try{
       memcpy(pbSourceData, pbDestData + sizeof(tc_version) + sizeof(dwSenderNameLen) + dwSenderNameLen, key_len);
    }
    catch(...) {
       ret = EX_ERROR;
       goto err;
    }
    
    try{
       memcpy(pbKeyData, pbSignData + sizeof(tc_version) + sizeof(dwSenderTPLen) + dwSenderTPLen, key_len);
    }
    catch(...) {
       ret = EX_ERROR;
       goto err;
    }

    Аналогичные куски повторяются раз 10 друг за другом с другими переменными.

    guest, 12 Декабря 2008

    Комментарии (52)
  10. Си / Говнокод #29101

    0

    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
    typedef struct ll_node
    {
      struct ll_node *prev;
      struct ll_node *next;
      int val;
    } ll_node;
    
    ll_node a;
    ll_node b;
    ll_node c = {&a, &b,3};
    
    // не работает
    a.next = &b;
    a.prev = &c;
    
    b.next = &c;
    b.prev = &a;
    
    /*
    c.next = &a;
    c.prev = &b;
    */
    
    // зато так работает:
    ll_node arr[3] = {
      {&arr[2], &arr[1],1},
      {&arr[0], &arr[2],2},
      {&arr[1], &arr[0],3}
    };

    Кольцевой двусвязный список.

    j123123, 10 Марта 2025

    Комментарии (51)
  11. Куча / Говнокод #27847

    0

    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
    https://www.evilfingers.com/publications/research_RU/oldnewlang.pdf языки, которые мы потеряли
    
    ...
    
    Кстати, тот, кто считает, метапрограммирование достижением последних десятилетий, — жестоко
    ошибается. Да, в языке Си++ оно появилось совсем недавно и в полном объеме (описанном в 
    последних редакциях Стандарта) не реализовано ни в одном реально существующем компиляторе, a
    Nemerle и R# (языки программирования для платформы .Net со встроенной поддержкой
    метапрограммирования) — вообще младенцы, но на самом деле концепция метапрограммирования
    возникла еще во времена палеолита. Lisp, появившийся в далеком 1958 г., — хороший пример
    языка, естественным образом поддерживающий метапрограммирование, одной из задач которого
    является создание программы, выводящей точную копию своего собственного исходного текста — так
    называемый куин (англ, quine). На Lisp'e он записывается так:
    
    (funcall (lambda (x) 
                   (append x (list (list 'quote x))))
                 '(funcall (lambda (x) 
                              (append x (list (list 'quote x))))))
    
                 Листинг 1 программа на Lisp'е, распечатывающая сама себя
    
    На Си так:
    
    #include<stdio.h>
    char*i="\\#include<stdio.h>",n='\n',q='"',*p=
    "%s%cchar*i=%c%c%s%c,n='%cn',q='%c',*p=%c%c%s%c,*m=%c%c%s%c%c;%s%c",*m=
    "int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}"
    ;int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}
    
    А теперь попробуйте реализовать тоже самое на Си++ с использованием шаблонов и посмотрите, насколько
    сильно они вам «помогут».

    Крестобляди соснули

    j123123, 01 Декабря 2021

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