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

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

    −42.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void elswap(int ?,int ?, int ?, int ?)  
     {
     int ?;
     ?=?[?][?];
     ?[?][?]=?[?][?];
     ?[?][?]=?;
     }

    обмен значений 2 элементов 2-мерного массива

    guest, 14 Декабря 2008

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

    +48

    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
    if ('Down' == 'Down')
    	{
    		//currentSeconds--;
    		currentSeconds = PromptTimer_StartCounter - correctionTime;
    		needTick = currentSeconds > 0;
    		if (!needTick)
    			currentSeconds = 0;
    	}
    	else
    	{
    		currentSeconds = PromptTimer_StartCounter + correctionTime;	
    		
    		if ('True' == 'False')
    		{
    			if (GetGMTOffsetInfo()[0] == "-")
    				currentSeconds += -(GetGMTOffsetInfo()[1] * 3600);
    			else 
    				currentSeconds += GetGMTOffsetInfo()[1] * 3600;
    		}
    		//currentSeconds++; 
    	}

    Код таймера на странице задания, проект "Энкаунтер" (http://en.cx)

    Posted by zerkms

    zerkms, 14 Декабря 2008

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

    +13.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #Проверка подленности числа
    function test_amount($amount)
    {
    $amount=str_replace(" ","",$amount);
    $amount=str_replace(",",".",$amount);
    if(is_numeric($amount)!=true){@error_message2("Ошибка ввода суммы!");exit();}
    else{$amount=str_replace("-","",$amount);return $amount;}
    }

    Регулярки для лохов.

    guest, 14 Декабря 2008

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

    +44.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ($_name=='homepage' AND !is_numeric($_GET['id2']))
    
    	include(SITEROOT."tpl/main.php");
    
    else
    
    	include(SITEROOT."tpl/main.php");

    Устроился программистом в одну контору... Начальник дал CMS типа их собственная разработка... вот что я там увидел

    guest, 10 Декабря 2008

    Комментарии (6)
  6. Java / Говнокод #75

    −53.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    /**
     * Reply string array after tokenize the url address
     *
     * @param String url
     * @return String[]
     */
    protected String[] processURL(String url) {
    
        StringBuffer s = new StringBuffer(url);
        StringBuffer AfterRemoval = s.delete(0, 27);
    ...

    ...в тот день магическим числом для паренька из Индии было число 27... похоже он и сам не понимал почему.. возможно это как то было связано с именем хоста...

    guest, 08 Декабря 2008

    Комментарии (6)
  7. Java / Говнокод #29193

    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
    package java.util.zip;
    
    public class GZIPOutputStream extends DeflaterOutputStream {
        ...
            public GZIPOutputStream(OutputStream out, int size, boolean syncFlush)
            throws IOException
        {
            super(out, out != null ? new Deflater(Deflater.DEFAULT_COMPRESSION, true) : null,
                  size,
                  syncFlush);
            usesDefaultDeflater = true;
            writeHeader();
            crc.reset();
        }
        ...
        private void writeHeader() throws IOException {
            out.write(new byte[] {
                          (byte) GZIP_MAGIC,        // Magic number (short)
                          (byte)(GZIP_MAGIC >> 8),  // Magic number (short)
                          Deflater.DEFLATED,        // Compression method (CM)
                          0,                        // Flags (FLG)
                          0,                        // Modification time MTIME (int)
                          0,                        // Modification time MTIME (int)
                          0,                        // Modification time MTIME (int)
                          0,                        // Modification time MTIME (int)
                          0,                        // Extra flags (XFLG)
                          OS_UNKNOWN                // Operating system (OS)
                      });
        }
        ...
    }

    Выбрать уровень компрессии вам не дадут. написать имя файла вам не дадут. Написать комментарий вам не дадут. Жить будет в пакете для другого формата компрессии.

    Tike, 29 Октября 2025

    Комментарии (5)
  8. 1C / Говнокод #29145

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Функция ЧислоВСтрокуБезПробелов(Число) Экспорт
    	 Возврат СтрЗаменить(Строка(Число), Символы.НПП, "");
    КонецФункции
    
    Чем не подходит Формат???

    evreybiysk, 11 Июня 2025

    Комментарии (5)
  9. Haskell / Говнокод #29143

    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
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    (defparameter *workers* 200)
    
    (defun rn-virt-dfns (data &optional (turn-on t))
      (defconstant +workers+ *workers*)
      `(declare (type (array (member ,(let* ((i '())) (do* ((y 0 (+ y 1))) ((= y 9) 'nil) (push y i)))) (3)) data))
      (sb-alien:define-alien-type address-pointer (sb-alien:system-area-pointer))
      (progn (macrolet ((>> (x s) `,(ash x s)) (<< (x -s) `(ash ,x ,(- -s))) (~ (x) `(lognot ,x)) (& (x) `(sb-kernel:get-lisp-obj-address ,x)))
        (let ((truedata (eval `(mapcar #'(lambda (x) (coerce x 'list)) (coerce ,data 'list)))))
          (labels ((get-pointer (addr)
                     (sb-sys:sap-ref-8 (sb-sys:int-sap addr) 0))
                   (proc-dfns-simd (pntrx mmr pntry orgdt)
                     (declare (type integer pntrx pntry)
                              (type (array integer (*)))
                              (type list orgdt))
                     (loop for it in `(,@orgdt)
                           do (let ((dif (the integer (- pntry `,(& it)))))
                                (when (= `,(abs dif) (+ #XA #X1))
                                  (do ((it 0 (+ it (if `(plusp ,dif) 1 -1)))) ((= it (if `(plusp ,dif) 16 -16)) nil)
                                    (ignore-errors
                                      (let ((lazy `(setf (& (get-pointer (- ,dif ,it))) #b0))
                                            (lazy-2 `(setf (~ (& (get-pointer (- ,dif ,it))) #b1))))
                                        (when turn-on (eval lazy) (eval lazy-2))))))
                                (when (/= (abs dif) 8)
                                  (if `(plusp ,dif)
                                    (dotimes (i 8)
                                      (ignore-errors
                                        (let ((lazy `(setf (>> (& (get-pointer (- ,dif ,i))) #x1) #b1)))
                                          (when turn-on (eval lazy)))))
                                    (loop for i from 0 downto -8 by 1
                                          do (ignore-errors
                                               (let ((lazy `(setf (<< (& (get-pointer (- ,dif ,i))) #x1) #b1)))
                                                  (when turn-on (eval lazy)))))))))))
    
            (handler-case
                (loop repeat +workers+ do (bt:make-thread #'(lambda () (proc-dfns-simd `,(& data) `,data `,(& truedata) `,truedata))))
              (error (e)
                (declare (ignore e)))))))))
    
    
    (rn-virt-dfns #(#(1) #(2)))

    lisp-worst-code, 08 Июня 2025

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

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(int argc, char **argv) {
    	size_t buflen;
    	size_t i;
    	char *obuffer;
    	if (argc != 2) {
    		fprintf(stderr, "Usage: %s 'some ASCII string'\n", argv[0]);
    		fprintf(stderr, "\tconvert the string into overlong UTF-8.\n");
    		return 1;
    	}
    	buflen = strlen(argv[1])*2+1;
    	obuffer = malloc(buflen);
    	if (obuffer == NULL) {
    		fprintf(stderr, "Error: cannot allocate %zd bytes of memory.", buflen);
    		return 2;
    	}
    	for (i=0; argv[1][i]; i++) {
    		obuffer[2*i]   = 0xC0|(argv[1][i]>>6);
    		obuffer[2*i+1] = 0x80|(argv[1][i]&0x3F);
    	}
    	obuffer[2*i] = '\0';
    	puts(obuffer);
    	free(obuffer);
    	return 0;
    }

    В UTF-8 запрещено использовать кодовые последовательности не минимальной длины, например юникоды с номером до 127 требуется кодировать именно в один байт, а не в 2,3 и так далее. А если так всё-таки сделать, полученная фигня называется оверлонгом (overlong). Вот этот код их как раз и создаёт. Но только из ASCII символов и расширяя их только до двух байт. Написание более универсального варианта, если вдруг кому-то надо оставляем как упражнение для читателя.

    Что интересно, некоторые текстовые редакторы, если в них открыть файл, сделанный этой программой, увидят обычный текст.

    Threadwalker, 03 Февраля 2025

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

    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
    Запрос = Новый Запрос;
    	Запрос.Текст = 
    		"ВЫБРАТЬ
    		|	КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
    		|	КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
    		|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Значение КАК Значение
    		|ИЗ
    		|	РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(, Период <= &ДатаРег) КАК КадроваяИсторияСотрудниковСрезПоследних,
    		|	РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(, Период <= &ДатаРег) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних
    		|ГДЕ
    		|	КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = &Сотрудник
    		|	И ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Показатель = &Показатель
    		|	И ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Сотрудник = &Сотрудник";
    	
    	Запрос.УстановитьПараметр("ДатаРег", Объект.ДатаОперации);
    	Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
    	Запрос.УстановитьПараметр("Показатель", Справочники.ПоказателиРасчетаЗарплаты.НайтиПоНаименованию("Тарифная ставка (часовая)"));
    	РезультатЗапроса = Запрос.Выполнить();

    Довелось допиливать за студентом со стажем 1 год.
    Всякое видел, но к таким извращениям не был готов... особенно условию с периодом
    Уже молчу про предопределенный показатель и отсутствие связей

    ilyatim23, 30 Сентября 2024

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