示例#1
0
        public Form1()
        {
            InitializeComponent();

            gerador = Gerador.getInstance();
            gerador.Gerador_ComboBox(CBMatriz);
        }
        public static MatrizBase SetarMatriz(string opcaoSelecionada, MatrizBase matrizBase)
        {
            switch (opcaoSelecionada)
            {
            case "SOMAR":
                matrizBase = new M_Somar();
                matrizBase.Calcular(Gerador.getInstance().getMatriz1(), Gerador.getInstance().getMatriz2());
                break;

            case "SUBTRAIR":
                matrizBase = new M_Subtrair();
                matrizBase.Calcular(Gerador.getInstance().getMatriz1(), Gerador.getInstance().getMatriz2());
                break;

            case "TRANSPOSTA":
                matrizBase = new M_Transposta();
                matrizBase.Calcular(Gerador.getInstance().getMatriz1(), Gerador.getInstance().getMatriz1());
                break;

            case "OPOSTA":
                matrizBase = new M_Oposta();
                matrizBase.Calcular(Gerador.getInstance().getMatriz1(), Gerador.getInstance().getMatriz1());
                break;

            case "MULTIPLICAR":
                matrizBase = new M_Multiplicar();
                matrizBase.Calcular(Gerador.getInstance().getMatriz1(), Gerador.getInstance().getMatriz2());
                break;

            case "DETERMINANTE 2X2":
                matrizBase = new M_Determinante2x2();
                matrizBase.Calcular(Gerador.getInstance().getMatriz1(), Gerador.getInstance().getMatriz1());
                break;

            case "DETERMINANTE 3X3":
                matrizBase = new M_Determinante3x3();
                matrizBase.Calcular(Gerador.getInstance().getMatriz1(), Gerador.getInstance().getMatriz1());
                break;

            case "INVERSA 2X2":
                matrizBase = new M_Inversa2x2();
                matrizBase.Calcular(Gerador.getInstance().getMatriz1(), Gerador.getInstance().getMatriz1());
                break;

            case "INVERSA 3X3":
                matrizBase = new M_Inversa3x3();
                matrizBase.Calcular(Gerador.getInstance().getMatriz1(), Gerador.getInstance().getMatriz1());
                break;

            default:
                matrizBase = new M_Somar();
                matrizBase.Calcular(Gerador.getInstance().getMatriz1(), Gerador.getInstance().getMatriz2());
                break;
            }

            return(matrizBase);
        }
示例#3
0
        public static Gerador getInstance()
        {
            if (gerador == null)
            {
                gerador = new Gerador();
            }

            return(gerador);
        }
示例#4
0
        public override void Calcular(TextBox[,] matriz1, TextBox[,] matriz2)
        {
            base.Calcular(matriz1, matriz2);
            TextBox[,] Resultado = Gerador.getInstance().getMatriz3();

            if (podeCalcularBool)
            {
                for (int i = 0; i < matriz1.GetLength(0); i++)
                {
                    for (int j = 0; j < matriz1.GetLength(1); j++)
                    {
                        Resultado[j, i].Text = matriz1[i, j].Text;
                    }
                }
            }
        }
示例#5
0
        private void BTTCriarMatriz_Click(object sender, EventArgs e)
        {
            int matrizParaAdicionar;

            try
            {
                matrizParaAdicionar = gerador.Gerador_TextBox(CBMatriz.Text, Convert.ToInt32(CB_Matriz1_1.Text), Convert.ToInt32(CB_Matriz1_2.Text)
                                            , Convert.ToInt32(CB_Matriz2_1.Text), Convert.ToInt32(CB_Matriz2_2.Text));
            }
            catch (FormatException) { MessageBox.Show("Algum número está em formato incorreto.","Formatação Errada"); matrizParaAdicionar = -1; }

            if (matrizParaAdicionar == 1)
            {
                //Adicionar as Textbox 2x2.
                AdicionarTextBox(gerador.getMatriz1(), Convert.ToInt32(CB_Matriz1_1.Text), Convert.ToInt32(CB_Matriz1_2.Text));
                AdicionarTextBox(gerador.getMatriz2(), Convert.ToInt32(CB_Matriz2_1.Text), Convert.ToInt32(CB_Matriz2_2.Text));
                AdicionarTextBox(gerador.getMatriz3(), Gerador.getInstance().getMatriz3().GetLength(0), Gerador.getInstance().getMatriz3().GetLength(1));

                //Ativar o botão invisível.
                BTTCalcularMatriz.Visible = true;
                return;
            }
            else if (matrizParaAdicionar == 2)
            {
                //Adicionar as Textbox 2x2.
                AdicionarTextBox(gerador.getMatriz1(), Gerador.getInstance().getMatriz1().GetLength(0), Gerador.getInstance().getMatriz1().GetLength(1));

                //Ativar o botão invisível.
                BTTCalcularMatriz.Visible = true;
                return;
            }
            else if (matrizParaAdicionar == 3)
            {
                //Adicionar as Textbox 2x2.
                AdicionarTextBox(gerador.getMatriz1(), Gerador.getInstance().getMatriz1().GetLength(0), Gerador.getInstance().getMatriz1().GetLength(1));
                AdicionarTextBox(gerador.getMatriz3(), Gerador.getInstance().getMatriz3().GetLength(0), Gerador.getInstance().getMatriz3().GetLength(1));

                //Ativar o botão invisível.
                BTTCalcularMatriz.Visible = true;
                return;
            }

            //Se o usuário apagar o texto, deixar o botão novamente invisível.
            BTTCalcularMatriz.Visible = false;
        }
示例#6
0
        public override void Calcular(TextBox[,] matriz1, TextBox[,] matriz2)
        {
            base.Calcular(matriz1, matriz2);
            TextBox[,] Resultado = Gerador.getInstance().getMatriz3();

            if (podeCalcularBool)
            {
                for (int i = 0; i < matriz1.GetLength(0); i++)
                {
                    for (int j = 0; j < matriz1.GetLength(1); j++)
                    {
                        double convertido = Convert.ToDouble(matriz1[i, j].Text);
                        convertido          *= -1;
                        Resultado[i, j].Text = convertido.ToString();
                    }
                }
            }
        }
        public override void Calcular(TextBox[,] matriz1, TextBox[,] matriz2)
        {
            base.Calcular(matriz1, matriz2);
            TextBox[,] Resultado = Gerador.getInstance().getMatriz3();
            double[,] result     = new double[matriz1.GetLength(0), matriz2.GetLength(1)];

            if (podeCalcularBool)
            {
                for (int i = 0; i < matriz1.GetLength(0); i++)
                {
                    for (int j = 0; j < matriz2.GetLength(1); j++)
                    {
                        for (int k = 0; k < matriz2.GetLength(0); k++)
                        {
                            result[i, j]        += Convert.ToDouble(matriz1[i, k].Text) * Convert.ToDouble(matriz2[k, j].Text);
                            Resultado[i, j].Text = result[i, j].ToString();
                        }
                    }
                }
            }
        }
        public override void Calcular(TextBox[,] matriz1, TextBox[,] matriz2)
        {
            base.Calcular(matriz1, matriz2);
            Gerador gerador = Gerador.getInstance();

            if (podeCalcularBool)
            {
                for (int x = 0; x < matriz1.GetLength(0); x++)
                {
                    for (int y = 0; y < matriz1.GetLength(1); y++)
                    {
                        //Pega os dois valores da matriz e soma -Resultado da soma de matrizes na posição-
                        double v1    = Convert.ToInt32(matriz1[x, y].Text);
                        double v2    = Convert.ToInt32(matriz2[x, y].Text);
                        double valor = v1 + v2;

                        //Alterar o texto do Textbox;
                        gerador.setMatriz3(x, y, valor.ToString());
                    }
                }
            }
        }
示例#9
0
        public override void Calcular(TextBox[,] matriz1, TextBox[,] matriz2)
        {
            base.Calcular(matriz1, matriz2);
            det = M_Determinante2x2.Determinante(matriz1);

            if (det != 0)
            {
                float[,] valor = inversa(matriz1);
                gerador.setMatriz3(0, 0, valor[0, 0].ToString());
                gerador.setMatriz3(1, 0, valor[1, 0].ToString());
                gerador.setMatriz3(0, 1, valor[0, 1].ToString());
                gerador.setMatriz3(1, 1, valor[1, 1].ToString());

                det = 0;
            }
            else
            {
                MessageBox.Show("Essa matriz não tem inverssa");
                det = 0;
            }

            TextBox[,] Resultado = Gerador.getInstance().getMatriz3();
        }
示例#10
0
 public override void Calcular(TextBox[,] matriz1, TextBox[,] matriz2)
 {
     base.Calcular(matriz1, matriz2);
     TextBox[,] Resultado = Gerador.getInstance().getMatriz3();
 }
 public override void Calcular(TextBox[,] matriz1, TextBox[,] matriz2)
 {
     base.Calcular(matriz1, matriz2);
     TextBox[,] Resultado = Gerador.getInstance().getMatriz3();
     MessageBox.Show("Determinante: " + Determinante(matriz1).ToString());
 }