コード例 #1
0
        //Генерирует первую матрицу-------------------------------------
        public void Btn_GenMatr1_Click(object sender, RoutedEventArgs e)
        {
            Lbl_1_Error.Visibility = Visibility.Hidden;             //Скрывает сообщение об ошибке, т.к. ошибка ещё не случилась

            try                                                     //Чтобы не вылетало при создании матрицы
            {
                int m = Convert.ToInt32(Tbx_Matrix1_M.Text);        //m и n - размеры матрицы, берём String значения из TextBox и конвертируем их в Int
                int n = Convert.ToInt32(Tbx_Matrix1_N.Text);
                MathNewLib.Matrix M1 = new MathNewLib.Matrix(m, n); //Создаём матрицу (m,n)

                int min = Convert.ToInt32(Tbx_Matrix1_Min.Text);    //max и min - диапазон случайных значений для элементов матрицы
                int max = Convert.ToInt32(Tbx_Matrix1_Max.Text);
                M1.Random(min, max);                                //Заполняем матрицу случайными элементами из диапазона (min,max)

                Matrix1 = M1;                                       //Отправляем матрицу в Matrix1, которая видна на всей форме (Чтобы потом её использовать для вычислений, которые производятся в коде на другой кнопке)

                LoadMatrixToDataGrid(M1, DtGrd_1);                  //Метод для загрузки матрицы в DataGrid (M1 - матрица, DtGrd_1 - DataGrid)
                try
                {
                    LoadDetToLabel(M1.CalculateDeterminant(), lbl_Det); //Пробуем рассчитать определитель для матрицы
                }
                catch (Exception)
                {
                    lbl_Det.Content = "Определитель: " + "Нельзя посчитать"; //Если не получилось, значит матрица не квадратная
                }
            }
            catch //Если произошли ошибки, то показать сообщение об ошибке при создании матрицы
            {
                Lbl_1_Error.Visibility = Visibility.Visible;
                DtGrd_1.ItemsSource    = " ";
            }
        }
コード例 #2
0
        public void Btn_GenMatr2_Click(object sender, RoutedEventArgs e)
        {
            Lbl_2_Error.Visibility = Visibility.Hidden;

            try
            {
                int m = Convert.ToInt32(Tbx_Matrix2_M.Text);
                int n = Convert.ToInt32(Tbx_Matrix2_N.Text);
                MathNewLib.Matrix M2 = new MathNewLib.Matrix(m, n);

                int min = Convert.ToInt32(Tbx_Matrix2_Min.Text);
                int max = Convert.ToInt32(Tbx_Matrix2_Max.Text);

                M2.Random(min, max);
                Matrix2 = M2;

                LoadMatrixToDataGrid(M2, DtGrd_2);
                try
                {
                    LoadDetToLabel(M2.CalculateDeterminant(), lbl_Det_2);
                }
                catch (Exception)
                {
                    lbl_Det_2.Content = "Определитель: " + "Нельзя посчитать";
                }
            }
            catch
            {
                Lbl_2_Error.Visibility = Visibility.Visible;
                DtGrd_2.ItemsSource    = " ";
            }
        }
コード例 #3
0
 private void Btn_GenMatr3_BmulA_Click(object sender, RoutedEventArgs e)
 {
     Lbl_3_Error.Visibility = Visibility.Hidden;
     try
     {
         Matrix3 = Matrix2 * Matrix1;
         LoadMatrixToDataGrid(Matrix3, DtGrd_3);
         try
         {
             LoadDetToLabel(Matrix3.CalculateDeterminant(), lbl_Det_3);
         }
         catch (Exception)
         {
             lbl_Det_3.Content = "Определитель: " + "Нельзя посчитать";
         }
     }
     catch (Exception)
     {
         Lbl_3_Error.Visibility = Visibility.Visible;
         DtGrd_3.ItemsSource    = " ";
     }
 }
コード例 #4
0
 //Складывает 2 матрицы
 private void Btn_GenMatr3_Plus_Click(object sender, RoutedEventArgs e)
 {
     Lbl_3_Error.Visibility = Visibility.Hidden;
     try //Попытка сложить две матрицы
     {
         Matrix3 = Matrix1 + Matrix2;
         LoadMatrixToDataGrid(Matrix3, DtGrd_3);
         try
         {
             LoadDetToLabel(Matrix3.CalculateDeterminant(), lbl_Det_3);
         }
         catch (Exception)
         {
             lbl_Det_3.Content = "Определитель: " + "Нельзя посчитать";
         }
     }
     catch (Exception) //Исключение случится, если матрицы не одинакового размера
     {
         Lbl_3_Error.Visibility = Visibility.Visible;
         DtGrd_3.ItemsSource    = " ";
     }
 }
コード例 #5
0
 //Умнножает первую матрицу на число N
 private void Btn_GenMatr3_AmulN_Click(object sender, RoutedEventArgs e)
 {
     Lbl_3_Error.Visibility = Visibility.Hidden;
     try
     {
         double Number = Convert.ToDouble(Tbx_Matrix3_Nmul.Text); //Получаем число N из текстбокса
         Matrix3 = Matrix1 * Number;
         LoadMatrixToDataGrid(Matrix3, DtGrd_3);
         try
         {
             LoadDetToLabel(Matrix3.CalculateDeterminant(), lbl_Det_3);
         }
         catch (Exception)
         {
             lbl_Det_3.Content = "Определитель: " + "Нельзя посчитать";
         }
     }
     catch (Exception)
     {
         Lbl_3_Error.Visibility = Visibility.Visible;
         DtGrd_3.ItemsSource    = " ";
     }
 }