예제 #1
0
 private void btnSomaMatriz_Click(object sender, EventArgs e)
 {
     if (matriz1.Colunas == matriz2.Colunas && matriz1.Linhas == matriz2.Linhas)
     {
         label1.Visible    = true;
         DgvResult.Visible = true;
         MatrizEsparsa result = new MatrizEsparsa(1, 1);
         result = matriz1.SomarMatriz(matriz2);
         result.Exibir(DgvResult);
         estadoAtual = (int)estado.exibindo;
         atualizaBtns();
     }
     else
     {
         MessageBox.Show("As matrizes devem ter os mesmos números de linhas e colunas para efetuar a operação", "Erro de formatação:", MessageBoxButtons.OK);
     }
 }
예제 #2
0
 private void btnRead_Click(object sender, EventArgs e)
 {
     if (ofdLeitura.ShowDialog() == DialogResult.OK)
     {
         if (matrizAtual == matriz1 && matrizAtual == null)
         {
             matriz1        = new MatrizEsparsa(1, 1);
             matriz1        = matriz1.LerMatriz(ofdLeitura.FileName);
             label3.Visible = true;
             dgvUm.Visible  = true;
             matriz1.Exibir(dgvUm);
             matrizAtual = matriz2;
         }
         else
         {
             matriz2         = new MatrizEsparsa(1, 1);
             matriz2         = matriz1.LerMatriz(ofdLeitura.FileName);
             label2.Visible  = true;
             dgvDois.Visible = true;
             matriz2.Exibir(dgvDois);
         }
     }
     atualizaBtns();
 }
예제 #3
0
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            int    c = 0, l = 0;
            double v = 0;

            int.TryParse(txtLinha.Text, out l);
            int.TryParse(txtColuna.Text, out c);
            double.TryParse(txtValor.Text, out v);
            switch (estadoAtual)
            {
            case (int)estado.criando:
                if (matriz1 == matrizAtual && matrizAtual == null)
                {
                    matriz1        = new MatrizEsparsa(c, l);
                    label3.Visible = true;
                    dgvUm.Visible  = true;
                    matriz1.Exibir(dgvUm);
                    matrizAtual = matriz2;
                }
                else
                {
                    matriz2         = new MatrizEsparsa(c, l);
                    label2.Visible  = true;
                    dgvDois.Visible = true;
                    matriz2.Exibir(dgvDois);
                    matrizAtual = matriz2;
                }
                btnCancelar.PerformClick();
                break;

            case (int)estado.exibindo:
                label1.Visible    = false;
                DgvResult.Visible = false;
                estadoAtual       = (int)estado.navegando;
                atualizaBtns();
                break;

            case (int)estado.excluindo:

                if (matriz2 == null)
                {
                    if (c <= matriz1.Colunas && l <= matriz1.Linhas)
                    {
                        matriz1.Deletar(c, l);
                        matriz1.Exibir(dgvUm);
                    }
                    else
                    {
                        MessageBox.Show("Os valores de índices excedem as dimenções da matriz.", "Erro de digitação:", MessageBoxButtons.OK);
                    }
                }
                else
                {
                    if (c <= matriz2.Colunas && l <= matriz2.Linhas)
                    {
                        matriz2.Deletar(c, l);
                        matriz2.Exibir(dgvDois);
                    }
                    else
                    {
                        MessageBox.Show("Os valores de índices excedem as dimenções da matriz.", "Erro de digitação:", MessageBoxButtons.OK);
                    }
                }
                btnCancelar.PerformClick();
                break;

            case (int)estado.inserindo:
                if (matriz2 == null)
                {
                    if (c <= matriz1.Colunas && l <= matriz1.Linhas)
                    {
                        matriz1.Inserir(l, c, v);
                        matriz1.Exibir(dgvUm);
                    }
                    else
                    {
                        MessageBox.Show("Os valores de índices excedem as dimenções da matriz.", "Erro de digitação:", MessageBoxButtons.OK);
                    }
                }
                else
                {
                    if (c <= matriz2.Colunas)
                    {
                        matriz2.Inserir(l, c, v);
                        matriz2.Exibir(dgvDois);
                    }
                    else
                    {
                        MessageBox.Show("Os valores de índices excedem as dimenções da matriz.", "Erro de digitação:", MessageBoxButtons.OK);
                    }
                }
                btnCancelar.PerformClick();
                break;

            case (int)estado.somandoK:
                if (matriz2 == null)
                {
                    if (c <= matriz1.Colunas)
                    {
                        matriz1.SomarK(c, v);
                        matriz1.Exibir(dgvUm);
                    }
                    else
                    {
                        MessageBox.Show("O valor de índice de coluna excede as dimenções da matriz", "Erro de digitação:", MessageBoxButtons.OK);
                    }
                }
                else
                {
                    if (c <= matriz2.Colunas && l <= matriz2.Linhas)
                    {
                        matriz2.SomarK(c, v);
                        matriz2.Exibir(dgvDois);
                    }
                    else
                    {
                        MessageBox.Show("O valor de índice de coluna excede as dimenções da matriz.", "Erro de digitação:", MessageBoxButtons.OK);
                    }
                }
                btnCancelar.PerformClick();
                break;

            case (int)estado.pesquisando:
                if (matriz2 == null)
                {
                    if (c <= matriz1.Colunas && l <= matriz1.Linhas)
                    {
                        MessageBox.Show("o valor na célula é: " + (matriz1.Buscar(int.Parse(txtLinha.Text), int.Parse(txtColuna.Text)).Valor).ToString(), "Resultado da pesquisa:", MessageBoxButtons.OK);
                    }
                    else
                    {
                        MessageBox.Show("Os valores de índices excedem as dimenções da matriz.", "Erro de digitação:", MessageBoxButtons.OK);
                    }
                }
                else
                {
                    if (c <= matriz2.Colunas && l <= matriz2.Linhas)
                    {
                        MessageBox.Show("o valor na célula é: " + (matriz2.Buscar(int.Parse(txtLinha.Text), int.Parse(txtColuna.Text)).Valor).ToString(), "Resultado da pesquisa", MessageBoxButtons.OK);
                    }
                    else
                    {
                        MessageBox.Show("Os valores de índices excedem as dimenções da matriz.", "Erro de digitação:", MessageBoxButtons.OK);
                    }
                }
                btnCancelar.PerformClick();
                break;
            }
        }