private void matrixLoopCalculation() { int start, end, step; start = Convert.ToInt16(GetStartPoint()); end = Convert.ToInt16(GetEndPoint()); step = Convert.ToInt16(GetStep()); double partOfVolume = Convert.ToDouble(GetVolume()); for (int i = start; i <= end; i = i + step) { cells = new NandMRectangleCells(FreeClass.body); cells.SetAccuracy(Convert.ToInt16(GetAccuracy())); cells.SetCellsV(FreeClass.body.GetV() * Convert.ToDouble(textBox3.Text.Replace('.', ',')) / 100); cells.SetColumnsNumber(i); cells.SetRowsNumber(i); cells.Calculation(); //рисуем ячейки if (!cells.isAvailable()) { DialogResult dialogResult = MessageBox.Show("Не удалось решить структуру при определённых условиях." + " запустить следующий набор данных?", "Предупреждение", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { continue; } else if (dialogResult == DialogResult.No) { return; } } textResultsCellsRectangelNaM(resultBox); resultBox.Text += Environment.NewLine; } }
private void calculateButton_Click(object sender, EventArgs e) { if (FreeClass.body == null) { MessageBox.Show("Тело не было задано. Невозможно произвести вычисления"); return; } if (singleBuildRadioButton.Checked) { cells = new NandMRectangleCells(FreeClass.body); cells.SetAccuracy(Convert.ToInt16(textBox4.Text)); cells.SetCellsV(FreeClass.body.GetV() * Convert.ToDouble(textBox3.Text.Replace('.', ',')) / 100); if (TwoInNRadioButton.Checked) { double buff = Convert.ToInt16(textBox1.Text); if (buff % 2 == 0) { buff = Math.Sqrt(Math.Pow(2, buff)); cells.SetColumnsNumber(Convert.ToInt16(buff)); cells.SetRowsNumber(Convert.ToInt16(buff)); } else { buff = Math.Sqrt(Math.Pow(2, buff - 1)); cells.SetColumnsNumber(Convert.ToInt16(buff) * 2); cells.SetRowsNumber(Convert.ToInt16(buff)); } } else if (SquareMatrixRadioButton.Checked) { cells.SetColumnsNumber(Convert.ToInt16(textBox1.Text)); cells.SetRowsNumber(Convert.ToInt16(textBox1.Text)); } else { cells.SetColumnsNumber(Convert.ToInt16(textBox1.Text)); cells.SetRowsNumber(Convert.ToInt16(textBox2.Text)); } cells.Calculation(); if (!cells.isAvailable()) { MessageBox.Show("Решение не было найдено"); return; } resultBox.Clear(); resultBox.Text += "Обьём цельного тела" + FreeClass.body.GetV(); resultBox.Text += Environment.NewLine; textResultsCellsRectangelNaM(resultBox); } else if (loopBuildRadioButton.Checked) { resultBox.Clear(); resultBox.Text += "Обьём цельного тела" + FreeClass.body.GetV(); resultBox.Text += Environment.NewLine; if (SquareMatrixRadioButton.Checked) { matrixLoopCalculation(); } else if (TwoInNRadioButton.Checked) { int start, end, step; start = Convert.ToInt16(GetStartPoint()); end = Convert.ToInt16(GetEndPoint()); step = Convert.ToInt16(GetStep()); double partOfVolume = Convert.ToDouble(GetVolume()); for (int i = start, j = 1; i <= end; i = i + step, j++) { cells = new NandMRectangleCells(FreeClass.body); cells.SetAccuracy(Convert.ToInt16(GetAccuracy())); cells.SetCellsV(FreeClass.body.GetV() * partOfVolume / 100); if (i % 2 == 0) { double buff = Math.Sqrt(Math.Pow(2, i)); cells.SetColumnsNumber(Convert.ToInt16(buff)); cells.SetRowsNumber(Convert.ToInt16(buff)); } else { double buff = Math.Sqrt(Math.Pow(2, i - 1)); cells.SetColumnsNumber(Convert.ToInt16(buff) * 2); cells.SetRowsNumber(Convert.ToInt16(buff)); } cells.Calculation(); if (!cells.isAvailable()) { DialogResult dialogResult = MessageBox.Show("Не удалось решить структуру при определённых условиях." + " запустить следующий набор данных?", "Предупреждение", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { continue; } else if (dialogResult == DialogResult.No) { return; } } textResultsCellsRectangelNaM(resultBox); } } else { int start1, start2, end, step; start1 = Convert.ToInt16(GetStartPoint()); start2 = Convert.ToInt16(GetEndPoint()); end = Convert.ToInt16(GetMiddlePoint()); step = Convert.ToInt16(GetStep()); double partOfVolume = Convert.ToDouble(GetVolume()); //withoutIterationResearch(); for (int i = start1, j = 1; i <= end; i = i + step, j++, start2 = start2 + step) { cells = new NandMRectangleCells(FreeClass.body); cells.SetAccuracy(Convert.ToInt16(GetAccuracy())); cells.SetCellsV(FreeClass.body.GetV() * partOfVolume / 100); cells.SetColumnsNumber(i); cells.SetRowsNumber(start2); cells.Calculation(); if (!cells.isAvailable()) { DialogResult dialogResult = MessageBox.Show("Не удалось решить структуру при определённых условиях." + " запустить следующий набор данных?", "Предупреждение", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { continue; } else if (dialogResult == DialogResult.No) { return; } } textResultsCellsRectangelNaM(resultBox); } } } }