Kronos0041 / OOP_PS22-master

MyRepository
0 stars 0 forks source link

Замечания по программе InvertMatrix #3

Open alexey-malov opened 9 years ago

alexey-malov commented 9 years ago

Что-то мне подсказывает, что тест, вывод которого представлен ниже, выглядит крайне подозрительно

D:\...hing\2015\students\puryshev\OOP_PS22-master\lab1_zad3_var6\bin_>test.bat
Wrong format of the data in txt file!
Wrong format of the data in txt file!
Error: Invalid number of parameters!
Wrong format of the data in txt file!
Wrong format of the data in txt file!
Wrong format of the data in txt file!
FC: не удается открыть OUTPUT.TXT; файл либо папка не существует.

Program testing succeeded :-)

Да и после вызова утилиты fc следует проверять errorlevel

alexey-malov commented 9 years ago
const int N = 3; //dimension of the matrix (3 * 3)

Однобуквенные имена глобальных констант - зло

alexey-malov commented 9 years ago
void Multiply(float Matrix1[N][N], float Matrix2[N][N], float ResultMatrix[N][N])

входные массивы должны приниматься как константы

alexey-malov commented 9 years ago

не соблюдены соглашения об именовании переменных. внимательно читайте требования

alexey-malov commented 9 years ago
void ReadingFromFile(ifstream &File, float Matrix[N][N])
{
    int i, j;
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < N; j++)
        {
                if (!(File >> Matrix[i][j]))
                {
                    cout << "this is not matrix (3*3)!" << endl;
                    File.close();
                    exit(-1);
                }
        }
    }
}

exit делает эту функцию бесполезной для повторного использования обработка ошибок таким образом - зло хуже может быть только игнорирование ошибок

alexey-malov commented 9 years ago
void ShowMatrix(float Matrix[N][N], ofstream &fOut)
{
    int i, j;
    for (i = 0; i < N; i++)
    {
        fOut << "\n\n";
        printf("\n\n");
        for (j = 0; j < N; j++)
        {
            fOut << std::fixed << std::setprecision(3) << "    " << Matrix[i][j];
            printf("|%6.3f|", Matrix[i][j]);
        }
    }
}

переменные цикла следует объявлять внутри for ()

совмещать потоки c++ и сишный printf - плохой стиль

alexey-malov commented 9 years ago
float InverseFunction(float Matrix[N][N], int iRow, int iCol)

Что такое inverse function? для чего префикс i?

alexey-malov commented 9 years ago

Не увидел главного: функции, выполняющей инвертирование матрицы

alexey-malov commented 9 years ago

функция main плохо читаема

alexey-malov commented 9 years ago

зачем system("pause")? в конце программы?

alexey-malov commented 9 years ago

C++-потоки явно можно не закрывать (деструктор это сделает автоматически), если конечно по каким-то причинам закрытие в деструкторе обоснованно не подходит

alexey-malov commented 9 years ago

переменные следует объявлять как можно ближе к месту их первого использования

alexey-malov commented 9 years ago

за исполнение: 0.4 за срок: 0,6