Якщо у файлі крім цифр будуть містити літери і символи, то з'явитися повідомлення про те, що ні правильне вміст файлу і програма завершиться. У файлі має міститися необхідну кількість цифр для заповнення масиву інакше з'явиться повідомлення, що матриця не заповнена до кінця. Наприклад: якщо ввели 3 рядки то 3 * 4 = 12 цифр має міститися у файлі. Цифри у файлі повинні розділятися пропуском або починатися з нового рядка. p align="justify"> Після того як система заповнена вона виводиться на екран, є натиснути будь-яку кнопку з'являється запит про те чи показувати детально зміни системи в ході підрахунків. При натисканні на кнопку Y програма буде виводити систему щоразу після її зміни це допомагає зрозуміти як програма вирішує систему. Після кожного виведення системи потрібно натискати будь-яку клавішу, щоб з'явилося наступні зміна. Якщо відповісти на питання натисканням кнопки N то програма відразу ж виведе результат підрахунків. Відповісти на питання можна тільки натисненням Y або N інакше запит повториться. p align="justify"> По закінченню програми після підрахунків виводяться значення всіх невідомих, тобто єдино рішення системи. Якщо систему неможливо вирішити, то виводитися повідомлення про те, що система не має рішення або має безліч рішень. br/>
. Інструкція програміста
struct SLU - глобальна структура яка зберігати в собі всю систему ** a, а також її розмір r.
void vivod_matrici (struct SLU * S) функція виводить матрицю на екран, як параметр їй передається структуру для виведення її.
void vihod (SLU * S) функція виходу з програми, викликається коли потрібно завершити програму. Як параметр їй передається структуру в якій звільняється пам'ять виділена для системи ** a, закриває всі відкриті файли, чистить екран, виходить. p align="justify"> int metod_gaussa (struct SLU * S, int v) функція вирішує систему методом Гаусса. Як параметр їй передається структуру і мінлива, якщо значення зміною дорівнює 1 то функція буде виводити детально підрахунки обчислень. Функція повертає значення mnogo, net, single. = (Float *) malloc (S-> r * sizeof (float)); виділяємо пам'ять під масив * c, в нього будуть скопійовані вийшли в результаті підрахунку невідомі з метою подальших перестановок таких же як і зі стовпцями. = (int *) malloc (S-> r * sizeof (int)); виділяємо пам'ять під масив * b, його заповнюємо індексами які будуть переставлятися також як і стовпці, з метою того що б у подальшим переставити результати обчислень також як і стовпці.
Далі знаходимо найбільший по модулю елемент в підматриці. Перевіряємо на даному етапі чи має система рішення або безліч рішень, якщо не має або має безліч рішень то звільняється пам'ять масивів free (b); free (c); і функція повертає значення net або mnogo. Коли знайшли максимальний елемент переставляємо стовпці і рядки так що б поміняти місцями поточний і...