1. Си / Говнокод #8124

    +146

    1. 1
    *((Point *)((Node *) result->data)->data) = *p;

    Вот это Point *, которая в void * хранится, в списке, в котором другой список хранится, в доме, который построил Джек.

    byss, 08 Октября 2011

    Комментарии (69)
  2. C++ / Говнокод #8123

    +160

    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
    #include <iostream>
     
    int main()
    {
    int a[4] = {1,2,3,4}; 
    int (&b)[4] = a; 
    int c[4] = {5,6,7,8}; 
    a=c; 
    std::cout<<b[0];
    }
    
    prog.cpp: In function ‘int main()’:
    prog.cpp:8: error: invalid array assignment

    Да, похоже С++ не настолько высокоуровневый, чтобы поддерживать такое понятие как присваивание массивов.

    http://www.gamedev.ru/flame/forum/?id=153265&page=2#m20

    TarasB, 08 Октября 2011

    Комментарии (63)
  3. SQL / Говнокод #8122

    −107

    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
    SELECT SUBSTR(exp, 1, 20) "expression", (CASE WHEN SUBSTR(exp, 6, 1) = '+' THEN (CASE WHEN SUBSTR(exp, 3, 1) = '+' THEN TO_NUMBER(SUBSTR(exp, 1, 2))
     + TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE WHEN SUBSTR(exp, 3, 1) = '-' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) - TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE 
    WHEN SUBSTR(exp, 3, 1) = '*' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) * TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE WHEN SUBSTR(exp, 3, 1) = '/' THEN 
    TO_NUMBER(SUBSTR(exp, 1, 2)) / TO_NUMBER(SUBSTR(exp, 4, 2)) END END END END) + TO_NUMBER(SUBSTR(exp, 7, 2)) ELSE CASE WHEN SUBSTR(exp, 6, 1) = '-' 
    THEN (CASE WHEN SUBSTR(exp, 3, 1) = '+' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) + TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE WHEN SUBSTR(exp, 3, 1) = '-' THEN 
    TO_NUMBER(SUBSTR(exp, 1, 2)) - TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE WHEN SUBSTR(exp, 3, 1) = '*' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) * 
    TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE WHEN SUBSTR(exp, 3, 1) = '/' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) / TO_NUMBER(SUBSTR(exp, 4, 2)) END END END END) 
    - TO_NUMBER(SUBSTR(exp, 7, 2)) ELSE CASE WHEN SUBSTR(exp, 6, 1) = '*' THEN (CASE WHEN SUBSTR(exp, 3, 1) = '+' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) + 
    TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE WHEN SUBSTR(exp, 3, 1) = '-' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) - TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE WHEN 
    SUBSTR(exp, 3, 1) = '*' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) * TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE WHEN SUBSTR(exp, 3, 1) = '/' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) / 
    TO_NUMBER(SUBSTR(exp, 4, 2)) END END END END) * TO_NUMBER(SUBSTR(exp, 7, 2)) ELSE CASE WHEN SUBSTR(exp, 6, 1) = '/' THEN (CASE WHEN SUBSTR(exp, 3, 1) = '+' THEN 
    TO_NUMBER(SUBSTR(exp, 1, 2)) + TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE WHEN SUBSTR(exp, 3, 1) = '-' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) - TO_NUMBER(SUBSTR(exp, 4, 2)) 
    ELSE CASE WHEN SUBSTR(exp, 3, 1) = '*' THEN TO_NUMBER(SUBSTR(exp, 1, 2)) * TO_NUMBER(SUBSTR(exp, 4, 2)) ELSE CASE WHEN SUBSTR(exp, 3, 1) = '/' THEN 
    TO_NUMBER(SUBSTR(exp, 1, 2)) / TO_NUMBER(SUBSTR(exp, 4, 2)) END END END END) / TO_NUMBER(SUBSTR(exp, 7, 2)) END END END END) "result" FROM lab3_2;

    Сидел я на прошлой лабе и делал значит задания по Oracle и вот последнее задание было таким:

    "Дана таблица с единственной колонкой (строкового типа) с выражениями вида:’xx*xx*xx’ где xx – символы цифр 0..9, * - один из символов математических операций: *+-/ Например, таким выражениями являются ‘01*23+34’ ‘32+13-12’ и т.д. Требуется создать таблицу и заполнить ее строками содержащими такие выражения (не менее 5 строк), составить оператор SELECT который используя данные из этой таблицы выведет строки вида ‘<исходное выражение>=<вычисленный результат>’. Задание выполнить без учета приоритетности операций."

    Вооружившись Notepad++ я составил вот такое вот запросище, которое работает между прочим :) Для повторения эксперимента нужно создать таблицу lab3_2 с полем exp строкового типа, ну и внести в нее пару каких-нибудь выражений.

    10a10b1s, 08 Октября 2011

    Комментарии (20)
  4. Python / Говнокод #8121

    −92

    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
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    def foobar():
        sev=raw_input("Chislo dvoichnoy sistemy schisleniya: ") # Вводим число с клавиатуры
        lsev=list(sev)
        n=len(lsev)-1
        dec=0
        result=""
        f=[]
        i=1
        if sev <= '000000000000000000000000000000000000000000000000000000000000000000': # Проверка если много нулей
            print "Chislo vosmerichnoy sistemy schisleniya: ",0
            return
        if sev.isdigit()== 0:
            print "vi vveli nivirnyu stroku!" #Возвращает ошибку, если хотя бы 1 символ - не число
            return
        if sev.isalpha() == 1: #Проверка на ввод буквенных значений (True=1) значит есть буква
            print "vi vveli bukvu, a doljni chisla!"
            return
        if sev == '':
            print "vi nichego ne vveli" #Проверка на пустое поле ввода
            return
        else:
            while n>=0:
                if int(lsev[-n-1]) in range(2): # Проверяем, является ли число двоичным
                    dec+=int(lsev[-n-1])*2**(n) # Переводим из двоичной в десятичную
                    n-=1
                else: # Сообщаем об ошибке ввода и прекращаем выполнение
                    print "Vvedennoye chislo ne yavlyayetsya dvoichnym!"
                    return
            while dec>0: # Цикл, создающий список из остатков деления на 8 (перевод в восьмеричную систему)
                f.append(dec%8)
                dec=dec/8
                i+=1
                z=len(f)-1
            while z>=0: # Созданием из списка и печатаем восьмеричное число
                result+=unicode(f[z])
                z-=1
            print "Chislo vosmerichnoy sistemy scisleniya:",result
    foobar()

    Win95, 08 Октября 2011

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

    +157

    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
    #include <iostream>
    #include <boost/mpl/pair.hpp>
    #include <boost/mpl/key_type.hpp>
    #include <boost/mpl/map.hpp>
    #include <boost/mpl/string.hpp>
    #include <boost/mpl/for_each.hpp>
    using namespace boost;
    typedef mpl::map<
       mpl::pair<mpl::string<'H','e','l','l','o'>, mpl::int_<0>>,
       mpl::pair<mpl::string<',',' '>, mpl::int_<1>>,
       mpl::pair<mpl::string<'W','o','r','l','d','!'>, mpl::int_<2>>
    > map;
    struct do_some {
       template<typename T>
       void operator()(T) const {
          std::cout << mpl::c_str<T>::value;
       }
    };
    int main() {
       mpl::for_each<
          map,
          typename mpl::lambda<
             mpl::key_type<map, mpl::_1>
          >
       >(do_some());
    }

    еще один хеловорд.

    niXman, 08 Октября 2011

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

    +154

    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
    class Allocator
    {
    public:
      
      virtual void *Alloc (size_t) = 0;
      virtual void Dealloc (void *) = 0;
    
      struct Allocation
      {
        Allocator *m_pAllocator[1];
    
        static void Dealloc (void *ptr)
        {
          if (ptr)
            ((Allocator **)ptr)[-1]->Dealloc (((Allocator **)ptr)-1);
        }
      };
    };
    
    class UsesAllocator
    {
    public:
      void *operator new (size_t aSize,Allocator &aAllocator)
      {
        Allocator::Allocation *pResult =
          (Allocator::Allocation *)
          aAllocator.Alloc (aSize+sizeof (Allocator::Allocation));
        if (!pResult) throw std::bad_alloc ();
        pResult->m_pAllocator[0] = &aAllocator;
        return pResult->m_pAllocator+1;
      }
    
      void *operator new [] (size_t aSize,Allocator &aAllocator)
      {
        Allocator::Allocation *pResult =
          (Allocator::Allocation *)
          aAllocator.Alloc (aSize+sizeof (Allocator::Allocation));
        if (!pResult) throw std::bad_alloc ();
        pResult->m_pAllocator[0] = &aAllocator;
        return pResult->m_pAllocator+1;
      }
    
      void operator delete (void *ptr,Allocator &)
      { Allocator::Allocation::Dealloc (ptr); }
    
      void operator delete (void *ptr)
      { Allocator::Allocation::Dealloc (ptr); }
    
      void operator delete [] (void *ptr,Allocator &)
      { Allocator::Allocation::Dealloc (ptr); }
    
      void operator delete [] (void *ptr)
      { Allocator::Allocation::Dealloc (ptr); }
    };
    ...
    
    class MyClass: /*virtual*/ public UsesAllocator
    {
    public:
      ...
    };
    ...
    MyClass *PROFIT = new (allocatorOfOurInterest) MyClass (...);

    http://www.gamedev.ru/flame/forum/?id=153274

    >Посоны! Оказывается, оператор new можно перегружать!

    ohlol, 08 Октября 2011

    Комментарии (51)
  7. JavaScript / Говнокод #8118

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function checksubmit(obj){ 
    ds = obj.message.value; 
    while (ds.indexOf("[Результат выстрела.]") > -1) { 
    variant=7; 
    priz=Math.round(Math.random() * variant); 
       ds = ds.replace('[Результат выстрела.]',' [img]http://mystalker.at.ua/cub/cub'+priz+'.gif[/img] '); 
    } obj.message.value = ds; }

    Тут больше доставляет описание чем код )))
    Особенно "давно покрылся славой" и "Учесть,что скрипту более 4-х лет и он заслуживает уважения".
    http://u.to/a6k6AQ

    OJA, 08 Октября 2011

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    preg_match("#<span id='data' (.*?)</span>#is", $data, $ldc_pre1);
    $ldc_pre2 = $ldc_pre1[0];
    preg_match("#text=\"(.*?)\">#is", $ldc_pre2, $ldc_pre3);
    $ldc_final = $ldc_pre3[1];

    *no comments*

    OJA, 08 Октября 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $day = date("d"); 
    $month = date("m"); 
    $year = date("Y");
    $hour = date("H")+2;
    if($hour=='24'){$hour='0';}
    if($hour=='25'){$hour='1';}
    $minute = date("i");
    
    $data = ''.$day.'.'.$month.'.'.$year.', '.$hour.':'.$minute.'';

    Красота!

    OJA, 08 Октября 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    $url = $_SERVER['HTTP_REFERER'];	
    	
    $pos = strrpos($url, 'id');
    $id = substr($url, $pos + 2);

    Получаем id человека)))

    OJA, 08 Октября 2011

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