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; } }
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; } }
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); } }
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; } } }
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; } }