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

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

    +172

    1. 1
    var rus_rl = ('А-Б-В-Г-Д-Е-Ё-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ы-Ь-Э-Ю-Я-а-б-в-г-д-е-ё-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ы-ь-э-ю-я').split('-');

    vugluskr, 15 Февраля 2011

    Комментарии (20)
  3. JavaScript / Говнокод #5610

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if(VisabilityOnOff==true){
    	   document.SearchForm.searchoption[0].disabled=true;
    	   document.SearchForm.searchoption[1].disabled=true;
    }else if(VisabilityOnOff==false){
    	   document.SearchForm.searchoption[0].disabled=false;
    	   document.SearchForm.searchoption[1].disabled=false;
    }

    kuku, 09 Февраля 2011

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

    +154

    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
    //построение суффиксного массива
    vector <int> getarr(string s) 
    {
      //s - исходная строка
      //суффиксный массив
      vector <int> arr;
      arr.resize(s.size());
      //массив цветов
      vector <int> col;
      col.resize(s.size());
      //массив для временных данных
      vector <int> buf;
      buf.resize(s.size());
      //массив для карманов сортировки
      vector <int> buck;
      buck.resize(max(L, (int) s.size()));
      //Шаг первый - начальная сортировка
      //мы хотим отсортировать буквы строки
      //посчитаем количество всех букв
      for (int i = 0; i < (int) s.size(); i++) 
        buck[s[i]]++;
      //преобразуем массив так, чтобы каждый элемент указывал на положение в массиве первой данной буквы
      int sum = 0; 
      for (int i = 0; i < L; i++) 
      {
        sum += buck[i];
    	buck[i] = sum - buck[i];
      }
      //теперь заполним массив arr: Теперь в нем суффиксы отсортированы по первой букве
      for (int i = 0; i < (int) s.size(); i++) 
        arr[buck[s[i]]++] = i;
      //теперь проставляем цвета: цвет увеличивается на 1 если следующая буква - другая
      col[arr[0]] = 0; 
      for (int i = 1; i < (int) s.size(); i++) 
        col[arr[i]] = col[arr[i-1]] + (s[arr[i]] != s[arr[i-1]]); 
      int cn = col[arr[s.size() - 1]] + 1;
      //Шаг второй - постепенное расширение подстрок
      //в начале цикла отсортированы подстроки длины l, а в конце - длины 2l
      for (int l = 1; l < (int) s.size(); l *= 2) 
      {
        //обнуляем массив buck  и заполняем для сортировки по col
        for (int i = 0; i < (int) s.size(); i++) 
          buck[i] = 0; 
        for (int i = 0; i < (int) s.size(); i++) 
          buck[col[i]]++; sum = 0; 
        for (int i = 0; i < cn; i++) 
          sum += buck[i], buck[i] = sum - buck[i];
        //строим новый массив в buf (не забываем сдвинуть указатель по модулю на l влево), затем копируем его в arr
        for (int i = 0; i < (int) s.size(); i++) 
          buf[buck[col[(arr[i] - l + s.size()) % s.size()]]++]=(arr[i] - l + s.size()) % s.size(); 
        arr = buf;
        //теперь перекрашиваем массив col: заполняем массив buf, увеличиваем цвет на единицу если один из цветов отличается, затем копируем
        buf[arr[0]] = 0; 
        for (int i = 1; i < (int) s.size(); i++) 
          buf[arr[i]] = buf[arr[i - 1]] + (col[arr[i]] != col[arr[i - 1]] || col[(arr[i] + l) % s.size()] != col[(arr[i - 1] + l) % s.size()]); 
        cn = buf[arr[s.size() - 1]] + 1; 
        col = buf;
      }
      //возвращаем результат
      return arr;
    }

    Это просто жуть

    chexov, 09 Февраля 2011

    Комментарии (20)
  5. Куча / Говнокод #5348

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /* тыц */
    /*wbr:after { content: '\00200B'; }*/
    /* they say it's better */
    wbr {
      width: 0px;
      display: inline-block;
      overflow: hidden;
    }

    Вконтакте.
    http://vkontakte.ru/css/rustyle.css?104
    Привет тем, кто сказал Пашке Дурову, что костыль - это не очень хорошо.

    7ion, 21 Января 2011

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

    +158

    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
    $mazovia[18];
    	$iso[18];
    
    	$mazovia[0]  = chr(134);$iso[0]=chr(177);		//a~
    	$mazovia[1]  = chr(143);$iso[1]=chr(161);		//A~
    	$mazovia[2]  = chr(141);$iso[2]=chr(230);		//c~
    	$mazovia[3]  = chr(149);$iso[3]=chr(198);		//C~
    	$mazovia[4]  = chr(145);$iso[4]=chr(234);		//e~
    	$mazovia[5]  = chr(144);$iso[5]=chr(202);		//E~
    	$mazovia[6]  = chr(146);$iso[6]=chr(179);		//l~
    	$mazovia[7]  = chr(156);$iso[7]=chr(163);		//L~
    	$mazovia[8]  = chr(164);$iso[8]=chr(241);		//n~
    	$mazovia[9]  = chr(165);$iso[9]=chr(209);		//N~
    	$mazovia[10] = chr(162);$iso[10]=chr(243);		//o~
    	$mazovia[11] = chr(163);$iso[11]=chr(211);		//O~
    	$mazovia[12] = chr(158);$iso[12]=chr(182);		//s~
    	$mazovia[13] = chr(152);$iso[13]=chr(166);		//S~
    	$mazovia[14] = chr(166);$iso[14]=chr(188);		//z~
    	$mazovia[15] = chr(160);$iso[15]=chr(172);		//Z~
    	$mazovia[16] = chr(167);$iso[16]=chr(191);		//z|
    	$mazovia[17] = chr(161);$iso[17]=chr(175);		//Z|
           
            $strmazovia="";
    	$strIso="";
    	for ($i=0;$i<=17;$i++){
    		$strmazovia=$strmazovia."\\".$mazovia[$i];
    		$strIso= $strIso."\\".$iso[$i];
    	}
    
    
    	function convert($str){
    		global $strmazovia;
    		global $strIso;
    	        return StrTr($str,$strmazovia,$strIso);
    	}

    xaoc, 28 Декабря 2010

    Комментарии (20)
  7. C# / Говнокод #5035

    +128

    1. 1
    if ((((((X >= -7) && (X<= -6) & (Y!=2)) || (X<= -2) && (X>= -6) && (Y<=0) && (Y>= -1) && (Y== 0.25*X + 0.5) || (X+ -2)*(X+ -2) + (Y+2)*(Y+2)==4) && (X >= -2) && (X<=0) && (Y>=0) && (Y<=2)|| (((X*X)+(Y*Y)==4)) && ((X>=0) && (X<=2) && (Y>=0) && (Y<=2))) || ((Y==0.5*X-1) && (X>=2) && (Y<=3) & (Y!=0)))) Console.WriteLine("Принадлежит");

    HIMen, 23 Декабря 2010

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

    +153

    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
    template <class TList, template <class> class Unit>
        class GenScatterHierarchy;
     template <class T1, class T2, template <class> class Unit>
        class GenScatterHierarchy<Typelist<T1, T2>, Unit>
            : public GenScatterHierarchy<Private::ScatterHierarchyTag<T1, T2>, Unit>
            , public GenScatterHierarchy<T2, Unit>
        {
        public:
            typedef Typelist<T1, T2> TList;
            typedef GenScatterHierarchy<Private::ScatterHierarchyTag<T1, T2>, Unit> LeftBase;
            typedef GenScatterHierarchy<T2, Unit> RightBase;
            template <typename T> struct Rebind
            {
                typedef Unit<T> Result;
            };
        };

    Говногость, 21 Декабря 2010

    Комментарии (20)
  9. Ruby / Говнокод #4974

    −115

    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
    #!/usr/bin/ruby1.8
    
    require 'mysql'
    $KCODE = 'UTF8'
    
    class Country
      @@country = Array.new
      @@insert_query = String.new
      @@db = Mysql
    
      def initialize(filename)
        file = File.open(filename)
        while !file.eof?
          value, index = file.readline.split(/\s+/u)
          @@country[index.to_i] = value.to_s
        end
        file.close
      end
    
      def database_connect
        @@db = Mysql.new('localhost','username','userpass','userdatabase')
        begin
          @@db.query("SET NAMES utf8")
        rescue
          puts @@db.error
        end
      end
    
      def create_query
        begin
          result = @@db.query("SELECT * FROM table")
        rescue
          puts @@db.error
        end
        result.each_hash do |field|
          @@country.each_index do |index|
          @@insert_query += "UPDATE table SET position = #{index} WHERE caption = '#{field['caption']}';" if @@country[index] == field['caption']
          end
        end
      end
    
      def execute_query
        begin
          @@insert_query.split(/;/u).each { |query| @@db.query(query) }
          puts "result: #{@@db.errno}" if @@db.errno
        rescue
          puts @@db.error
        end
      end
    
      def database_disconnect
        @@db.close
      end
    end
    
    cnt = Country.new('country.txt')
    # connect to DB
    cnt.database_connect
    # construct query
    cnt.create_query
    # execute constructed query
    cnt.execute_query
    # close connect
    cnt.database_disconnect

    Ну можно же как-то сделать лучше?

    avastor, 19 Декабря 2010

    Комментарии (20)
  10. Pascal / Говнокод #4966

    +109

    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
    procedure RemoveDir(path: string);
    var
      sr: TSearchRec;
    begin
      if FindFirst(path + '\*.*', faAnyFile, sr) = 0 then
      begin
        repeat     
          if sr.Attr and faDirectory = 0 then
            DeleteFile(path + '\' + sr.name);
          else
              RemoveDir(path + '\' + sr.name);
        until
          FindNext(sr) <> 0;
      end;
      FindClose(sr);
      RemoveDirectory(PChar(path));
    end;

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

    P.S. Нужно добавить проверку между 10 и 11 строкой:
    if (sr.Name <> '..') and (sr.Name <> '.') then

    vanished, 18 Декабря 2010

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

    +157

    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
    $query = "SELECT * FROM records WHERE  id_film='$id_film'";        
    $results = mysql_query($query);
    $var1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    $var1 = $var1. "<playlist>\n";     
    while($line = mysql_fetch_assoc($results))
      {
    $tmp_us = $tmp_us.$line['id_user'];
      $var1 = $var1."<vid src=\"http://homelinux.com:8080/sample1/content/audiorecord/"
      . $line['id_user']
      ."/"
      . $line["file_name"]
      ."_d.flv"
      . "\" label=\""
      . $line["file_name"]
      ."\""
      ." id_film=\""
      . $line["id_film"]
      ."\""
      ." time_begin=\""
      . $line["time_begin"]
      ."\""
      ." time_end=\""
      . $line["time_end"]
      ."\""
      ." id_user=\""
      . $line["id_user"]
      ."\""  
      ." sh_val=\""
      . $line["sh_val"]
      ."\""
      ." id_record=\""
      . $line["id_record"]
      ."\""
      ."/>\n";
    }
    $var1 = $var1."</playlist>\n"; 
    echo "var1=$var1";

    Вот так некоторые Flash-еры формируют xml пакеты

    Agel_Nash, 16 Декабря 2010

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