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

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

    +14

    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
    [code=cpp]
    #include <iostream>
    #include <cmath>
    
    void foo(double x, double y)
    {
        if (std::cos(x) != std::cos(y)) 
            std::cout << "Я знаю точно невозможное возможно";
    }
    
    int main()
    {
        foo(1.0, 1.0);
        return 0;
    }
    [/code]

    floatы и нуб.

    igumnovf, 16 Ноября 2012

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

    +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
    String.prototype.toCamelCase = function () {
    	var symbols = [], ready = '';
    	for (var z = 0; z < this.length; z++) {
    		symbols[z] = this.charAt(z);
    	} 
    	for (var i = 0; i < symbols.length; i++) {
    		if (symbols[i] == '-') {
    			symbols[i + 1] = symbols[i + 1].toUpperCase();
    		}
    	}
    	for (var q = 0; q < symbols.length; q++) {
    		ready = ready + symbols[q];
    	}
    	ready = ready.replace('-', '');
    	return ready;
    };

    margin-left => marginLeft

    eval, 25 Июня 2010

    Комментарии (126)
  4. JavaScript / Говнокод #28026

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function toHex(this: TypeOf<1>) {
    	return "hex";
    }
    
    function main() {
        print((5).toHex());
        print("done.");
    }

    решил добавить прикольного кода из C# в TypeScript Compiler ... красиво получилось? (тем кто еще не знает где искать компилятор https://github.com/ASDAlexander77/TypeScriptCompiler)

    ASD_77, 17 Февраля 2022

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

    +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
    // And then I replaced the idiomatic Rust code for working with block like
    
        for (dline, (sline0, sline1)) in dst.chunks_mut(dstride).zip(tmp.chunks(TMP_BUF_STRIDE).zip(tmp2.chunks(TMP_BUF_STRIDE))).take(h) {
            for (pix, (&a, &b)) in dline.iter_mut().zip(sline0.iter().zip(sline1.iter())).take(w) {
                *pix = ((u16::from(a) + u16::from(b) + 1) >> 1) as u8;
            }
        }
    
    // with raw pointers:
    
        unsafe {
            let mut src1 = tmp.as_ptr();
            let mut src2 = tmp2.as_ptr();
            let mut dst = dst.as_mut_ptr();
            for _ in 0..h {
                for x in 0..w {
                    let a = *src1.add(x);
                    let b = *src2.add(x);
                    *dst.add(x) = ((u16::from(a) + u16::from(b) + 1) >> 1) as u8;
                }
                dst = dst.add(dstride);
                src1 = src1.add(TMP_BUF_STRIDE);
                src2 = src2.add(TMP_BUF_STRIDE);
            }
        }

    What do you know, the total decoding time for the test clip I used shrank from 6.6 seconds to 4.9 seconds. That’s just three quarters of the original time!

    And here is the problem. In theory if Rust compiler knew that the input satisfies certain parameters i.e. that there’s always enough data
    to perform full block operation in this case, it would be able to optimise code as good as the one I wrote using pointers or even better.
    But unfortunately there is no way to tell the compiler that input slices are large enough to perform the operation required amount of times.
    Even if I added mathematically correct check in the beginning it would not eliminate most of the checks.

    https://codecs.multimedia.cx/2021/05/missing-optimisation-opportunity-in-rust/

    3.14159265, 17 Августа 2021

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

    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
    #include <stdlib.h>
    #include <time.h>
    #include <random> 
    #include <algorithm>
    .........
    .........
    double
    js::math_random_no_outparam(JSContext* cx)
    {
    	if JSContext* == "Math.floor(Math.random() * (max - min + 1) + min)"
    	{
                  return Math.floor(Math.random() * (max - min + 1) + min);
    	}
           return random_nextDouble(&cx->compartment()->rngState);
    }
    ........

    Доброго времени
    хочу заставить Лису(FF) вычислять math функцию внутри браузера, а не через Windows (ADVAPI32.DLL Function36).
    Но при компиляции измененного кода постоянно получаю ошибки.
    Я конечно кривые коды пишу, но пытаюсь подстроиться под исходный С++.
    ...........................
    в итоге не видит и не распознает ни рандом, ни фло, ни мат, ни джиэс контекст
    Подскажите в каком направлении копать.

    DrAli, 01 Апреля 2018

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

    +1

    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
    66. 66
    67. 67
    import java.lang.*;
    
    public class Password {
        static char[] ch = {'a', 'b'};
        static byte length = 2;
        static int m = ch.length;
        static int n = length;
        static int l = (int) (Math.pow(ch.length, length));
        static String[] arr = new String[l];
    
        public static void main(String[] args) {
            for (int xyu = 0; xyu < l; xyu++) {
                arr[xyu] = "";
            }
            String[] output = generator(ch, length);
            for (String password : output) {
                System.out.println(password);
            }
        }
    
        public static String[] generator(char[] ch, byte length) {
    
            for (int i = 0; i < l; i++) {
                arr[i] = M(i);
            }
            return arr;
        }
    
    
        public static String M(int i) {
            String a = Perevod(i, m);
    
            for (int j = 0; j < n; j++) {
                arr[i] += ch[Character.getNumericValue(a.charAt(j))];
    
            }
            return arr[i];
        }
                //FIXME
        public static String Perevod(int i, int base) {
            String r = "";
            if (i == 0) {
                for (int counter = 0; counter < n; counter++) {
                    r += "0";
                }
            }
            boolean f = false;
            while (i > 0) {
                r = r + (i % base);
                int q = i % base;
                i = (i - q) / base;
                if (q == 1) {
                    f = true;
                }
            }
            if (i == 0 & f == true) {
                for (int counter = 0; counter < n - 1; counter++) {
                    r += "0";
                }
            }
            String res = "";
            for (int k = 0; k < r.length(); k++) {
                res += r.charAt(r.length() - 1 - k);
            }
            return res;
        }
    }

    Должен генерировать всевозможные пароли заданной длины из заданного алфавита. Не работает перевод в другую систему счисления

    Rawsone, 04 Августа 2016

    Комментарии (125)
  8. PHP / Говнокод #18419

    +167

    1. 1
    2. 2
    if ($result = mailer($data)) echo "<p>Коммерческое предложение отправлено к вам на электронную почту.</p>";
    else echo "<p>Коммерческое предложение отправлено к вам на электронную почту.</p>";//да простит меня Бог

    Ковыряю сайта заказчика. Нашел гениальный код в скрипте обработки формы.

    jankefir, 30 Июня 2015

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

    +149

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $flag = "yes";
    /* ... */
    if($flag) {
        $flag = $flag;
    }

    dgkj, 28 Мая 2015

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

    +129

    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
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    void swap (char *x, char *y)
    {
        char temp;
        temp = *x;
        *x = *y;
        *y = temp;
    }
     
    void permute(char *a, int i, int n)
    {
        int j;
        if (i == n)
        printf("%s\n", a);
        else
        {
            for (j = i; j <= n; j++)
            {
                swap((a+i), (a+j));
                permute(a, i+1, n);
                swap((a+i), (a+j));
            }
        }
    }
     
     
    int main()
    {
        char str[80] ;
        int len=0,i;
        puts("Enter a string:\n\n");
        gets(str);
        for (i=0; str[i] != '\0'; i++)
        {
            len++;
        }
        permute(str, 0, len);
        getchar();
        return 0;
    }

    Источник:
    http://www.c-program-example.com/2012/04/c-program-to-find-all-permutations-of.html

    про strlen видимо никто не слышал

    denis90, 13 Июля 2013

    Комментарии (125)
  11. Си / Говнокод #11440

    +136

    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
    static int internal_CheckMac(char * inc_mac)
    {
            int return_value = 0x1;
    
            if (strlen(inc_mac) != 17)
            {
                    return return_value;
            }
    
            unsigned int i = 0x0;
            for (i = 3; i <=17; i=i+2)
            {
                    if (inc_mac[i-1] != 58)
                    {
                            return_value = 0x1;
                            break;
                    }
                    else
                            return_value = 0x0;
                    i++;
            }
    
            return return_value;
    }

    Функция проверяет содержимое строки. В строке должен быть мак адрес формата 00:01:02:03:04:05. 58 в строке 13 - это десятичное значение символа ":"
    Авторство функции принадлежит Виталию Кострову, великому программисту из Рыбинска. После ревизии этого кода пришло понимание что надо избавляться от этого сотрудника.

    evgeny, 19 Июля 2012

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