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

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

    +168

    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
    function xss_clean($str, $is_image = FALSE)//
    	{	
    		/*
    		* Is the string an array?
    		*
    		*/
    		if (is_array($str))
    		{
    			while (list($key) = each($str))
    			{
    				$str[$key] = $this->xss_clean($str[$key]);
    			}
    		}
    		return $str;
    	}

    Нашёл в одном из самописных двигов. я так и не понял где тут хсс клин:)))

    Impossible, 22 Апреля 2010

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

    +912.2

    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
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int n;
        cin>>n;
        if(n==1) cout<<"A";
        if(n==2) cout<<"B";
        if(n==3) cout<<"AB";
        if(n==4) cout<<"BAB";
        if(n==5) cout<<"ABBAB";
        if(n==6) cout<<"BABABBAB";
        if(n==7) cout<<"ABBABBABABBAB";
        if(n==8) cout<<"BABABBABABBABBABABBAB";
        if(n==9) cout<<"ABBABBABABBABBABABBABABBABBABABBAB";
        if(n==10) cout<<"BABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBAB";
        if(n==11) cout<<"ABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBAB";
        if(n==12) cout<<"BABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBAB";
        if(n==13) cout<<"ABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBAB";
        if(n==14) cout<<"BABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBAB";
        if(n==15) cout<<"ABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBABABBABBABABBABBABABBABABBABBABABBAB";
        return 0;
    }

    строки Фибаначи. (=

    winprogrammer, 01 Апреля 2010

    Комментарии (32)
  4. Pascal / Говнокод #2841

    +104.4

    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
    procedure TForm1.vibor_chiselClick(Sender: TObject);
    begin
    case vibor_chisel.ItemIndex of
       0: begin
          procedure TForm1.But_sortClick(Sender: TObject);
           begin
           n:=vib_el_v.value;
           setlength(massiv,n);
            for i:=0 to n-1 do
            massiv[i]:=strtoint(stringgrid1.Cells[i,0]);
             case vibor_sortirovki.itemindex of
             0: begin
                 sortpuzirek(n,massiv);
                 for i:=1 to n do
                 stringgrid1.Cells[i,0]:=inttostr(massiv[i]);
                end;
             1: begin
                end;
             2: begin
                end;
             end;
            end;
           end;
       1: begin
           procedure TForm1.But_sortClick(Sender: TObject);
           begin
           n:=vib_el_v.value;
           setlength(mas_siv,n);
            for i:=0 to n-1 do
            mas_siv[i]:=strtofloat(stringgrid1.Cells[i,0]);
             case vibor_sortirovki.itemindex of
             0: begin
                 sort_puzirek(n,mas_siv);
                 for i:=1 to n do
                 stringgrid1.Cells[i,0]:=floattostr(mas_siv[i]);
                end;
             1: begin
                end;
             2: begin
                end;
             end;
            end;
           end;
          end;
      end;
    end;

    Орали всей группой. А вы часто описываете процедуры в case of ?)
    PS
    Работает.)

    Grivus, 22 Марта 2010

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

    +60.5

    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
    //---сортировка по возрастанию методом выбора отдельно реальной и мнимой составляющих---------------
    bool F_Sorted(T_VectorComplex * VC, bool)
    {
        int i, j, m, N;
        double z;
        N = (*VC).size();
        for (j = N - 1; j > 0; j--) {
            m = j;
            z = real((*VC)[j]);
            for (i = j - 1; i >= 0; i--)
                if (z < real((*VC)[i])) {
                    z = real((*VC)[i]);
                    m = i;
                }
            if (j != m) {
                (*VC)[m] = T_Complex(real((*VC)[j]), imag((*VC)[m]));
                (*VC)[j] = T_Complex(z, imag((*VC)[j]));
            }
        }
        for (j = N - 1; j > 0; j--) {
            m = j;
            z = imag((*VC)[j]);
            for (i = j - 1; i >= 0; i--)
                if (z < imag((*VC)[i])) {
                    z = imag((*VC)[i]);
                    m = i;
                }
            if (j != m) {
                (*VC)[m] = T_Complex(real((*VC)[m]), imag((*VC)[j]));
                (*VC)[j] = T_Complex(real((*VC)[j]), z);
            }
        }
        return (true);
    }

    crox, 11 Марта 2010

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

    +152.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function setTabs() {
           for(var i = 0; i < tabsNum; i++) {
               if(i === currentTab) {
                   $("#tabCont" + i).css("display","block");
               } else {
                   $("#tabCont" + i).css("display","none");
               };
           };
       };

    Нашел отличную функцию для скрытия/открытия табов

    Rpsl, 01 Марта 2010

    Комментарии (32)
  7. Си / Говнокод #2526

    +100

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #include <iostream>
    int main(void)
    {
      for (int i=0;i<600000000;i++)
      cout<<"Ten minuters";
    //IT Works!
    }

    Реальный код с cyberforum. Задание звучало как "Написать таймер, каждые 10 минут выводящий какое-нибудь сообщение". Один умник написал такое нечто, от чего я просто впал в ступор.

    darkcheg, 02 Февраля 2010

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

    +56.3

    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
    /*
    	Данный кусок кода был сперт uncle Lem'ом из небесной канцелярии 27.02.2008
    */
    
    #include<time.h>
    #include<stdlib.h>
    #include<iostream.h>
    #include"russian.h"
    
    void world();
    
    void main() {
    	srand(time(0));
    	world();
    }
    
    void world() {								/*void (пустота) указывает на безвыходность ситуации*/
    	const bool good = false,				/*Объективная реальность, данные получены на основе личного опыта*/
    		evil = !good;						/*ну, это логично... зло - это НЕ добро*/
    	/*пока рай... добро, зло и инфернальность - по нулям, армагеддон пока не светит*/
    	unsigned long int evil_level = 0;		/*Зло - в минуса не уйдет. Факт*/
    	short int good_level = 0;				/*добро - сильно не вырастет. Не дадут*/
    	int infernal = 0;						/*Инфернальность. ПОКА ноль. Позаимствовано у Ефремова*/
    	int years = 0;							/*начинается жизнь на Земле*/
    	int people_resources = 0;				/*человеческие ресурсы (для Армагеддона)*/
    	int evil_resources = 0;					/*ресурсы сил зла (для Армагеддона)*/
    	while(evil) {							/*пока существует зло...*/
    		years++;							/*и годы идут...*/
    		if (evil && !good) {				/*если в текущем году было зло и не было добра*/
    			infernal += evil_level++;		/*инфернальность растет на уровень зла, которое, в свою очередь, становится сильнее*/
    			good_level--;					/*а добро слабеет под натиском зла*/
    		}
    		else if (evil && good || !evil && !good) {	/*если в текущем году было добро и зло или ни того, ни другого*/
    			infernal = infernal;			/*инфернальность остается на том же уровне (да, тупо, зато наглядно)*/
    		}
    		else if (!evil && good) {			/*если в текущем году было добро и не было зла*/
    			infernal -= good_level++;		/*инфернальность уменьшается на уровень добра, которое, в свою очередь, становится сильнее*/
    			evil_level--;					/*а зло слабеет под натиском добра*/
    		}
    		if (infernal >= 100) {				/*когда уровень инфернальности достигнет критической точки, начинается Армагеддон*/
    			people_resources = 1+rand()%(1000000);	/*это у нас человеческие ресурсы*/
    			evil_resources = 1+rand()%(1000000);	/*а это - адские*/
    			/*тут у нас типа битва людишек против нечисти. ака Армагеддон*/
    			if (people_resources<evil_resources) {	/*если людей меньше, то хана. Ад победил. Пипец всему живому. Начало Апокалипсиса*/
    				cout<<"Все, армагеддец настал, комп тебе больше не понадобится. Беги, покупай белые тапочки\n";
    				return;
    			}
    			else if (people_resources>evil_resources) {	/*и наоборот, если люди победили - начало райской жизни. Манна небесная, пара белых крыльев и все, что к ним прилагается*/
    				cout<<"Че сидишь, готовься получать белые крылья и порцию манны небесной\n";
    				return;
    			}
    			else continue;					/*а если поровну - то ничья, живем дальше*/
    		}
    	}
    }

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

    uncle Lem, 07 Января 2010

    Комментарии (32)
  9. PHP / Говнокод #2093

    +159.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <?php
    $file_name = 'http://www.****';
    //$html_string = @file_get_contents($file_name);
     ob_start();
     readfile($file_name);
     $html_string = ob_get_contents();
     ob_end_clean();
    ?>

    копаю проект, на котором идет загрузка данных из инета...
    хваталка там про жесть .... автор решил, что использовать одну функцию будет слишком просто ...
    хотя отчасти я его понимаю... скорее всего все жутко тормозило...
    сам в детстве так ошибался, если дергаешь из инета стандартными средствами что-нибудь, то там нельзя задать таймаут. и если тебя вдруг забанили, то вся дергалка виснет обычно минуты на полторы-две. А то, что мы тут видим - это танцы с бубном, а вдруг заработает... не люблю когда так делают :(
    PS: ну если @ в коде встречается - то автора можно сразу добивать чем-нибудь тяжелым... особенно сильно хотелось это сделать, когда убил часов 10 на поиск места, где происходит ошибка и почему выводится белый экран...

    nicolay-punin, 03 Ноября 2009

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

    +108.6

    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
    /**
     * Копирует первое большое число во второе.
     *
     * @param a большое число приемник
     * @param b большое число источник
     * @param n длинна больших чисел в словах
     *
     * @return FALSE - четное, TRUE - нечетное
     */
    void int_copy(uword_t *a, const uword_t *b, const int n)
    {
        memcpy(a, b, sizeof(a[0]) * n);
    }

    Вот такую милую функцию я нашел в проекте над которым работаю.

    pvkr2, 12 Октября 2009

    Комментарии (32)
  11. 1C / Говнокод #1863

    −108.2

    1. 1
    2. 2
    Движение.Состояние = Перечисления.СостоянияРаботникаОрганизации[Причина.Метаданные().ЗначенияПеречисления[Перечисления[Причина.Метаданные().Имя].Индекс(Причина)].Имя];
    .

    Видимо, защита от шпиона: вот так определяется значение перечисления. (Причина - это тоже перечисление)

    Kopchuga, 18 Сентября 2009

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