if (ans == '1 ')// Метод простих ітерацій
{
s = 0;
do
{
k = 0;
for (int i = 0; i
{
X [i] = B [i] * (-1);
for (int j = 0; j
{X [i] = X [i] + (double) A [i] [j] * Z [j];}
if (A [i] [i]! = 0)
{
if (fabs ((double) X [i]/A [i] [i])> = 0.0001) k = 1;// перевірка на збіжність
X [i] = Z [i] - (double) X [i]/A [i] [i];// якщо сходиться-> k = 0 -> вихід з циклу
}
}
for (int i = 0; i
Z [i] = X [i];
s + +;// + + ітерація
if (s == 100) k = 0;// якщо ітерацій> 100 -> вихід з циклу
}
while (k! = 0);
}
if (ans == '2 ')// Метод Зейделя
{
s = 0;
do
{
k = 0;
for (int i = 0; i
{
X [i] = B [i] * (-1);
for (int j = 0; j
{
if (A [i] [j]! = 0)
X [i] = X [i] + (double) A [i] [j] * Z [j];
}
if (A [i] [i]! = 0)
{
if (fabs ((double) X [i]/A [i] [i])> = 0.001) k = 1;// перевірка на збіжність
X [i] = Z [i] - (double) X [i]/A [i] [i];
Z [i] = X [i];
}
}
s + +;
if (s == 100) k = 0;// кількість ітерацій повинно бути менше 100
}// Інакше цикл припиняється-> система не має рішень
while (k! = 0);
}
cprintf (" n n r А бзсвл н Є В®-зҐ-л ");
cprintf ("% s", " n n n r "В« П Їа В® В¤ В® В«| Г-Еп - | В¬ Е⥠"); p> do
{ch = (char) getch ();}
while (ch! = 13);
}
// --------------------------------------------- ---------------------------------
// функція виводу даних на екран або у файл
// --------------------------------------------- ---------------------------------
void output (double ** & A, double * & B, double * & X, int & n, int & s)
{
char ch_out;
int xx = 5, yy = 5;// Змінні скролінгу
float temp;// Допоміжна змінна
window (1,25,80,25);
textbackground (LIGHTGRAY);
clrscr ();
cprintf ("Alt + X - exit Arrows - scrolling ");
gotoxy (70,1);
textcolor (BLACK);
window (3,3,78,23);
textbackground (LIGHTGRAY);
textcolor (BLACK);
clrscr ();
if (s! = 100)// Якщо система має рішення
{
window (3,4,66,4);
textbackground (LIGHTGRAY);
clrscr ();
cprintf (" r 'Еб⥠¬ га СћҐЕ В©: ");// система рівнянь
window (3,12,66,12);
textbackground (LIGHTGRAY);
clrscr ();
cprintf (" r, ҐЄв В® а ॳҐЕ В© ");// вектор рішень
for (int i = 0; i
{
if (i == 0)
{
window (3,13,30,19);
textbackground (LIGHTGRAY);
clrscr ();
}
if (i == 5)// якщо число рівнянь> 5 -> у другій стовпець
{
window (32,13,70,19);
textbackground (LIGHTGRAY);
clrscr ();
}
cprintf (" n r X (% d) =% .4 f ", i +1, X [i]);// вивід рішення
}
window (3,20,66,20);
textbackground (LIGHTGRAY);
clrscr ();
cprintf (" n n r-ЕбВ« В® ЕвҐа ж В©: % D ", s);// число ітерацій
}// If ...
else cprintf (" n n 'Еб⥠¬-Г Е В¬ ҐҐв ॳҐ-Е В© ");
window (14,22,66,22);
textbackground (LIGHTGRAY);
clrscr ();
cprintf (" n n r" В«п Їа В® В¤ В® В«| Г-Еп - | В¬ Е⥠"); br/>
if (s! = 100)// Якщо система має рішення, тобто число ітерацій <100
{
window (4,5,77,10);// вікно виведення системи рівнянь (неактивне)
textbackground (LIGHTGRAY);// Сірий фон
textcolor (BLACK);
clrscr ();
if (n <= 5)// Якщо система має не більше 5 рівнянь
{
for (int i = 0; i
{
cprintf (" n r "); p> for (int j = 0; j <= n; j + +)
{
if (j == n) cprintf ("=% .2 f", B [i]);// виведення вектора вільних членів
else
{
if (j
{
if (A [i] [j]> 0) cprintf ("+% .2 fX (% d)", A [i] [j], j +1);
else
{
temp = A [i] [j] * (-1);// якщо виводиться негативний коефіцієнт
cprintf (" -% .2 FX (% d) ", temp, j +1);
}
}
}
}
}// For (i
}// If (n <= 5) ...
else// Якщо система має більше 5 рівнянь
{
window (4,6,72,10);// вікно виведення системи рівнянь (активне)
textbackground (BLUE);// Синій фон
textcolor (WHITE);
do
{
clrscr ();
for (int i = xx-5; i
{
cprintf (" n r "); p> for (int j ...