Практикум по курсу "Алгоритмизация и программирование". Часть 1. Андрианова А.А - 90 стр.

UptoLike

Console.WriteLine("Запрошено большое количество памяти.
Попробуйте ввести меньший размер.");
return;
}
int x, y;
Console.WriteLine("Введите элементы матрицы:");
for (x = 0; x < n; x++)
for (y = 0; y < n; y++)
float.TryParse(Console.ReadLine(), out a[x, y]);
float z = 1; // знак определителя
for(int k = 0; k < n - 1; k++)
{
float d = a[k, k]; // элемент главной диагонали
// если на главной диагонали стоит 0, то находим
// ненулевой элемент ниже в том же столбце
if(d == 0)
{
x = k + 1;
int f = 0;
while(x < n && f == 0)
if(a[x, k] == 0)
x++;
else
f=1;
// если ненулевой элемент найден,
// меняем строки местами
if(f == 1)
{
z = -z;
for(y = k; y < n; y++)
{
float t = a[k, y];
a[k, y] = a[x, y];
a[x, y] = t;
}
k--;
}
else break;
}
else
{
// обнуляем все элементы,
// стоящие ниже в столбце
for(x = k + 1; x < n; x++)
{
float c = a[x, k] / d;
for(y = k; y < n; y++)
a[x, y] = a[x, y] - c * a[k, y];
}
}
}
Console.WriteLine("Матрица после приведения
к треугольному виду:");
for (x = 0; x < n; x++)
{
   Console.WriteLine("Запрошено большое количество памяти.
                 Попробуйте ввести меньший размер.");
   return;
}
int x, y;
Console.WriteLine("Введите элементы матрицы:");
for (x = 0; x < n; x++)
    for (y = 0; y < n; y++)
        float.TryParse(Console.ReadLine(), out a[x, y]);
float z = 1;            // знак определителя
for(int k = 0; k < n - 1; k++)
{
            float d = a[k, k];      // элемент главной диагонали
            // если на главной диагонали стоит 0, то находим
            // ненулевой элемент ниже в том же столбце
            if(d == 0)
            {
                  x = k + 1;
                  int f = 0;
                  while(x < n && f == 0)
                        if(a[x, k] == 0)
                              x++;
                        else
                              f=1;
                  // если ненулевой элемент найден,
                  // меняем строки местами
                  if(f == 1)
                  {
                        z = -z;
                        for(y = k; y < n; y++)
                        {
                              float t = a[k, y];
                              a[k, y] = a[x, y];
                              a[x, y] = t;
                        }
                        k--;
                  }
                  else break;
            }
            else
            {
                  // обнуляем все элементы,
                  // стоящие ниже в столбце
                  for(x = k + 1; x < n; x++)
                  {
                        float c = a[x, k] / d;
                        for(y = k; y < n; y++)
                              a[x, y] = a[x, y] - c * a[k, y];
                  }
            }
}
Console.WriteLine("Матрица после приведения
                              к треугольному виду:");
for (x = 0; x < n; x++)
{