1. Java / Говнокод #24133

    −4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    List<Validatable> list = getValues();
    
    ...
    return list == null || list.stream().reduce(Boolean.TRUE,
                        (identity, cf) -> identity
                                && cf.validate().stream()
                                .map(ValidationError::getError)
                                .peek(feedbackPanel::error)
                                .count() == 0,
                        (result1, result2) -> result1 && result2);

    Покритикуйте ошибки использования stream и lambda

    owner, 16 Апреля 2018

    Комментарии (11)
  2. Python / Говнокод #24129

    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
    def calc ( x ) :
        if type ( x ) is not list :
            return x
        if len ( x ) == 0 :
            return x
        while type ( x [ 0 ] ) is list :
            x = x [ 0 ] + x [ 1: ]
        c = x [ 0 ]
        print ( x )
        if c == 'I' :
            if len ( x ) <= 1 :
                return x
            return calc ( x [ 1: ] )
        elif c == 'K' :
            if len ( x ) <= 2 :
                return x
            return calc ( [ x[1] ] + x [ 3: ] )
        elif c == 'W' :
            if len ( x ) <= 2 :
                return x
            return calc ( x[1:3] + x[ 2: ] )
        elif c == 'S' :
            if len ( x ) <= 3 :
                return x
            return calc ( [ x[1] , x [3] , [ x[2] , x[3] ] ] + x [ 4: ] )
        elif c == 'B' :
            if len ( x ) <= 3 :
                return x
            return calc ( [ x[1] , [ x[2] , x[3] ] ] + x[4:] )
        elif c == 'C' :
            if len ( x ) <= 3 :
                return x
            return calc ( [ x[1] , x[3] , x[2] ] + x[ 4 : ] )
        return [ c ] + calc ( x [ 1: ] )
    
    
    def parse ( s , n = 0 ) :
      res = []
      i = n
      while i < len ( s ) :
        if s [ i ] == '(' :
          t = parse ( s , i + 1 )
          res.append ( t [ 0 ] )
          i = t [ 1 ] - 1
        elif s [ i ] == ')' :
          return ( res , i + 1 )
        else :
          res.append ( s [ i ] )
        i += 1
      return ( res , i )
    
    print ( '>> ' , end = '' )
    while True :
        for i in calc ( parse ( input() ) [ 0 ] ) :
            print ( i , end = '' )
        print ( '\n>> ' , end = '' )

    Вычисляэ комбинаторныэ термы, и выдаё промежности, типа:

    >> S(SKK)(SKK)x
    ['S', ['S', 'K', 'K'], ['S', 'K', 'K'], 'x']
    ['S', 'K', 'K', 'x', [['S', 'K', 'K'], 'x']]
    ['K', 'x', ['K', 'x'], [['S', 'K', 'K'], 'x']]
    ['x', [['S', 'K', 'K'], 'x']]
    ['S', 'K', 'K', 'x']
    ['K', 'x', ['K', 'x']]
    ['x']
    xx

    yet_another_one_shit, 16 Апреля 2018

    Комментарии (39)
  3. Си / Говнокод #24125

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #include <stdio.h>
     
    int main(void) {
    	int i = 0;
    	loop:
    	i > 10 || printf("%d\n", i++) && goto loop;
    	printf("end\n");
    	return 0;
    }

    Зачем удолили #24105?

    3.14159265, 14 Апреля 2018

    Комментарии (43)
  4. Objective C / Говнокод #24124

    −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
    + (NSString*)enumToString:(SomeEnum)someEnumValue
    {
    	NSDictionary *strings =
    	@{
    		@(SomeEnumUndefined) : @"Undefined",
    		@(SomeEnumValue1) : @"Value1",
    		@(SomeEnumValue2) : @"Value2",
    		// Ещё 100500 пар
    	};
    
    	return strings[@(someEnumValue)];
    }

    Имена изменены, но смысл понятен. Точнее, непонятен.

    Desktop, 14 Апреля 2018

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

    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
    #include "stdafx.h"
    #include<iostream>
    #include<vector>
    
    using namespace std;
    /*
    Задание: перемножить две матрицы и вывести результат на экран
    */
    
    vector<vector<int>> inputToVector(int n,int m) {
    	vector<vector<int>>vec(n, vector<int>(m));
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    			cin >> vec[i][j];
    
    		}
    	}
    	return vec;
    }
    template<class T>
    void multiple(vector<T>a,vector<T>b,int x1,int y1,int y2) {
    	int ans = 0;
    	for (int i = 0; i < x1; i++) {
    		for (int j = 0; j < y2; j++) {
    			for (int k = 0; k < y1; k++) {
    				ans += a[i][k] * b[k][j];
    			}
    			cout << ans << '\t';
    			ans = 0;
    		}
    		
    		cout << endl;
    	}
    }
    int main()
    {
    	setlocale(LC_ALL, "Russian");
    	int x1, y1, x2, y2,temp;
    	cout << "Требуется вычислить произведение двух матриц А и В" << endl;
    	cout << "Введите размерность матрицы А" << endl;
    	cin >> x1 >> y1;
    	cout << "Введите элементы матрицы А" << endl;
    	vector<vector<int>>one = inputToVector(x1, y1);
    	cout << "Введите размерность матрицы B" << endl;
    	cin >> x2 >> y2;
    	cout << "Введите элементы матрицы B" << endl;
    	vector<vector<int>>two = inputToVector(x2, y2);
    	cout << "Результирующая матрица, полученная перемножением матрицы А на матрицу В" << endl;
    	multiple(one, two,  x1,  y1, y2);
    	system("pause");
    	return 0;
    }

    ArthurMakaev, 13 Апреля 2018

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

    0

    1. 1
    2. 2
    var a=new Array();
    a['line']=document.getElementById('water_disconnection_search').value;

    array-oriented programming
    https://www.teplosetspb.ru/water_disconnection

    Fike, 12 Апреля 2018

    Комментарии (3)
  7. PHP / Говнокод #24117

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $i = -1;
            foreach ( $jsonLogger->pvfMedia as $item) {
                $i++;
                if ($jsonLogger->pvfMedia[$i]->pvfConent){
                    $jsonLogger->pvfMedia[$i]->pvfConent = 'BAKED_CONTENT';
                }
            }

    foreach ( $jsonLogger->pvfMedia as $key=>$item) {.... - это не наш метод :)

    miklblitz, 12 Апреля 2018

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

    +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
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    #include "stdafx.h"
    #include <fstream>
    #include <iostream>
    using namespace std;
    int isMax(char mask[], int num, char in[]);        //Функция проверки символа
    int main(int argc, char* argv[])
    {
        if (argc == 1) {
            cout << "Use PasswordGenerator [Mask] [quantity of passwwords] [Path to file]\n";        //Проверка входных параметров
            return 1;
        }
        ofstream out;            //Выходной файл
        out.open(argv[3]);        //Открываем файл с именем которое ввел пользователь
        int len = 0;                    //Длина пароля
        char mask[1024] = "hll";       //Маска пароля
        char buff[1024] = { 0 };        //Буфер под пароль
        double quant = 0;                //Количество паролей в выходном файле
        strcpy_s(mask, argv[1]);        //копируем маску введённую пользователем
        len = strlen(mask);                //Узнаем длину
        for (int ii = 0; ii < len; ii++) {
            if ((mask[ii]= 'l') && (mask[ii]= 'h')&& (mask[ii]= 'n')) {           //Проверка маски на корректность
                cout << "Mask can be l h n\n";                                        //Маска может содержать только: l маленькие латинские буквы; h большие латинские буквы; n цифры
                    return 2;
            }
        }
        quant = atoi(argv[2]);                      //Запоминаем количество комбинаций
        if (quant == 0) {                           //Если пользователь ввел "0"
            quant = 1;                                //То считаем все возможные комбинации
            for (int ii = 0; ii < len; ii++) {         
                switch (mask[ii])
                {
                case 'l': quant *= 26; break;       //26 - количество возможных букв
                case 'h': quant *= 26; break;
                case 'n': quant *= 10; break;       //10 - количество возможных цифр
                default:
                    break;
                }
            }
        }
        int ii = 0;        //Нужная переменная
        for (ii = 0; ii < len; ii++) {               //Тут создается стартовая комбинация
    
            switch (mask[ii])                        //Например для nnllh будет 00aaA
            {
            case 'l': buff[ii] = 'a'; break;
            case 'h': buff[ii] = 'A'; break;
            case 'n': buff[ii] = '0'; break;
                default:
                    break;
            }
        }
        ii++;
        buff[ii] = '\0';                            //Добавляем маркер конца строки
        double flagc = quant / 10;                  //Константа для поиска процента завершения
        double flag = flagc;                        //Переменная процента завершения
        int per = 1;                                //Множитель процента
        for ( ii = 0; ii < quant; ii++) {                                   //Основной цикл
            out << buff << endl;                                            //Сохраняем пароль в файл
            if (ii >= flag) {                        //Если программа завершила 10%
                cout << per * 10 << "%\n";           //Выводим проценты
                per++;
                flag += flagc;
            }
            for (int ii = len - 1; ii >= 0; ii--) {                        //начинаем посимвольный перебор с конца строки
                if (isMax(mask, i, buff) == 1) {                           //Если встречаем последний возможный символ в данной позиции, то меняем его на стартовый
                    switch (mask[ii])
                   {
                    case 'l': if (buff[ii] == 'z')buff[ii] = 'a'; break;
                    case 'h': if (buff[ii] == 'Z')buff[ii] = 'A'; break;
                    case 'n': if (buff[ii] == '9')buff[ii] = '0'; break;
                  default:
                        break;
                    }
                    continue;    //Переход в следующую итерацию цикла
                }
                buff[ii] +=1;     //Сама инкрементация пароля
                break;            //Конец внутреннего цикла
            }
    }
        return 0;
    }
    int isMax(char mask[], int num, char in[]){
        switch (mask[num])
        {
    case 'l': if (in[num] == 'z')return 1; else return 0;            //Если символ последний, то возвращаем "1", в противном случае "0"
        case 'h': if (in[num] == 'Z')return 1; else return 0;
        case 'n': if (in[num] == '9')return 1; else return 0;
        default:
            break;
        }
    }

    Простой генератор паролей на C++
    https://codeby.net/forum/threads/prostoj-generator-parolej-na-c.61639/

    lolka, 11 Апреля 2018

    Комментарии (6)
  9. Си / Говнокод #24110

    +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 <stdio.h>
    #include <string.h>
    #include <sodium.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    void reverse(char s[]);
    void itoa(int n, char s[]);
    
    int main()
    {
    	if(sodium_init() < 0) {
    		printf("Паника! Библиотека не может быть инициализирована, небезопасно использовать.\n");
    		return 1;
    	}
    
    	#define STR_LEN 30
    	char str[STR_LEN];
    	
    	for(unsigned long i = 0; i < STR_LEN; ++i) {
    		if(randombytes_uniform(2) == 0)
    			str[i] = 48;
    		else
    			str[i] = 49;
    	}
    	
    	printf("%s\n", str);
    	while(1) {
    		for (unsigned long i = 0; i < strlen(str); i+=2)
    		{
    			if(str[i] == '0' && str[i+1] == '0' && str[i+2] == '0')
    				str[i+1] = '1';
    			else if(str[i] == '1' && str[i+1] == '0' && str[i+2] == '0')
    				str[i] = '0', str[i+2] = '1';
    			else if(str[i] == '1' && str[i+1] == '0' && str[i+2] == '0')
    				str[i+2] = '1', str[i] = '0';
    			else if(str[i] == '1' && str[i+1] == '1' && str[i+2] == '1')
    				str[i+1] = '0', str[i] = '0';
    			else if(str[i] == '0' && str[i+1] == '1' && str[i+2] == '1')
    				str[i] = '1';
    			else if(str[i] == '1' && str[i+1] == '0' && str[i+2] == '1')
    				str[i] = '0', str[i+1] = '1';
    			else if(str[i] == '0' && str[i+1] == '0' && str[i+2] == '1')
    				str[i] = '1', str[i+1] = '1', str[i+2] = '0';
    			else if(str[i] == '0' && str[i+1] == '1' && str[i+2] == '0')
    				str[i+2] = '1';
    			else if(str[i] == '1' && str[i+1] == '1' && str[i+2] == '1')
    				str[i] = '0', str[i+2] = '0';
    			else if(str[i] == '1' && str[i+1] == '1' && str[i+2] == '0')
    				str[i+1] = '0';
    
    		}
    		printf("%s\n", str);
    		sleep(1);
    	}
    
    	return 0;
    }

    10 простых правил и бесконечный вывод триллиардов иттерация которые никогда не кнчатся! ЭТО НОНСЕНС

    fuckercoder, 11 Апреля 2018

    Комментарии (15)
  10. PHP / Говнокод #24108

    −6

    1. 1
    echo "Свет истины!";

    Дабы пролить свет истины на ваши слепы очи, я скажу что по факту ПХП самый уебанский язык на свете и больше всего подвергался разного рода хакам, из-за его уёбищности были потеряны миллиарды долларов компаний и посажено миллионы хакеров! Ruby пизже и такого не было, nodejs пиздат и такого не предвидется, python тоже крут и сложно взломать

    fuckercoder, 11 Апреля 2018

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