Example #1
0
        private void fileInput_Click(object sender, EventArgs e)
        {
            try
            {
                var file = new OpenFileDialog();
                file.Filter = "Text file|*.txt";
                if (file.ShowDialog() == DialogResult.OK)
                {
                    StreamReader sr        = new StreamReader(file.FileName);
                    string       dataInput = sr.ReadToEnd();
                    sr.Close();

                    Input           = MatrixInitialazer.Input(dataInput, Input, sim.Checked);
                    epsBox.Enabled  = true;
                    iterBox.Enabled = true;
                    var tmp   = new FormatFactory();
                    var value = tmp.formats[formatBox.SelectedItem.ToString()];
                    fileInputedSLAE.matrix = FormatFactory.Init(value, Input, Input.symmetry);
                    var a = FormatFactory.PatternRequired(formatBox.SelectedItem.ToString());

                    fileInputBtn.Text = file.FileName;
                    fileInputNotNull  = true;
                    CheckedChanged(inputCheckedImg, inputChecked = true);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Неправильный формат входного файла.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #2
0
        public static IMatrix Init(Formats type, MatrixInitialazer initialazer, bool symmetry)
        {
            try
            {
                if (symmetry)
                {
                    switch (type)
                    {
                    case Formats.Coordinational:
                        return(new SymmetricCoordinationalMatrix(initialazer.row, initialazer.column, initialazer.gg, initialazer.size));

                    case Formats.Dense:
                        return(new SymmetricDenseMatrix(initialazer.denseL));

                    case Formats.Skyline:
                        return(new SymmetricSkylineMatrix(initialazer.di, initialazer.ia, initialazer.gg));

                    case Formats.SparseRow:
                        return(new SymmetricSparseRowMatrix(initialazer.gg, initialazer.ja, initialazer.ia));

                    case Formats.SparseRowColumn:
                        return(new SymmetricSparseRowColumnMatrix(initialazer.di, initialazer.gg, initialazer.ia, initialazer.ja));

                    default:
                        throw new ArgumentOutOfRangeException(nameof(type), type, null);
                    }
                }
                switch (type)
                {
                case Formats.Coordinational:
                    return(new CoordinationalMatrix(initialazer.row, initialazer.column, initialazer.gg, initialazer.size));

                case Formats.Dense:
                    return(new DenseMatrix(initialazer.dense));

                case Formats.Skyline:
                    return(new SkylineMatrix(initialazer.di, initialazer.ia, initialazer.al, initialazer.au));

                case Formats.SparseRow:
                    return(new SparseRowMatrix(initialazer.gg, initialazer.ja, initialazer.ia));

                case Formats.SparseRowColumn:
                    return(new SparseRowColumnMatrix(initialazer.di, initialazer.al, initialazer.au, initialazer.ia, initialazer.ja));

                default:
                    throw new ArgumentOutOfRangeException(nameof(type), type, null);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return(null);
        }
Example #3
0
        private void fileInput_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog file = new OpenFileDialog();
                file.Filter = "Text file|*.txt";
                if (file.ShowDialog() == DialogResult.OK)
                {
                    StreamReader sr        = new StreamReader(file.FileName);
                    string       dataInput = sr.ReadToEnd();
                    sr.Close();

                    Input           = MatrixInitialazer.Input(dataInput, Input, sim.Checked);
                    epsBox.Enabled  = true;
                    timeBox.Enabled = true;
                    matrix          = FormatFactory.Init((Formats)formatBox.SelectedIndex, Input, Input.symmetry);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Неправильный формат входного файла.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #4
0
        public static IMatrix Init(Formats type, MatrixInitialazer initialazer, bool symmetry)
        {
            try
            {
                if (symmetry)
                {
                    switch (type)
                    {
                    case Formats.Coordinational:
                    {
                        // SymmetricCoordinationalMatrix matrix = new SymmetricCoordinationalMatrix();
                    }
                    break;

                    case Formats.Dense:
                        return(new SymmetricDenseMatrix(initialazer.denseL));

                    case Formats.Skyline:
                        return(new SymmetricSkylineMatrix(initialazer.di, initialazer.ig, initialazer.gg));

                    case Formats.SparseRow:
                        return(new SymmetricSparseRowMatrix(initialazer.gg, initialazer.jg, initialazer.ig));

                    case Formats.SparseRowColumn:
                        return(new SymmetricSparseRowColumnMatrix(initialazer.di, initialazer.gg, initialazer.ig, initialazer.ig));

                    default:
                        break;
                    }
                }
                else
                {
                    switch (type)
                    {
                    case Formats.Coordinational:
                    {
                        var list = initialazer.column.Select((c, i) => (c, initialazer.row[i], initialazer.gg[i])).ToList();
                        return(new CoordinationalMatrix(list, initialazer.size));
                    }

                    case Formats.Dense:
                        return(new DenseMatrix(initialazer.dense));

                    case Formats.Skyline:
                        return(new SkylineMatrix(initialazer.di, initialazer.ig, initialazer.gl, initialazer.gl));

                    case Formats.SparseRow:
                        return(new SparseRowMatrix(initialazer.gg, initialazer.jg, initialazer.ig));

                    case Formats.SparseRowColumn:
                        return(new SparseRowColumnMatrix(initialazer.di, initialazer.gl, initialazer.gu, initialazer.ig, initialazer.jg));

                    default:
                        break;
                    }
                }
            }
            catch (ArgumentNullException ex)
            {
                MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return(null);
        }
Example #5
0
 public static MatrixInitialazer Input(string data, MatrixInitialazer matrix, bool symmetry)
 {
     matrix          = JsonConvert.DeserializeObject <MatrixInitialazer>(data);
     matrix.symmetry = symmetry;
     return(matrix);
 }