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

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

    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
    void SoftSPIB::setClockDivider(uint8_t div) {
        if (div == SPI_CLOCK_DIV2) _delay = 2;
        else if (div == SPI_CLOCK_DIV4) _delay = 4;
        else if (div == SPI_CLOCK_DIV8) _delay = 8;
        else if (div == SPI_CLOCK_DIV16) _delay = 16;
        else if (div == SPI_CLOCK_DIV32) _delay = 32;
        else if (div == SPI_CLOCK_DIV64) _delay = 64;
        else if (div == SPI_CLOCK_DIV128) _delay = 128;
        else _delay = 128;
    }
    
    uint8_t SoftSPIB::transfer(uint8_t val) {
        ...
        uint8_t del = _delay >> 1;
    
        uint8_t bval = 0;
        for (uint8_t bit = 0; bit < 8; bit++) {
            digitalWrite(_sck, _ckp ? LOW : HIGH);
    
            for (uint8_t i = 0; i < del; i++) {
                    asm volatile("nop");
            }
    
            if (...) {...} else {
                    digitalWrite(_mosi, val & (1<<bit) ? HIGH : LOW);
            }
        ...
        ...
        ...
        }
        return out;
    }

    - А это точно частота CLOCK_DIV2? /* Fosc/2 */
    - Не боись, я все рассчитал!

    Steve_Brown, 17 Марта 2022

    Комментарии (95)
  3. Java / Говнокод #28015

    +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
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    public class ExampleW{
        public static void main(){
            Scanner input = new Scanner(System.in);
            System.out.println("Give mark: ");
            int mark = input.nextInt();
            String Grade;
            switch (mark){
            case 100:
            case 99:
            case 98:
            case 97:
            case 96:
            case 95:
            case 94:
            case 93:
            case 92:
            case 91:
            case 90:{
                Grade = "A+";
                break;
            }case 89:
            case 88:
            case 87:
            case 86:
            case 85:
            case 84:
            case 83:
            case 82:
            case 81:
            case 80: {
                Grade = "A";
                break;
            }case 75:
            case 76:
            case 77:
            case 78:
            case 79:{
                Grade = "A-";
                break;
            }case 70:
            case 71:
            case 72:
            case 73:
            case 74:{
                Grade ="B+";
                break;
            } case 69:
            case 68:
            case 67:
            case 66:
            case 65:{
                Grade ="B";
                break;
            }
            case 64:
            case 63:
            case 62:
            case 61:
            case 60:{
                Grade = "C+";
                break;
            }case 50:
            case 51:
            case 52:
            case 53:
            case 54:
            case 55:
            case 56:
            case 57:
            case 58:
            case 59: {
                Grade = "C";
                break;
            }case 45:
            case 46:
            case 47:
            case 48:
            case 49:{
                Grade = "D";
                break;
            }case 40:
            case 41:
            case 42:
            case 43:
            case 44:{
                Grade = "E";
                break;
            }case 0:
            case 1:
            case 2:
            case 3:
            ...
            ...
            }default: {
                Grade = "null";
                break;
            }}
    }

    Мистер Хэнки, 15 Февраля 2022

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

    +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
    #include <iostream>
    #include <functional>
    
    #define STD_FUNCTION(a, ...) typeof( a (*) __VA_ARGS__ )
    
    template<typename T>
    T do_op_t(T a, T b, STD_FUNCTION(T,(T,T)) op)
    {
      return op(a,b);
    }
    
    template
    <
    
      typename T,
    
      STD_FUNCTION(
        T,
        (
          T,T,
          STD_FUNCTION(
            T,
            (T,T)
          )
        )
      ) F1,
    
      STD_FUNCTION(
        T,
        (T,T)
      ) F2
    
    >
    T do_op_spec(T a, T b)
    {
      return F1(a, b, F2);
    }
    
    int add(int a, int b) { return a + b; }
    
    int mul(int a, int b) { return a * b; }
    
    std::function<int(int,int)> fnc = \
      do_op_spec\
      <
        int,
        do_op_t<int>,
        add
      >;
    
    int main()
    {
      std::cout << do_op_t<int>(9, 9, add) << "\n";
      std::cout << do_op_t<int>(9, 9, mul) << "\n";
      std::cout << do_op_spec<int, do_op_t<int>,add>(9,9)  << "\n";
      std::cout << do_op_spec<int, do_op_t<int>,mul>(9,9)  << "\n";
      std::cout << fnc(9,9) << "\n";
    }

    Какая крестопараша )))

    j123123, 23 Июля 2021

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

    0

    1. 1
    2. 2
    p "Какой багор )))"
    puts "Какой багор )))"

    Какой багор )))

    YxaHbckuu_nemyx, 06 Апреля 2020

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

    +2

    1. 1
    Дорогие товарищи!

    В этом посте проводятся выборы говнозидента.
    Проявите свой гражданский говнодолг: проголосуйте за лучшего кандидата!

    Для кандидатов: баллотироваться под первым комментарием.

    gost, 11 Февраля 2020

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

    +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
    // https://godbolt.org/z/PPAWM0
    #include <embed>
    #include <cstdint>
    
    constexpr std::uint64_t val_64_const = 0xcbf29ce484222325u;
    constexpr std::uint64_t prime_64_const = 0x100000001b3u;
    
    inline constexpr std::uint64_t
    hash_64_fnv1a_const(const char* const ptr, std::size_t ptr_size, const std::uint64_t value = val_64_const) noexcept {
    	return (ptr_size == 1) 
    		? value : 
    		hash_64_fnv1a_const(&ptr[1],
    			ptr_size - 1, 
    			(value ^ static_cast<std::uint64_t>(static_cast<char>(*ptr))) * prime_64_const);
    }
    
    int main () {
    	constexpr std::span<const char> art_data  = std::embed("/dev/urandom", 32);
    	constexpr std::uint64_t actual = hash_64_fnv1a_const(art_data.data(), art_data.size());
    
    	return static_cast<int>(actual);
    }

    Очередная дрисня http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1040r0.html в крестоговне, теперь можно через std::embed прочитать какое-то говно и даже в constexpr с ним что-то делать, например считать хеш-сумму. Можно constexpr-компилятор сделать, который бы читал код через std::embed и через constexpr хуиту его обрабатывал и компилировал. Скажите им еще про миксины из D

    j123123, 10 Ноября 2019

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    for (const auto& item : items)
    {
      if (!item.isValid())
        continue;
      else
      {
        // 200 строк кода
      }
    }

    Что делать с такими колегами?

    Elvenfighter, 21 Августа 2019

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

    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
    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
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    <?
    error_reporting(E_ALL ^ E_DEPRECATED);
    defined('_SECUR_GAMES') or die('Unknown Error!');
      function bbcode($var = "") {
            $var = preg_replace('#\[b\](.*?)\[/b\]#si', '<span style="font-weight: bold;">\1</span>', $var);
            $var = preg_replace('#\[i\](.*?)\[/i\]#si', '<span style="font-style:italic;">\1</span>', $var);
            $var = preg_replace('#\[u\](.*?)\[/u\]#si', '<span style="text-decoration:underline;">\1</span>', $var);
            $var = preg_replace('#\[s\](.*?)\[/s\]#si', '<span style="text-decoration: line-through;">\1</span>', $var);
            $var = preg_replace('#\[big\](.*?)\[/big\]#si', '<big>\1</big>', $var);
            $var = preg_replace('#\[small\](.*?)\[/small\]#si', '<small>\1</small>', $var);
            $var = preg_replace('#\[center\](.*?)\[/center\]#si', '<center>\1</center>', $var);
            $var = preg_replace('#\[right\](.*?)\[/right\]#si', '<span class="right">\1</span>', $var);
            $var = preg_replace('#\[hr\](.*?)\[/hr\]#si', '<hr>\1</hr>', $var);
            $var = preg_replace('#\[br\](.*?)\[/br\]#si', '<br>\1</br>', $var);
            $var = preg_replace('#\[p\](.*?)\[/p\]#si', '<p>\1</p>', $var);
            $var = preg_replace('#\[gold\](.*?)\[/gold\]#si', '<span style="color:gold">\1</span>', $var);       
          return $var;
        }
        function calculate_age($birthday) {
          $birthday_timestamp = strtotime($birthday);
          $age = date('Y') - date('Y', $birthday_timestamp);
          if (date('md', $birthday_timestamp) > date('md')) {
            $age--;
          }
          return $age;
        }
    	function generatePassword($length=8){
    	  $chars = 'qwedazxscvfrtgnbhyujmkiolp1234567890WEDAZXSCVFRTGNBHYUJMKIOLP';
    	  $numChars = strlen($chars);
    	  $string = '';
    	  for ($i = 0; $i < $length; $i++) {
    	    $string .= substr($chars, rand(2, $numChars) - 1,2);
    	  }
    	  return $string;
    	}
    	function generatePass_word($length=8){
    	  $chars = 'qcvfrtgnbhyujmlp567890WEDAZXSCVFRBHYIOLP';
    	  $numChars = strlen($chars);
    	  $string = '';
    	  for ($i = 0; $i < $length; $i++) {
    	    $string .= substr($chars, rand(2, $numChars) - 1,2);
    	  }
    	  return $string;
    	}
    	function generateLogin($length=8){
    	  $chars = 'qweascv8fjmk6iolp123450WEXSCVFRTGNUOLP';
    	  $numChars = strlen($chars);
    	  $string = '';
    	  for ($i = 0; $i < $length; $i++) {
    	    $string .= substr($chars, rand(2, $numChars) - 1,2);
    	  }
    	  return $string;
    	}
    	function check($str)
    	{
    		$str = htmlentities($str, ENT_QUOTES, 'UTF-8');
    		$str = str_replace("\'", "&#39;", $str);
    		$str = str_replace("\r\n", "<br/>", $str);
    		$str = strtr($str, array(chr("0") => "", chr("1") => "", chr("2") => "", chr("3") => "", chr("4") => "", chr("5") => "", chr("6") => "", chr("7") => "", chr("8") => "", chr("9") => "", chr("10") => "", chr("11") => "", chr("12") => "", chr
    		("13") => "", chr("14") => "", chr("15") => "", chr("16") => "", chr("17") => "", chr("18") => "", chr("19") => "", chr("20") => "", chr("21") => "", chr("22") => "", chr("23") => "", chr("24") => "", chr("25") => "", chr("26") => "", chr("27") =>
    		"", chr("28") => "", chr("29") => "", chr("30") => "", chr("31") => ""));
    		$str = str_replace('\\', "&#92;", $str);
    		$str = str_replace("|", "I", $str);
    		$str = str_replace("||", "I", $str);
    		$str = str_replace("/\\\$/", "&#36;", $str);
    		$str = str_replace("[l]http://", "[l]", $str);
    		$str = str_replace("[l] http://", "[l]", $str);
    		$str = mysql_real_escape_string($str);
    		return $str;
    	}
    	class PAGINGS
    	{
    		public $total;
    		private $total_pages;
    		private $page;
    		private $start;
    		private $end;
    		public $get;
    		public $count_get;
    
    		public function __construct($size, $query)
    		{
    			$this->total = mysql_result(mysql_query(preg_replace('~SELECT (.*?) FROM~isU', 'SELECT COUNT(*) FROM', $query).' ;'), 0);
    			$this->total_pages = ceil($this->total / $size);
    			$this->page = isset($_POST['page']) ? $_POST['page'] : $_GET['page'];
    			$this->page = !empty($this->page) && ctype_digit($this->page) && $this->page >= 1 && $this->page <= $this->total_pages ? $this->page : 1;
    			$this->start = ($this->page * $size) - $size;
    			$this->end = $this->start + $size < $this->total ? $this->start + $size : $this->total;
    			$this->get = mysql_query($query.' LIMIT '.$this->start.', '.htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($size)))))).' ;');
    			$this->count_get = @ mysql_num_rows($this->get);
    		}

    Взял перл из спора с каким-то мамкиным экспертом, утверждавшим "функциональщина - сраный легаси, ооп - наше всё". Здесь ещё куча алмазиков:
    https://bymas.ru/downloads/view/77400

    monobogdan, 05 Августа 2019

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

    −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
    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
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    /*
    	Программа для генерации и вывода разряженной матрицы
    	Специально для сайта govnokod.ru
    */
    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    
    // Объявление переменных
    const int first_index_size=20;
    const int second_index_size=50;
    char matrix_array[first_index_size][second_index_size];
    
    enum border_style{
    	line,single 
    };
    
    void borders(border_style matrix_border)
    {
    	switch(matrix_border)
    	{
    		case 0:
    			for(int i=0; i<(second_index_size+2); i++)
    				std::cout<<"#";
    			std::cout<<"\n";
    			break;
    		case 1:
    			std::cout<<"#";
    	}
    }
    
    void rand_func_init()
    {
    	// Инициализация функции rand()
    	srand(time(0));
    	rand();
    }
    
    void matrix_init_zero()
    {
    	// Инициализация матрицы нулём	
    	for(int i=0; i<first_index_size; i++)
    		for(int t=0; t<second_index_size; t++)
    			matrix_array[i][t]=0;
    }
    
    void matrix_init_rand()
    {
    	// Заполнение матрицы
    	for(int i=0; i<first_index_size; i++)
    	{
    		int init_num=rand()%11;
    		while(init_num)
    		{
    			init_num--;
    			matrix_array[i][rand()%50]=149;
    		}
    	}
    }
    
    void matrix_print()
    {
    	// Вывод матрицы	
    	borders(line);
    	for(int i=0; i<first_index_size; i++)
    	{
    		borders(single);
    		for(int t=0; t<second_index_size; t++)	
    			std::cout<<matrix_array[i][t];
    		borders(single);
    		std::cout<<"\n";
    	}
    	borders(line);
    }
    
    int main()
    {
    	rand_func_init();
    	matrix_init_zero();
    	matrix_init_rand();
    	matrix_print();
    	return 0;
    }

    Разряженная матрица 20x50.
    Количество ненулевых значений от 0 до 10.

    BelCodeMonkey, 18 Августа 2018

    Комментарии (95)
  11. Swift / Говнокод #24592

    +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
    // NextViewController.swift
    
    override func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
        NSUserDefaults.standardUserDefaults().setInteger(indexPath.row, forKey: "Selected offense")
    		
        let offense: NSDictionary = self.offenses.objectAtIndex(indexPath.row) as NSDictionary
        let id: Int = offense.objectForKey("id") as Int
        let title: String = offense.objectForKey("title") as String
        NSUserDefaults.standardUserDefaults().setInteger(id, forKey: "Selected offense id")
        NSUserDefaults.standardUserDefaults().setObject(title, forKey: "Selected offense title")
    }
    
    // PreviousViewController.swift
    
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        hideKeyboard()
        tableView.reloadData()
    }
    	
    func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
        let kCellIndetifier: String = "NewOffenseCell"
        var cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(kCellIndetifier, forIndexPath: indexPath) as UITableViewCell
    		
        if cell == nil {
            cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: kCellIndetifier)
        }
    		
        cell.text = NSUserDefaults.standardUserDefaults().stringForKey("Selected offense title")
        cell.font = UIFont.systemFontOfSize(20)
        return cell
    }

    Реализуем колбэки *лицорука*

    def, 06 Августа 2018

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