コード例 #1
0
        private void btnCriarMatrizEsparsa2_Click(object sender, EventArgs e)
        {
            // os campos do forms já não permitem esses valores, mas a verificação é feita novamente
            if (numLinhasMatriz2.Value > 0 && numColunasMatriz2.Value > 0)
            {
                // seta as linhas e colunas e cria uma lista cruzada com os valores, exibindo-a no gridview
                int linhas  = Convert.ToInt32(numLinhasMatriz2.Value);
                int colunas = Convert.ToInt32(numColunasMatriz2.Value);

                matrizEsparsa2 = new ListaLigadaCruzada(linhas, colunas);
                matrizEsparsa2.ExibirDataGridView(dgvMatriz2);

                // seta os NumericUpDown com o número máximo de linhas/colunas
                // (-1 porque o índice começa no 0)
                linhaInserir2.Maximum  = linhas - 1;
                colunaInserir2.Maximum = colunas - 1;

                btnInserir2.Enabled = true;
                btnExcluir2.Enabled = true;

                if (matrizEsparsa2 == null)
                {
                    return;
                }
                if (matrizEsparsa2.EstaVazia)
                {
                    return;
                }

                btnSomar.Enabled       = true;
                btnMultiplicar.Enabled = true;
            }
        }
コード例 #2
0
        private void btnLerArquivo2_Click(object sender, EventArgs e)
        {
            if (dlgAbrir.ShowDialog() == DialogResult.OK) // usuário selecionou o arquivo
            {
                StreamReader arquivo = new StreamReader(dlgAbrir.FileName);

                string linhaArquivo = arquivo.ReadLine();

                string[] coordenadas = linhaArquivo.Split(' ');  // tira os espaços que separam a qtde de linhas e colunas
                                                                 // e coloca num vetor os dois valores

                int linhas  = Convert.ToInt32(coordenadas[0]);
                int colunas = Convert.ToInt32(coordenadas[1]);

                matrizEsparsa2 = new ListaLigadaCruzada(linhas, colunas);

                while ((linhaArquivo = arquivo.ReadLine()) != null)
                {
                    string[] celula = linhaArquivo.Split(','); // dados separados por virgula no arquivo

                    double valor  = Convert.ToDouble(celula[0]);
                    int    linha  = Convert.ToInt32(celula[1]);
                    int    coluna = Convert.ToInt32(celula[2]);

                    matrizEsparsa2.Inserir(valor, linha, coluna);
                }
                arquivo.Close(); // inseriu tudo na matriz



                matrizEsparsa2.ExibirDataGridView(dgvMatriz2);

                // seta os NumericUpDown com o número máximo de linhas/colunas
                // (-1 porque o índice começa no 0)
                linhaInserir2.Maximum  = linhas - 1;
                colunaInserir2.Maximum = colunas - 1;


                // habilita os botões das funções (inserir e excluir)
                btnInserir2.Enabled = true;
                btnExcluir2.Enabled = true;

                // habilita somar e multiplicar caso as duas matrizes sejam existentes
                if (matrizEsparsa2 == null)
                {
                    return;
                }
                if (matrizEsparsa2.EstaVazia)
                {
                    return;
                }

                btnSomar.Enabled       = true;
                btnMultiplicar.Enabled = true;
            }
        }
コード例 #3
0
        private void btnMultiplicar_Click(object sender, EventArgs e)
        {
            try
            {
                matrizEsparsaResultado = matrizEsparsa1.MultiplicarMatrizes(matrizEsparsa2);
                matrizEsparsaResultado.ExibirDataGridView(dgvMatrizResultado);
                btnInserir3.Enabled      = true;
                btnExcluir3.Enabled      = true;
                btnListarCelulas.Enabled = true;

                // seta os NumericUpDown com o número máximo de linhas/colunas
                // (-1 porque o índice começa no 0)
                linhaInserirResultado.Maximum  = matrizEsparsaResultado.Linhas - 1;
                colunaInserirResultado.Maximum = matrizEsparsaResultado.Colunas - 1;
            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
コード例 #4
0
        private void btnCriar_Click(object sender, EventArgs e)
        {
            // os campos do forms já não permitem esses valores, mas a verificação é feita novamente
            if (numLinhas.Value > 0 && numColunas.Value > 0)
            {
                // seta as linhas e colunas e cria uma lista cruzada com os valores, exibindo-a no gridview
                int linhas  = Convert.ToInt32(numLinhas.Value);
                int colunas = Convert.ToInt32(numColunas.Value);
                matrizEsparsa = new ListaLigadaCruzada(linhas, colunas);
                matrizEsparsa.ExibirDataGridView(dgvMatriz);

                // seta os NumericUpDown com o número máximo de linhas/colunas
                // (-1 porque o índice começa no 0)
                linhaInserir.Maximum  = linhas - 1;
                colunaInserir.Maximum = colunas - 1;

                linhaExcluir.Maximum  = linhas - 1;
                colunaExcluir.Maximum = colunas - 1;

                linhaBuscar.Maximum  = linhas - 1;
                colunaBuscar.Maximum = colunas - 1;

                colunaSoma.Maximum = colunas - 1;

                // aumenta o tamanho das celulas
                AumentarCelulas();

                // habilita os botões das funções (inserir, excluir, buscar, limpar, somar na coluna)
                btnBuscar.Enabled      = true;
                btnInserir.Enabled     = true;
                btnLimpar.Enabled      = true;
                btnExcluir.Enabled     = true;
                btnSomarColuna.Enabled = true;

                if (btnSalvarArquivo.Enabled == true)
                {
                    btnSalvarArquivo.Enabled = false;
                }
            }
        }
コード例 #5
0
        private void btnLerArquivo_Click(object sender, EventArgs e)
        {
            try
            {
                if (dlgAbrir.ShowDialog() == DialogResult.OK) // usuário selecionou o arquivo
                {
                    nomeArquivo = dlgAbrir.FileName;
                    StreamReader arquivo = new StreamReader(nomeArquivo);

                    string linhaArquivo = arquivo.ReadLine();

                    string[] coordenadas = linhaArquivo.Split(' ');  // tira os espaços que separam a qtde de linhas e colunas
                                                                     // e coloca num vetor os dois valores

                    int linhas  = Convert.ToInt32(coordenadas[0]);
                    int colunas = Convert.ToInt32(coordenadas[1]);

                    matrizEsparsa = new ListaLigadaCruzada(linhas, colunas);

                    while ((linhaArquivo = arquivo.ReadLine()) != null)
                    {
                        string[] celula = linhaArquivo.Split(','); // dados separados por virgula no arquivo

                        double valor  = Convert.ToDouble(celula[0]);
                        int    linha  = Convert.ToInt32(celula[1]);
                        int    coluna = Convert.ToInt32(celula[2]);

                        matrizEsparsa.Inserir(valor, linha, coluna);
                    }
                    arquivo.Close(); // inseriu tudo na matriz



                    matrizEsparsa.ExibirDataGridView(dgvMatriz);

                    // seta os NumericUpDown com o número máximo de linhas/colunas
                    // (-1 porque o índice começa no 0)
                    linhaInserir.Maximum  = linhas - 1;
                    colunaInserir.Maximum = colunas - 1;

                    linhaExcluir.Maximum  = linhas - 1;
                    colunaExcluir.Maximum = colunas - 1;

                    linhaBuscar.Maximum  = linhas - 1;
                    colunaBuscar.Maximum = colunas - 1;

                    colunaSoma.Maximum = colunas - 1;

                    // aumenta o tamanho das celulas
                    AumentarCelulas();

                    // habilita os botões das funções (inserir, excluir, buscar, limpar, somar na coluna)
                    btnBuscar.Enabled        = true;
                    btnInserir.Enabled       = true;
                    btnLimpar.Enabled        = true;
                    btnExcluir.Enabled       = true;
                    btnSomarColuna.Enabled   = true;
                    btnSalvarArquivo.Enabled = true;
                }
            }
            catch (Exception erro)
            {
                MessageBox.Show("As linhas do arquivo devem estar no formato correto para a criação da matriz:\n" +
                                "[Linha] [Coluna]                 ->  ex: 5 6\n" +
                                "[Valor], [Linha], [Coluna]  ->  ex: 23, 4, 5", "Erro na criação", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
        }