r />
Висновок на екран і в файл.
3. Особливості програмної реалізації алгоритму
. 1 Основні класи
my_matrix//базовий клас матриця довільного розміру
{: ** a;//осередку ... массівi,//кількість стрічок
j;//число столбцов_matrix () {}//конструктор
~ my_matrix () {}//деструкторmy_matrix_set (int ii, int jj) {}//установка розмірів матриці i на j
double get_ (int i5, int j5) {}//возращает значення a [i5] [j5] ячейкіmatrix_random (double aa=1., double bb=5.) ??{}//рандомswap_line ( int k1, int k2) {}//змінює рядки k1 і k2 шуканої матриці
//додавання рядків. рядок i помножена на k додається до рядку i2
void line_sum_i_to_i2 (int i_, int i2, double k) {}
//множення рядка a [pos] [] на число
void line_to_num (int pos, double k) {}: my_matrix * operator + (my_matrix aa, my_matrix bb); my_matrix * operator - (my_matrix aa, my_matrix bb); my_matrix * operator * (my_matrix aa, my_matrix bb); my_matrix * operator * (my_matrix aa, my_matrix * bb);
};
print//базовий клас друку
{
public: see_mat_console (my_matrix * b)//виведення матриці на консольsee_mat_console (double ** a, int nn)//виведення матриці на консоль
//// висновок СЛАР (A | f) на консоль
//висновок коренів (X) на консоль
//висновок залежно від параметра fl. == 1 то висновок СЛАР == 2 друк відповідей на екран у рядок == 3 друк відповідей на екран у стовпець
void look_all_ (double ** a, my_matrix * x, my_matrix * b, int fl)
//виведення матриці на консоль == 1 красивий висновок з a [] []
Kof == 2 висновок без a [] [] look_all_ (my_matrix * m, int kof=1/* 1 печатку із a [] [], 2 без * /) look_all_ (double ** a, int n2)
//висновок квадратної матриці a [n2] [n2] перегляд з a [] []
void look_all_ (double ** a1, int i_n2, int j_n3)
//виведення матриці a [i_n2] [j_n3] перегляд з a [] []
void look_all_file (char * fname, double ** a, int n2, char * mode _/* app або out * /)
//друк квадратної матриці у файл з ім'ям fname. визначена дозапис або перезапис залежно від параметра mode _
void look_all_file (char * fname, double ** a, int i_n2, int j_n3, char * mode _/* app або out * /, int kof=1/* 1 печатку із a [] [ ] 2печать тільки значень * /)
//друкування матриці у файл з ім'ям fname. визначена дозапис або перезапис залежно від параметра mode _
void look_pogr (double ** a, int n3, char * mark/** /)
//друкування матриці «вектора» залежно від mark == lin друк в лінію == ver друк в стовпець
void look_pogr_file (char * fname, double ** a, int n3, char * mark, char * type_record/* app out * /)//друк похибки в файл
};
square_matrix: public my_matrix, print//клас спадкоємець
{: int size;// розмірність матриці: square_matrix (): my_matrix () {};//конструкторmy_matrix_set (int y)
//зведення матриці до трикутного вигляду методом Гаусса з вибіркою провідного елементу
//і підрахунок detdouble gauss_2 ()
//розрахунок коренів СЛАР
//зворотний прохід gauss_ (matrix * f)
void result_ (my_matrix * b, my_matrix * x)
//зворотний прохід. Записує відповіді в матрицю Х ...
bool good (my_matrix * b)
/* т.к. якщо система не була спільної то після проходу
методом гауса отримаємо a [n] [n] == 0 в той час як b [n] елемент в стовпці вільних членів дорівнює ненулю,
т.е. a [n] [n] * X == b [n] lt;= gt; 0 * X=какоето число.
т.е. для совмемстності системи досить перевірить не
чи є нулем a [n] [n] при b [n] не дорівнює нулю */
void put_mat_file (my_matrix * b, char * fname, char * mode_, char * text/*, char * met * /) put_mat_ans_file (my_matrix * b, char * fname, char * mode_, char * text, char * met)
};
3.2 Допоміжні функції
chek_cin_int ()//посимвольного перевірка введення
Виводить на екран повідомлення з проханням введення розмірності СЛАР поки не буде введено ціле число....