예제 #1
0
 private void btnLer1_Click(object sender, EventArgs e)
 {
     if (dlgArquivo.ShowDialog() == DialogResult.OK)
     {
         string arquivo = dlgArquivo.FileName;
         if (File.Exists(arquivo))
         {
             matrizA = new ListaCruzada(new StreamReader(arquivo));
         }
         else
         {
             File.Create(arquivo);
         }
     }
     if (dlgArquivo.ShowDialog() == DialogResult.OK)
     {
         string arquivo = dlgArquivo.FileName;
         if (File.Exists(arquivo))
         {
             matrizB = new ListaCruzada(new StreamReader(arquivo));
         }
         else
         {
             File.Create(arquivo);
         }
     }
     matrizA.Exibir(ref dgvA);
     matrizB.Exibir(ref dgvB);
     btnMultiplicar.Enabled = true;
     btnSomar.Enabled       = true;
 }
예제 #2
0
 private void btnLerArquivo_Click(object sender, EventArgs e) // permite que o usuário exiba a matriz após a leitura
 {
     if (dlgArquivo.ShowDialog() == DialogResult.OK)
     {
         arquivo = dlgArquivo.FileName;
         if (File.Exists(arquivo))
         {
             matriz = new ListaCruzada(new StreamReader(arquivo));
         }
         else
         {
             File.Create(arquivo);
         }
         alterandoTextDimensao = true;
         txtLargura.Text       = matriz.Colunas.ToString();
         txtAltura.Text        = matriz.Linhas.ToString();
         alterandoTextDimensao = false;
         dgv.RowCount          = matriz.Linhas;
         dgv.ColumnCount       = matriz.Colunas;
         exibindoMatriz        = true;
         matriz.Exibir(ref dgv);
         exibindoMatriz           = false;
         btnExcluirMatriz.Enabled = true;
         btnExcluirCelula.Enabled = true;
         btnExibirCelula.Enabled  = true;
         label1.Enabled           = true;
         label2.Enabled           = true;
         nUDColuna.Enabled        = true;
         nUDLinha.Enabled         = true;
         btnAdicionarK.Enabled    = true;
     }
 }
예제 #3
0
 private void btnCriar_Click(object sender, EventArgs e)
 {
     if (txtAltura.Text != "" && txtLargura.Text != "" && !alterandoTextDimensao)
     {
         int l = int.Parse(txtAltura.Text);
         int c = int.Parse(txtLargura.Text);
         nUDColuna.Maximum = c;
         nUDLinha.Maximum  = l;
         if (l >= 1 && c >= 1)
         {
             matriz.RemoverTudo();
             matriz = new ListaCruzada();
             matriz.MudarDimensao(l, c);
             dgv.RowCount    = l;
             dgv.ColumnCount = c;
             exibindoMatriz  = true;
             foreach (DataGridViewRow r in dgv.Rows)
             {
                 foreach (DataGridViewCell co in r.Cells)
                 {
                     co.Value = 0;
                 }
             }
             matriz.Exibir(ref dgv);
             exibindoMatriz = false;
         }
     }
 }
예제 #4
0
        //----------------------------------------------------------------------------------------------------------------------------------
        //Matriz 1
        //----------------------------------------------------------------------------------------------------------------------------------
        private void btnGerar_Click(object sender, EventArgs e) //Gera a Matriz 1 por meio do "teclado"
        {
            //Pega as linhas e colunas para criar a matriz
            int linhas  = Convert.ToInt32(Math.Round(nLinhas.Value, 0));
            int colunas = Convert.ToInt32(Math.Round(nColunas.Value, 0));

            matriz1 = new ListaCruzada(linhas, colunas);

            //Ajusta o tamanho da matriz e preenche ela com zeros, pois como ela acabou de ser criada, ainda está vazia
            dgvMatriz1.RowCount    = linhas;
            dgvMatriz1.ColumnCount = colunas;
            foreach (DataGridViewRow row in dgvMatriz1.Rows)
            {
                foreach (DataGridViewCell cell in row.Cells)
                {
                    cell.Value = 0;
                }
            }

            //Altera a visibilidade de outros elementos
            m1Existe = true;
            if (m2Existe)
            {
                btnSomarMatrizes.Enabled       = true;
                btnMultiplicarMatrizes.Enabled = true;
            }
            btnGerarMatriz1.Enabled = false;
            lMatriz1.Enabled        = true;
            gbOperacoes1.Visible    = true;
        }
예제 #5
0
 private void btnMultiplicarMatrizes_Click(object sender, EventArgs e)
 {
     //Multiplica a Matriz1 e Matriz2
     matrizResultado = matriz1.MultiplicarMatrizes(matriz1, matriz2);
     matrizResultado.Exibir(ref dgvMatriz3);
     lMatrizResultado.Enabled = true;
 }
예제 #6
0
        //----------------------------------------------------------------------------------------------------------------------------------
        //Matriz 2
        //----------------------------------------------------------------------------------------------------------------------------------
        private void btnGerarMatriz2_Click(object sender, EventArgs e) //Gera a matriz 2 por meio do "teclado"
        {
            //Pega as linhas e colunas para criar a matriz
            int linhas  = Convert.ToInt32(Math.Round(nLinhas.Value, 0));
            int colunas = Convert.ToInt32(Math.Round(nColunas.Value, 0));

            matriz2 = new ListaCruzada(linhas, colunas);

            //Preenche a matriz com zeros
            foreach (DataGridViewRow row in dgvMatriz1.Rows)
            {
                foreach (DataGridViewCell cell in row.Cells)
                {
                    cell.Value = 0;
                }
            }

            //Altera a visibilidade de outros elementos
            m2Existe = true;
            if (m1Existe)
            {
                btnSomarMatrizes.Enabled       = true;
                btnMultiplicarMatrizes.Enabled = true;
            }
            lMatriz2.Enabled        = true;
            gbOperacoes2.Visible    = true;
            btnGerarMatriz2.Enabled = false;
        }
예제 #7
0
        private void btnMultiplicarMatrizes_Click(object sender, EventArgs e)
        {
            dgvResultado.Columns.Clear();
            ListaCruzada resultado = matriz1.MultiplicarMatrizes(matriz2);

            if (resultado != null)
            {
                Listar(resultado, dgvResultado);                                //listamos a matriz
                lblResultados.Visible  = true;
                lblResultados.Text     = "Resultado da Multiplicação:";
                tbMatrizes.SelectedTab = tabResultados;                        //usuário é direcionada a tab com o resultado
            }
            else
            {
                MessageBox.Show("As matrizes não são compatíveis para multiplicação");
            }
        }
예제 #8
0
        private void btnSomarMatrizes_Click(object sender, EventArgs e)   //chama método que Soma duas matrizes
        {
            dgvResultado.Columns.Clear();
            ListaCruzada resultado = matriz1.SomarMatrizes(matriz2);      //criamos uma terceira matriz que é a soma das duas já existentes

            if (resultado != null)
            {
                Listar(resultado, dgvResultado);                             //listamos a matriz
                lblResultados.Visible  = true;
                lblResultados.Text     = "Resultado da soma:";
                tbMatrizes.SelectedTab = tabResultados;                        //usuário é direcionada a tab com o resultado
            }
            else
            {
                MessageBox.Show("As matrizes devem ser de mesmo tamanho para a soma");
            }
        }
예제 #9
0
        private void btnLerArquivo_Click(object sender, EventArgs e) //Gera a Matriz 1 por meio da leitura de um arquivo
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                var arquivo = new StreamReader(openFileDialog1.FileName);

                //Lê as linhas e colunas do arquivo
                int linhasArq  = int.Parse(arquivo.ReadLine());
                int colunasArq = int.Parse(arquivo.ReadLine());

                //Cria a matriz com as linhas e colunas desejadas
                matriz1 = new ListaCruzada(linhasArq, colunasArq);

                //Trata o arquivo lido e insere os valores na matriz em suas respectivas linhas e colunas
                string linha = arquivo.ReadLine();
                linha = linha.Replace('(', ' ');
                linha = linha.Replace(')', ' ');
                linha = linha.Replace('{', ' ');
                linha = linha.Replace('}', ' ');
                linha.Trim();
                string[] matrizString = linha.Split(',');
                for (int i = 0; i < matrizString.Length;)
                {
                    int linhaCelula = int.Parse(matrizString[i]);
                    i++;
                    int colunaCelula = int.Parse(matrizString[i]);
                    i++;
                    double valor = double.Parse(matrizString[i]);
                    i++;

                    matriz1.InserirCelula(linhaCelula, colunaCelula, valor);
                }
                arquivo.Close();
                matriz1.Exibir(ref dgvMatriz1);

                //Altera a visibilidade de outros elementos
                btnLerArquivoMatriz1.Enabled = false;
                btnGerarMatriz1.Enabled      = false;
                lMatriz1.Enabled             = true;
                gbOperacoes1.Visible         = true;
            }
        }
예제 #10
0
        public void FazerLeitura(ref ListaCruzada matrizM)
        {
            string[] instanciacao;  //variável que será utilizada para instanciar uma matriz com os respcetivos valores x e y
            if (dlgAbrir.ShowDialog() == DialogResult.OK)
            {
                arquivoMatriz1 = dlgAbrir.FileName;
                var arquivo = new StreamReader(arquivoMatriz1);

                instanciacao = arquivo.ReadLine().Split();                                                           //a primeira linha do arquivo nos indicará qual será o tamanho dessa matriz
                matrizM      = new ListaCruzada(Convert.ToInt32(instanciacao[0]), Convert.ToInt32(instanciacao[1])); //após ler a primeira linha, utilizamos os valores dela para instanciar a matriz

                while (!arquivo.EndOfStream)                                                                         //o arquivo será lido completamente e criaremos as células passadas pelo arquivo
                {
                    Celula lido = Celula.LerRegistro(arquivo);
                    matrizM.Inserir(lido.Linha, lido.Coluna, lido.Valor);
                }

                arquivo.Close();
            }
        }
예제 #11
0
 public void Listar(ListaCruzada matrizM, DataGridView dgv)
 {
     exibindo = true;
     matrizM.Listar(dgv);
     exibindo = false;
 }
예제 #12
0
 private void Matrizes_Load(object sender, EventArgs e)
 {
     matriz1 = new ListaCruzada(5, 3);      //instançiação padrão, para caso o usuário deseje ver uma matriz logo que iniciar o programa
     matriz2 = new ListaCruzada(5, 3);
 }
예제 #13
0
 public frmMostrarMatriz()
 {
     InitializeComponent();
     matriz = new ListaCruzada();
 }
예제 #14
0
 public frmOperacoes()
 {
     InitializeComponent();
     matrizA = new ListaCruzada();
     matrizB = new ListaCruzada();
 }