Править код./Помочь дописать - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет,помогите подправить код и немного дописать. В коде в коментах всплывает условие.
using System;
using System.Text;
 
namespace ConsoleApplication43
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Матричный метод решения систем";
            double[,] a = new double[3, 3] { { 1, 4, 7 }, { 9, 8, 12 }, { 6, 1, 0 } };
            double[,] S = new double[3, 3];
            Console.WriteLine("Имеем матрицу 3х3");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < i; j++)
                    Console.Write("    {0}", a[i, j]);
            }
            //определитель матрици
            double d = a[0, 0] * a[1, 1] * a[2, 2] - a[0, 0] * a[1, 2] * a[2, 1] - a[0, 1] * a[1, 0] * a[2, 2] + a[0, 1] * a[1, 2] * a[2, 0] + a[0, 2] * a[1, 0] * a[2, 1] - a[0, 2] * a[1, 1] * a[2, 0];
            Console.WriteLine("\nОпределитель матрицы={0}", d);
            Console.Write("----------------\n");
            if (d == 0)
            {
                Console.WriteLine("Матрица является выражденной.");
            }
            //Транспонирование матрици
            double tmp;
            for (int i = 1; i < 3; i++)
            {
                for (int j = 0; j < i; j++)
                {
                    tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;
                }
            } 
            //Тут хотелось бы вывести транспонированную матрицу,да бы убедиться то , что приведена верно.
 
            //Формирование союзной матрицы(Формула взята с учебника)
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    S[0, 0] = a[1, 1] * a[2, 2] - a[1, 2] * a[2, 1]; S[0, 1] = a[2, 0] * a[2, 1] - a[0, 1] * a[2, 2];
                    S[0, 2] = a[1, 0] * a[2, 1] - a[1, 1] * a[2, 0];
 
                    S[1, 0] = a[2, 1] * a[0, 2] - a[0, 1] * a[2, 2]; S[1, 1] = a[0, 0] * a[2, 2] - a[0, 2] * a[2, 0];
                    S[1, 2] = a[0, 1] * a[2, 0] - a[0, 0] * a[2, 1];
 
                    S[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2]; S[2, 1] = a[1, 0] * a[0, 2] - a[0, 0] * a[1, 2];
                    S[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
            /*Итак получаем: a[i,j] - матрица 3x3;
             * d - определитель матрицы;
             * tmp - транспонированная матрица;
             * S[i,j] - союзная матрица;*/
 
            //Формируем обратную матрицу.
 
            Console.ReadKey();
 
        }
    }
}
До определителя все впорядки:
using System;
using System.Text;
 
namespace ConsoleApplication43
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Матричный метод решения систем";
            double[,] a = new double[3, 3] { { 1, 4, 7 }, { 9, 8, 12 }, { 6, 1, 0 } };
            double[,] S = new double[3, 3];
            Console.WriteLine("Имеем матрицу 3х3");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 3; j++)
                    Console.Write("    {0}", a[i, j]);
            }
            //определитель матрици
            double d = a[0, 0] * a[1, 1] * a[2, 2] - a[0, 0] * a[1, 2] * a[2, 1] - a[0, 1] * a[1, 0] * a[2, 2] + a[0, 1] * a[1, 2] * a[2, 0] + a[0, 2] * a[1, 0] * a[2, 1] - a[0, 2] * a[1, 1] * a[2, 0];
            Console.WriteLine("\nОпределитель матрицы={0}", d);
            Console.Write("----------------\n");
            if (d == 0)
            {
                Console.WriteLine("Матрица является выражденной.");
            }
            //Транспонирование матрици
            double tmp;
            for (int i = 1; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;  
                }
            } 
            //Тут хотелось бы вывести транспонированную матрицу,да бы убедиться то , что приведена верно.
 
            //Формирование союзной матрицы(Формула взята с учебника)
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    S[0, 0] = a[1, 1] * a[2, 2] - a[1, 2] * a[2, 1]; S[0, 1] = a[2, 0] * a[2, 1] - a[0, 1] * a[2, 2];
                    S[0, 2] = a[1, 0] * a[2, 1] - a[1, 1] * a[2, 0];
 
                    S[1, 0] = a[2, 1] * a[0, 2] - a[0, 1] * a[2, 2]; S[1, 1] = a[0, 0] * a[2, 2] - a[0, 2] * a[2, 0];
                    S[1, 2] = a[0, 1] * a[2, 0] - a[0, 0] * a[2, 1];
 
                    S[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2]; S[2, 1] = a[1, 0] * a[0, 2] - a[0, 0] * a[1, 2];
                    S[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
            /*Итак получаем: a[i,j] - матрица 3x3;
             * d - определитель матрицы;
             * tmp - транспонированная матрица;
             * S[i,j] - союзная матрица;*/
 
            //Формируем обратную матрицу.
 
            Console.ReadKey();
 
        }
    }
}
1) Ошибка в 37 строке.
using System;
using System.Text;
 
namespace ConsoleApplication43
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Матричный метод решения систем";
            double[,] a = new double[3, 3] { { 1, 4, 7 }, { 9, 8, 12 }, { 6, 1, 0 } };
            double[,] S = new double[3, 3];
            Console.WriteLine("Имеем матрицу 3х3");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 3; j++)
                    Console.Write("    {0}", a[i, j]);
            }
            //определитель матрици
            double d = a[0, 0] * a[1, 1] * a[2, 2] - a[0, 0] * a[1, 2] * a[2, 1] - a[0, 1] * a[1, 0] * a[2, 2] + a[0, 1] * a[1, 2] * a[2, 0] + a[0, 2] * a[1, 0] * a[2, 1] - a[0, 2] * a[1, 1] * a[2, 0];
            Console.WriteLine("\nОпределитель матрицы={0}", d);
            Console.Write("----------------\n");
            if (d == 0)
            {
                Console.WriteLine("Матрица является выражденной.");
            }
            //Транспонирование матрици
            double tmp;
            for (int i = 1; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;  
                }
            }
            Console.WriteLine("{0}", tmp);
            //Тут хотелось бы вывести транспонированную матрицу,да бы убедиться то , что приведена верно.
 
            //Формирование союзной матрицы(Формула взята с учебника)
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    S[0, 0] = a[1, 1] * a[2, 2] - a[1, 2] * a[2, 1]; S[0, 1] = a[2, 0] * a[2, 1] - a[0, 1] * a[2, 2];
                    S[0, 2] = a[1, 0] * a[2, 1] - a[1, 1] * a[2, 0];
 
                    S[1, 0] = a[2, 1] * a[0, 2] - a[0, 1] * a[2, 2]; S[1, 1] = a[0, 0] * a[2, 2] - a[0, 2] * a[2, 0];
                    S[1, 2] = a[0, 1] * a[2, 0] - a[0, 0] * a[2, 1];
 
                    S[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2]; S[2, 1] = a[1, 0] * a[0, 2] - a[0, 0] * a[1, 2];
                    S[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
            /*Итак получаем: a[i,j] - матрица 3x3;
             * d - определитель матрицы;
             * tmp - транспонированная матрица;
             * S[i,j] - союзная матрица;*/
 
            //Формируем обратную матрицу.
 
            Console.ReadKey();
 
        }
    }
}

Решение задачи: «Править код./Помочь дописать»

textual
Листинг программы
using System;
 
namespace ConsoleApplication46
{
    class Program
    {
        static void Main(string[] args)
        {
            double[,] a = new double[3, 3] { { 2, 1, 1 }, { 1, -1, 0 }, { 3, -1, 2 } };
            Console.WriteLine("Имеем матрицу 3х3");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 3; j++)
                    Console.Write("    {0}", a[i, j]);
            }
            //определитель матрици
            double dat = a[0, 0] * a[1, 1] * a[2, 2] - a[0, 0] * a[1, 2] * a[2, 1] - a[0, 1] * a[1, 0] * a[2, 2] + a[0, 1] * a[1, 2] * a[2, 0] + a[0, 2] * a[1, 0] * a[2, 1] - a[0, 2] * a[1, 1] * a[2, 0];
            Console.WriteLine("\nОпределитель матрицы={0}", dat);
            Console.Write("----------------\n");
            if (dat == 0)
            {
                Console.WriteLine("Матрица является выражденной.");
                return;
            }
            double[,] mT = new double[3, 3];
            // Транспонируем матрицу
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    mT[i, j] = a[j, i];
                }
            }
 
            // Вывод результата
            Console.WriteLine("Транспонированая матрица:\n");
 
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(" {0}", mT[i, j]);
                }
                Console.WriteLine();
            }
            double[,] Y = new double[3, 3];
            //Найдем союзную матрицу.
            //Формирование союзной матрицы
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
 
                    Y[0, 0] = a[1, 0] * a[2, 2] - a[1, 2] * a[2, 1];
 
                    Y[0, 1] = a[1, 2] * a[2, 0] - a[1, 0] * a[2, 2];
 
                    Y[0, 2] = a[1, 1] * a[2, 1] - a[2, 0] * a[1, 1];
 
                    Y[1, 0] = a[0, 2] * a[2, 1] - a[0, 1] * a[2, 2];
 
                    Y[1, 1] = a[0, 0] * a[2, 2] - a[2, 0] * a[0, 2];
 
                    Y[1, 2] = a[2, 0] * a[0, 1] - a[0, 0] * a[2, 1];
 
                    Y[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2];
 
                    Y[2, 1] = a[0, 2] * a[1, 0] - a[0, 0] * a[1, 2];
 
                    Y[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
            Console.WriteLine("Союзная матрица");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(" {0}", Y[i, j]);
                }
            }
            //обратная матрица
            double[,] obr = new double[3, 3];
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Y[i, j] = Y[i, j] / dat;
                }
            }
            Console.WriteLine("\nОбратная матрица");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(" {0:f1}", Y[i, j]);
                }
            }
 
            Console.ReadKey();
 
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5