1. Куча / Говнокод #12068

    +129

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    -- Подготовка
    (.-) :: ot -> (ot -> rt) -> rt
    object .- method = method object
    
    to_string () self = show self
    
    my_array = [1..]
    
    -- ООП в действии
    main = putStrLn( my_array.-take(10).-drop(5).-to_string() )

    Хаскелл и ООП.

    Fai, 07 Ноября 2012

    Комментарии (31)
  2. Java / Говнокод #12067

    +67

    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
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Введите число:");
            String data = "";
            Integer x;
            try {
                data = in.readLine();
            } catch (IOException ex) {
                System.err.println(ex.getLocalizedMessage());
                return;
            }
            try {
                x = Integer.parseInt(data);
            } catch(NumberFormatException ex) {
                System.out.println("Вы ввели  не число!");
                return;
            }
            if(x <= 0) {
                System.out.println("Число должно быть положительным!");
                return;
            }
            HashMap friends_nums = new HashMap<Integer, Integer>();
            for(int i = 0; i <= x; i++) {
                int s = 0;
                for(int y = 1; y < i; y++) {
                    if(i % y == 0) { s += y; }
                }
                int t = 0;
                for(int y = 1; y < s; y++) {
                    if(s % y == 0) { t += y; }
                }
                if(t == i && s != i && !friends_nums.containsValue(i)) { friends_nums.put(i, s); }
            }
            if(friends_nums.isEmpty()) {
                System.out.println("Дружественных пар не найдено!");
            } else {
                System.out.println("Найдены следующие дружественные числа:");
                Object[] one = friends_nums.keySet().toArray();
                Object[] two = friends_nums.values().toArray();
                for(int i = 0; i<friends_nums.size(); i++) {
                    System.out.println(one[i] + " и " + two[i]);
                }
            }
        }

    Дружественными числами называются два различных натуральных числа, для которых сумма всех собственных делителей первого числа (сумма всех делителей, отличных от самого числа) равна второму числу и сумма всех собственных делителей второго числа равна первому числу. Примеры дружественных чисел: 220 и 284. Делители числа 220: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 (в сумме дают число 284); делители числа 284: 1, 2, 4, 71, 142 (в сумме 220). Примеры других пар дружественных чисел: 2620 и 2924, 17296 и 18416. Написать программу, которая по заданному натуральному числу N находит все пары дружественных чисел, не превосходящих N.

    JavaCoder, 06 Ноября 2012

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

    +11

    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
    int a[4]={}; 
    void f(void){} 
    void functionWithArrayParam(int (&a)[4])
    {
            a[3]=4;
    } 
    void functionWithFunctionParam(void (*f)(void))
    {
            f();
    }; 
    int (&functionReturnArray(void))[4]
    {
            return a;
    } 
    void (*arrayOfFunction[4])(void)={f,f,f,f}; 
    void (*functionReturnFunction(void))(void)
    {
            return f;
    }; 
    int main() {
            functionReturnArray()[3]=4;
            functionWithArrayParam(a);
            arrayOfFunction[3]();
            functionWithFunctionParam(f);
            functionReturnFunction()();

    Батхертный путь C++
    Просветление — состояние полной осознанности (выход за пределы дуального ума)... Это скачкообразное изменение восприятия окружающего мира, знаменующее собой переход к отличной от общепринятой форме мышления. Одновременно является началом открытия чакры «третьего глаза» и трамплином для глубоких изменений сознания. Как витальная форма, тяжело поддается ментальному описанию.
    Батхертный путь C++ - путь, которым идут просветленные последователи Дао и Дзен С++, способные писать всё в одном выражении.

    Доступность этого пути в C++ усиливает возможности C++ по созданию одного и того же кода самыми разнообразными и очень красивыми способами.

    Следуя этому пути можно писать такой крутой код, что все товарищи из команды, работающие над кодом, над которым вы работаете вместе с ними, будут завидовать вам и бить вас за это при каждой встрече с разворота.

    Этот принцип батхертного пути C++, лежащий в основе C++, помогает потратить дополнительные 1000% времени на разработку и поддержку C++ программ и получить за это дополнительные деньги. Поэтому C++ крайне выгоден!

    Взглянем на малую часть основ этого пути при объявлении массивов и функций в C++:
    Док-ва истинности пути к просветлению:
    http://ideone.com/FCW4f

    Итак, используя эти простые принципы нужно написать массив функций, возвращающих массив функций с параметром функция, принимающая массив функций, возвращающих функцию void (void)? typedef запрещён.

    Останется только один! Истинный просветленный носитель разума и света!

    Если вы знаете другие основы батхертного пути C++, то искренне прошу поделиться с нами вашими открытыми чакрами.

    LispGovno, 06 Ноября 2012

    Комментарии (37)
  4. Си / Говнокод #12065

    +134

    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
    stroka="Hello world!";
     
    SubStringStartWith(Char, String)
    {
            return strchr(String, Char);
    }
     
    #define cl 'w'
     
    main() 
    {
            printf("In character literal \'%c\' %d bytes \n", cl, sizeof(cl));
            printf("In string \"%s\" substring, that start with \'%c\' char is \'%s\'", stroka, cl,  SubStringStartWith(cl, stroka));
            return 0;
    }

    Оттуда же. Вот уж воистину говнокода-генераторы.
    http://ideone.com/ICydFM

    LispGovno, 06 Ноября 2012

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

    +11

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    typedef void Start1(void);
    struct Kernel
    {
        Start1 Start;
    } kernel;
     
    void Kernel::Start(void)
    {
     
    }

    Как всегда оттуда.

    LispGovno, 06 Ноября 2012

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

    +76

    1. 1
    2. 2
    3. 3
    if (true == args[argInx++].equals("request")) {
      // ...
    }

    Бульшит Йода-стайл

    roman-kashitsyn, 06 Ноября 2012

    Комментарии (7)
  7. Perl / Говнокод #12062

    −166

    1. 1
    2. 2
    3. 3
    4. 4
    for ( my $i = 0 ; $i < $pmcount ; $i ++ ) { 
        $_ = $array_ref->[$i]; 
        # workin' hard
    }

    if ( $perl eq 'C' ) { print "govnokod повсеместно" }

    Elvenfighter, 06 Ноября 2012

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

    +16

    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
    void keyStart(int key,void (*func)())
    {
      while(SDL_PollEvent(&keyEvent))
      {
        switch(keyEvent.type)
        {
          case SDL_KEYDOWN:
            switch(keyEvent.key.keysym.sym)
            {
              /*Выход*/
              case SDLK_ESCAPE:
              func();
              break;
              case SDLK_w:
              func();
              break;
              case SDLK_q:
              func();
              break;
              default:
              break;
            }
          break;
          default:
          break;
        }
      }
          
    }

    Функция высшего порядка, мужики. Сами знаете откуда.

    LispGovno, 06 Ноября 2012

    Комментарии (11)
  9. ActionScript / Говнокод #12060

    −100

    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
    //.....
        public final class Random
        {
            static public function _int(min: int, max: int):int
            {
                return min + Math.round( Math.random()*(max - min));
            }
            //.....
            static public function _Bool():Boolean
            {
                return (_int(0, 1) == 1);
            }
    
            //подброс монеты: орёл
            static public function coinSideEagle(): Boolean
            {
                return _Bool();
            }
    
            //всё по-честному: решка
            static public function coinSideTail(): Boolean
            {
                return !coinSideEagle();
            }
         }

    d9k, 05 Ноября 2012

    Комментарии (22)
  10. Java / Говнокод #12059

    +94

    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
    String s="a, b, c, d,,,";
    		
    		String[] spl=s.split ( "," );
    		o.println(spl.length);
    		for (String s1: spl)
    			o.print(s1+";");
    //4
    //a; b; c; d;
    		StringTokenizer st=new StringTokenizer(s);
    		o.println("\n"+st.countTokens ());
    		while (st.hasMoreElements ()){
    			o.print(
    				st.nextToken ()+";"
    			);
    		}
    //4
    //a,;b,;c,;d,,,;
    		st=new StringTokenizer(s,",");
    		o.println("\n"+st.countTokens ());
    		while (st.hasMoreElements ()){
    			o.print(
    				st.nextToken ()+";"
    			);
    		}
    //4
    //a; b; c; d;

    http://ideone.com/zh0paB
    Очередной сюжет из серии JavaGovno.

    3.14159265, 05 Ноября 2012

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