1. C++ / Говнокод #17276

    +68

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // Возвращает квадрат натурального числа
    // 4^2 = 1 + 3 + 5 + 7
    int sqr(int n) {
    	int result = 0;
    	for(int i = 1, a = 1; i <= n; i++, a = a + 2) result += a;
    	return result;
    }

    Нестандартные решения - залог успешности проекта.

    Gouvere, 08 Декабря 2014

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

    +49

    1. 1
    //без комментариев

    pewppy, 07 Декабря 2014

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

    +49

    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
    #include <stdio.h>
    #include <math.h>
    #include "determinant.h"
    
    double det(double **matrix, int size)
    {
        if(size==2)
        {
            return matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0];
        }
        else if(size==1)
            {
                return matrix[0][0];
            }
        int result = 0;
        for(int j=0; j<size; j++)
        {
            if(matrix[0][j]!=0)
            {
                result+=matrix[0][j]*(unsigned)pow(-1.f,(unsigned)j)*det(minor(matrix, size, 0, j), size-1);
            }
        }
        return result;
    }
    
    double **minor(double **matrix, int size, int str, int col)
    {
        double **minor=new double *[size-1];
        int m_str = 0;
        int m_col;
        for(int i=0; i<size; i++)
        {
            if(i!=str)
            {
                m_col = 0;
                minor[m_str]=new double[size-1];
                for(int j=0; j<size; j++)
                {
                    if(j!=col)
                    {
                        minor[m_str][m_col]=matrix[i][j];
                        m_col++;
                    }
                }
                m_col++;
            }
        }
        return minor;
    }

    Считаю определитель рекурсией, во время теста в этом сорце вылетает ошибка EXC_BAD_ACCESS(code=1, access=0x8),
    после одного прохода рекурсии, с чем это связано? Помогите разобраться :)

    aesc_smirnov, 07 Декабря 2014

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

    +53

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    class ParseError : public std::exception{
        string s;
        explicit ParseError(const std::string& s) : s(s) {}
        const char* what() const throw() { return s.c_str(); }
      };

    Это мне нужно в своём исключении-потомке обязательно перегрузить what и добавить свою строку для хранения, чтобы данные, переданные в конструктор s по указателю обязательно выжили после размотки стека.

    LispGovno, 06 Декабря 2014

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

    +53

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    //
    // 'compare_keywords()' - Compare two keywords...
    //
    
    extern "C" {
      int
      compare_keywords(const void *a,
                       const void *b) {
        return (strcmp(*((const char **)a), *((const char **)b)));
      }
    }

    govnokod3r, 04 Декабря 2014

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

    +53

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    void MainWindow::on_actionHelp_triggered()
    {
        bool helpNoWritten = 0;
        QDir d(QCoreApplication::applicationDirPath()+QDir::separator()+"help");
        d.makeAbsolute();
        if (d.exists() && d.entryList(QDir::Files).size())
            helpNoWritten = !QDesktopServices::openUrl(QUrl::fromUserInput(QFileInfo(d.entryList(QDir::Files).at(0)).absoluteFilePath()));
        else
            helpNoWritten++;
        if (helpNoWritten)
            QMessageBox::warning(0,"Warning",QString::fromUtf8("Похоже документацию так никто и не написал... можете почитать исходники.\nЕсли напишете положите в папку help рядом с программой"), QString::fromUtf8("Okay..."));
    }

    Код вроде бы хороший, читается не очень да не суть... дело тут не в коде.

    kin63camapa, 03 Декабря 2014

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

    +58

    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
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    struct t_point {
        int i,j;
    };
    #define stack_len 50000000
    long int head, tail;
    t_point *steck;
    
    // long int take_border( short int*arr, int h1, int w1, int deep ){
    long int take_border( short int*arr, int h1, int w1 ){
        long int k=0;
        //int i,j,m,n,ii,jj;
        int i,j,m,ii,n,jj;
        steck = (t_point*) malloc(tail*sizeof(t_point));
        if(! steck ){
            //ui->teDebug->setText("out of Memory");
            return 0;
        }
        {
           QFile file("buffer.dat");
           file.open(QIODevice::ReadOnly);
           unsigned int size = sizeof(t_point)* tail;
           QDataStream in(&file);   // we will serialize the data into the file
           in.readRawData((char*) steck, size );
        }
    // <...>
    }

    Это чувство когда сишник взялся писать на Qt.

    overloop, 02 Декабря 2014

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

    +51

    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
    PVOID ZDbgDoc::getVaByName(PCSTR name)
    {
    	PLIST_ENTRY head = &_dllListHead, entry = head;
    
    	while ((entry = entry->Flink) != head)
    	{
    		ZDll* pDll = static_cast<ZDll*>(entry);
    
    		if (PWSTR ImageName = pDll->_ImageName)
    		{
    			PCSTR sz = name;
    __loop:
    			int c = tolower(*sz++);
    
    			if (!c || c != towlower(*ImageName++))
    			{
    				continue;
    			}
    
    			if (c != '.')
    			{
    				goto __loop;
    			}
    
    			pDll->Parse(this);
    
    			return pDll->getVaByName(sz, this);
    		}
    	}
    
    	return 0;
    }

    zhukas, 29 Ноября 2014

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

    +70

    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
    QString windoliz_path(QString str)
    {
    /*
    функция "виндолизирует" QTшные пути, для передачи в неQTшные части проги
    (в QT-шные, кстати тоже можно, ибо QT вроде бы понимает и те и другие ;)
    если вызвать вне винды ничо страшного, предпроцессор сделает всё за вас
    и функция вернёт ту же строку что и получила. После вызова в виндах не
    помешает сделать .toLocal8Bit()
    //*/
    #ifdef _WIN32                      //если венда
        char s = '\\';                 //символ для замены
        char t = '/';                  //шаблон поиска
        for (int i = str.size();i;i--) //повторить столько раз сколько символов в строке
        {
            if (str[i-1] == t)           //если символ соответствует образцу поиска
            {
                str[i-1] = s;            //меняем на образец замены
            }
        }
    #endif                             //директива отметы условия "если венда"
        return str;
    }

    Этот проект не перестаёт удивлять... апи не смотри, велосипеды пиши. Коммент сохранен авторский.

    kin63camapa, 28 Ноября 2014

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

    +56

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    std::uint8_t octets[4];
    for(int i = 0; i < 4; ++i) {
        if(i != 0 && inp.get() != '.')
            { assert(false && "unexpected symbol"); }
        inp >> octets[i];
    }

    Два вида говна: в коде и в языке.

    Soul_re@ver, 28 Ноября 2014

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