Отчет об отладке

Задание: Преобразовать исходную матрицу A(n,m) так, чтобы последний элемент каждой строки был заменен суммой предыдущих элементов той же строки.

№ п/п

Ошибка

Вид ошибки

Блок программы, в котором обнаружена ошибка

1

error C2660: osnfunction: функция не принимает 3 аргументов

Синтаксическая

Вызов функции:osnfunction(arr, &row, &nomer);

Сама функция:void osnfunction(int **&arr, int *row, int *col, int *nomer)

2

Не выполняется функция обработки вообще

Ошибка при выполнении операции

void osnfunction(int **&arr, int *row, int *col)

{

for (int i=0; i<*row; i++)

{ int S=0;

for (int j=0; j<*col; j++)

if (j-1 == *col)

arr[i][j]=S;

else

S=S+arr[i][j];

}

}

3

Неправильно переданы параметры в функцию, не происходит изменений глобальных переменных

Ошибка при выполнении операции

Сама функция:

void osnfunction(int **arr, int *row, int *col)

Вызов:

osnfunction(arr, &row, &col);

4

Неправильный алгоритм чтения из файла

Неверный алгоритм

int r=0,c=0;

fscanf(F, «%d», &r);

fscanf(F, «%d», &c);

*row = r;

*col = c;

(*arr) = new int *[*row]; // выделение памяти под массив строк

for (int i=0; i<*row; i++)

(*arr)[i]=new int[*col];

for (int i=0; i<*row; i++)

for (int j=0; j<*col; j++)

{

fscanf(F, «%d», &c);

(*arr)[i][j]=c;

}

5

Неправильно было задано условие, которое определяет либо считать сумму, либо изменяет последний элемент матрицы

Семантическая ошибка

for (int i=0; i<*row; i++)

{ int S=0;

for (int j=0; j<*col; j++)

if (j+1 == *col)

arr[i][j]=S;

else

S=S+arr[i][j];

6

Неэффективно выполняется алгоритм очистки

Неверный алгоритм

void clear (int **&arr, int *row, int *col)

{

for (int i = 0; i < *row; i++)

for (int j = 0; j < *col; j++)

{

delete [] arr[i][j]; // удаление строк

}

delete [] arr; // удаление массива указателей на строки

system(«pause»);

}




Предыдущий:

Следующий: