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

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

    +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
    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
    function parseHTML(text)
    {
        var t = text;
        var a = new Array();
    	var b = new Array();
        var cur = 0;
        var waiting_open_tag = true;
    	var last_cut = 0;
        for (var i = 0; i < t.length; i++)
        {
            cur = t.charAt(i);
            if (waiting_open_tag)
            {
                if (cur == '<')
    			{
    				a.push(t.substring(last_cut, i));
    				waiting_open_tag = false;
    				last_cut = i;
    			}
            }
    		else
    		{
                if (cur == '>')
    			{
    				a.push(t.substring(last_cut, i+1));
    				waiting_open_tag = true;
    				last_cut = i+1;
    			}
    		}
    		if (i == t.length-1)
    		{
    			a.push(t.substring(last_cut, i+1));
    		}
    
        }
    	// now reparse DOT"."
    	for (i = 0; i < a.length; i++)
    	{
    		y = a[i];
    		last_cut = 0;
    		for (z = 0; z < y.length; z++)
    		{
    			cur = y.charAt(z);
    			if (z == 0)
    			{
    				if ((cur == '<') || (cur == '&') || (cur == '\n'))
    				{
    					z = y.length + 981;
    					b.push(y.substring(last_cut, z+1));
    					continue;
    				}
    			}
    			if (cur == '.')
    			{
    				b.push(y.substring(last_cut, z+1));
    				last_cut = z+1;
    			}
    			if (z == y.length-1)
    			{
    				b.push(y.substring(last_cut, z+1));
    			}
    		}
    	}
        return b;
    }

    Эта функция разбивает строку на элементы массива. Граница разделения - это HTML tags ( < >) и точка (.)
    Функция сделана для подготовки текста к автоматическому переводу в Гугле - кто работал тот знает что запихнув большую строку ничего не получите.
    Я уже знаю ваши сопливые комментарии: RegExp. Собственно по этому это можно считать говнокодом ибо изобретен велосипед (но такого велосипеда в интернете нет). Ну а кто не Noob, прошу предоставить рабочий RegExp.

    increazon, 02 Декабря 2010

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

    +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
    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
    #include <iostream>
    #include <fstream>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
    	int wc,cnt=0,maxp=0,minp=2147483647,maxn=-2147483648,minn=0,pos=0,neg=0,zf=0;
    	fstream(f);
    	f.open("input.txt",ios::in);
    
    	while (!f.eof())
    	{
    		if(!zf) zf--;
    		wc=0;
    		f >>wc;
    		if (wc>0) { if (maxp<wc) maxp=wc;  if (minp>wc) minp=wc; pos++; }
    		else {if (minn>wc) minn=wc;  if (maxn<wc&&wc)maxn=wc; if (!wc) zf+=2; else neg++; }
    	}
    	if (pos>1 && neg>1)
    		if ((float)maxp/minp > (float)minn/maxn) cout<<maxp<<"/"<<minp<<"="<<(float)maxp/minp;
    			else cout<<minn<<"/"<<maxn<<"="<<(float)minn/maxn;
    
    	if (pos>1 && neg<2)	cout<<maxp<<"/"<<minp<<"="<<(float)maxp/minp;
    	if (pos<2 && neg>1)	cout<<minn<<"/"<<maxn<<"="<<(float)minn/maxn;
    
    		if (pos<=1 && neg<=1)
    			if(zf) if(pos) cout<<"0/"<<minp<<"=0";else cout<<"0/"<<minn<<"=0";
    				else if ((float)maxp/maxn>(float)maxn/maxp)cout<<maxp<<"/"<<maxn<<"="<<(float)maxp/maxn; 
                                  else cout<<maxn<<"/"<<maxp<<"="<<(float)maxn/maxp;
    
    	if (pos+neg+zf<=1) cout<<"No solution!";
    
    	f.close();
     getch();
    	
    return 0;
    }

    Задача 2-ого курса: "в массиве целых числел найти два таких числа, чтобы их частное было максимальным ( O(n) )"
    И ее решение -.- Особо доставляет название переменных

    bulka, 29 Ноября 2010

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function loadtitle($array) { //Функция установки meta-параметров в массив
    	$meta = array(); //Устанавливаем массив
    	$meta['title']=$array['title']; //Присваиваем метаданные
    	$meta['description'] =  $array['description'];				
    	$meta['author'] = $array['author'];				
    	$meta['keywords'] = $array['keywords'];	
    	return $meta; //Возвращаем массив метаданных
    }

    обнаружил в своем проекте 3 летней давности. сижу и тихо офигеваю)

    kindofbear, 28 Ноября 2010

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

    +155

    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
    /*фрагмент из компонента*/
    $arProps = array(
    "NAMES"=>$props["NAMES"]["VALUE"],
    "DESCRIPTIONS"=>$props["DESCRIPTIONS"]["VALUE"],
    "LINKS"=>$props["LINKS"]["VALUE"],
    "IMAGES"=>$props["PICTURES"]["VALUE"],
    "URLS" => array(
    "0"=>CFile::GetPath($props["PICTURES"]["VALUE"][0]),
    "1"=>CFile::GetPath($props["PICTURES"]["VALUE"][1]),
    "2"=>CFile::GetPath($props["PICTURES"]["VALUE"][2]),
    "3"=>CFile::GetPath($props["PICTURES"]["VALUE"][3]),
    "4"=>CFile::GetPath($props["PICTURES"]["VALUE"][4]),
    ),
    );
    
    /*код из шаблона*/
    <div class="text-blocks">
    <?if($arResult["PROPS"]["DESCRIPTIONS"][0]["TEXT"]):?>
      <div id="banner_text_1" class="text curr" style="left:92px; opacity:0.8; display: block">
    <table border="0" cellpadding="0" cellspacing="0"><tr><td>
        <a href="<?=$arResult["PROPS"]["LINKS"][0]?>"><?=$arResult["PROPS"]["DESCRIPTIONS"][0]["TEXT"]?></a>
    </td></tr></table>
      </div>
    <?endif;?>
    <?if($arResult["PROPS"]["DESCRIPTIONS"][1]["TEXT"]):?>
      <div id="banner_text_2" class="text" style="left:156px; opacity:0; display: none">
    <table border="0" cellpadding="0" cellspacing="0"><tr><td>
        <a href="<?=$arResult["PROPS"]["LINKS"][1]?>"><?=$arResult["PROPS"]["DESCRIPTIONS"][1]["TEXT"]?></a>
    </td></tr></table>
      </div>
    <?endif;?>
    <?if($arResult["PROPS"]["DESCRIPTIONS"][2]["TEXT"]):?>
      <div id="banner_text_3" class="text" style="left:220px; opacity:0; display: none">
    <table border="0" cellpadding="0" cellspacing="0"><tr><td>
        <a href="<?=$arResult["PROPS"]["LINKS"][2]?>"><?=$arResult["PROPS"]["DESCRIPTIONS"][2]["TEXT"]?></a>
    </td></tr></table>
      </div>
    <?endif;?>
    <?if($arResult["PROPS"]["DESCRIPTIONS"][3]["TEXT"]):?>
      <div id="banner_text_4" class="text" style="left:284px; opacity:0; display: none">
    <table border="0" cellpadding="0" cellspacing="0"><tr><td>
        <a href="<?=$arResult["PROPS"]["LINKS"][3]?>"><?=$arResult["PROPS"]["DESCRIPTIONS"][3]["TEXT"]?></a>
    </td></tr></table>
      </div>
    <?endif;?>
    <?if($arResult["PROPS"]["DESCRIPTIONS"][4]["TEXT"]):?>
      <div id="banner_text_4" class="text" style="left:284px; opacity:0; display: none">
    <table border="0" cellpadding="0" cellspacing="0"><tr><td>
        <a href="<?=$arResult["PROPS"]["LINKS"][4]?>"><?=$arResult["PROPS"]["DESCRIPTIONS"][3]["TEXT"]?></a>
    </td></tr></table>
      </div>
    <?endif;?>
    </div>

    Выборка свойств картинок и последующий вывод в шаблоне (выдернуто из самописного компонента Битрикс). Писал это очень давно, вот возникла необходимость править, открыл - посмотрел - случилась истерика!!! Очевидно что такое циклы я тогда еще не подозревал))

    akovalenko, 26 Ноября 2010

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

    +179

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if(
        (s.Find("/0")!=-1)||
        (s.Find("Log10(-")!=-1)||
        (s.Find("Log10(0")!=-1))//stupid user error
    {
    }

    Проверка, есть ли в формуле, введенной пользователем, деление на 0, логарифм от отрицательного числа или логарифм от нуля. Стиль и комментарии автора сохранены.

    Shumway, 23 Ноября 2010

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    # Записываем в БД новый хеш авторизации и IP
            $query=mysql_query("UPDATE user SET hash='".$hash."'".$insip." WHERE id='".$data['id']."'");
            $result = mysql_query($query)
              or die ("<p>Нельзя выполнить запрос ".mysql_error());

    qbasic, 17 Ноября 2010

    Комментарии (13)
  8. Perl / Говнокод #4638

    −116

    1. 1
    map { push @{ $cgih->{add_result}->{errors} }, 'НЕ добавлено: ' . $_->{title} } @failed_comps;

    Видимо теперь использовать for это уже не по-пацански!

    antonfin, 15 Ноября 2010

    Комментарии (13)
  9. Java / Говнокод #4595

    +68

    1. 1
    2. 2
    3. 3
    if (url == null) {
     throw new RuntimeException("Error reading resource " + url.getFile());
    }

    ха.
    туториалы jogl

    Lure Of Chaos, 11 Ноября 2010

    Комментарии (13)
  10. PHP / Говнокод #4583

    +169

    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
    /**
         * Retrieve minimum query length
         *
         * @deprecated after 1.3.2.3 use getMinQueryLength() instead
         * @return int
         */
        public function getMinQueryLenght()
        {
            return Mage::getStoreConfig(self::XML_PATH_MIN_QUERY_LENGTH, $this->getStoreId());
        }
    
        /**
         * Retrieve minimum query length
         *
         * @return int
         */
        public function getMinQueryLength(){
            return $this->getMinQueryLenght();
        }

    Интересный подход к орфографическим ошибкам :)

    vo1, 11 Ноября 2010

    Комментарии (13)
  11. PHP / Говнокод #4528

    +167

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    ...
    $query = "INSERT INTO `test`.`users` (`id` ,`email` ,`password` ,`nick` ,`sex` ,`date_birth` ,`about`) VALUES(NULL,'$email','$password','$nick','$sex','$dataBirth','$about')";
    $db->query($query);
    
    $query = "SELECT `id` FROM `users` WHERE `email` = '$email' AND `password` = '$password'";
    $result = $db->select($query);
    ...

    теперь так определяется ключ, вставленный автоинкрементом

    rtfm, 03 Ноября 2010

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