public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 3"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); form.Controls.Add(BeautyfyForms.AddButton("Открыть файл множества", new Point(0, 10), (o, k) => { Helper.LoadFile("Файл множества", "mul", multiplicity); dgv.ColumnCount = multiplicity.Count; for (int i = 0; i < multiplicity.Count; i++) { dgv.Columns[i].HeaderCell.Value = (i + 1).ToString(); dgv.Columns[i].ReadOnly = true; dgv.Rows[0].Cells[i].Value = multiplicity.ElementAt(i); } logLstBox.Items.Add(DateTime.Now.ToString() + ": Заполнили DGV множеством"); })); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(250, 10), (o, k) => { MessageBox.Show("Задача № 3. Теорема: любое множество можно представить с помощью разложения в произведения транспозиций. Попробуем найти циклическую перестановку и построить транспозицию."); })); form.Controls.Add(BeautyfyForms.AddButton("Открыть файл нового множества", new Point(0, 40), (o, k) => { Helper.LoadFile("Файл нового множества", "mul", newMultiplicity); dgv.ColumnCount = newMultiplicity.Count; for (int i = 0; i < newMultiplicity.Count; i++) { dgv.Rows[1].Cells[i].Value = newMultiplicity.ElementAt(i); } logLstBox.Items.Add(DateTime.Now.ToString() + ": Заполнили DGV множеством *"); })); form.Controls.Add(BeautyfyForms.AddButton("Найти транспозиции", new Point(0, 70), (o, k) => { ProcessTranspos(); })); form.Controls.Add(BeautyfyForms.AddButton("Построить циклическую перестановку", new Point(150, 70), (o, k) => { ProcessCycles(); })); dgv = BeautyfyForms.AddDataGridViewHeadersOnLeft(new Point(0, 100), form.Size, 3, new string[] { "Множество", "Множество *" }); form.Controls.Add(dgv); logLstBox = BeautyfyForms.AddListBox(new Point(0, 100 + dgv.Height + 5), form.Size); form.Controls.Add(logLstBox); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 1"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); form.Controls.Add(BeautyfyForms.AddButton("Открыть файл множества", new Point(0, 10), (o, k) => { Helper.LoadFileNode("Файл множества", "mul", multiplicity); dgv.ColumnCount = multiplicity.Count; for (int i = 0; i < multiplicity.Count; i++) { dgv.Columns[i].HeaderCell.Value = (i + 1).ToString(); dgv.Columns[i].ReadOnly = true; dgv.Rows[0].Cells[i].Value = multiplicity.ElementAt(i).value; } logLstBox.Items.Add(DateTime.Now.ToString() + ": Заполнили DGV множеством"); })); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(250, 10), (o, k) => { MessageBox.Show("Задача № 1. Задано множество, задана перестановка, вывести множество используя перестановку. "); })); form.Controls.Add(BeautyfyForms.AddButton("Открыть файл перестановок", new Point(0, 40), (o, k) => { Helper.LoadFile("Файл перестановок", "shuff", reshuffle); dgv.ColumnCount = reshuffle.Count; for (int i = 0; i < reshuffle.Count; i++) { dgv.Rows[1].Cells[i].Value = reshuffle.ElementAt(i); } logLstBox.Items.Add(DateTime.Now.ToString() + ": Заполнили DGV перестановкой"); })); form.Controls.Add(BeautyfyForms.AddButton("Обработать", new Point(0, 70), (o, k) => { Process(); })); dgv = BeautyfyForms.AddDataGridViewHeadersOnLeft(new Point(0, 100), form.Size, 5, new string[] { "Множество", "Перестановка", "Δ", "Множество *" }); form.Controls.Add(dgv); logLstBox = BeautyfyForms.AddListBox(new Point(0, 100 + dgv.Height + 5), form.Size); form.Controls.Add(logLstBox); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 1 (b)"; form.SetDefaultVals(new System.Drawing.Size(800, 700)); var tmpbutt = BeautyfyForms.AddButton("Очистить дерево", new Point(0, 10), (o, k) => { _tree = new BranchingTree(); treeViewer.Clear(); _addedWords.Items.Clear(); }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(200, 10), (o, k) => { MessageBox.Show("Задача № 1b. Параграф 6.3, Реализация структуры \"Лес\" "); })); tmpbutt = BeautyfyForms.AddButton("Добавить значение", new Point(0, 40), (o, k) => { if (string.IsNullOrEmpty(_addInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _addInput.Text; if (_tree.AddWord(text)) { if (!_addedWords.Items.Contains(text)) { _addedWords.Items.Add(text); } } treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Удалить значение", new Point(0, 70), (o, k) => { if (string.IsNullOrEmpty(_deleteInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _deleteInput.Text; _tree.DeleteWord(text); _addedWords.Items.Remove(text); treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Проверить значение", new Point(0, 100), (o, k) => { if (string.IsNullOrEmpty(_checkInput.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _checkInput.Text; if (_tree.WordExists(text)) { MessageBox.Show("Существует"); } else { MessageBox.Show("Не существует"); } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton("Отобразить деревце", new Point(0, 140), (o, k) => { treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Импорт ", new Point(0, 180), (o, k) => { var keys = new List <string>(); Helper.LoadFile("Список слов", "wordlst", keys); if (keys.Count > 0) { _tree = new BranchingTree(); treeViewer.Clear(); _addedWords.Items.Clear(); foreach (var key in keys) { if (_tree.AddWord(key)) { if (!_addedWords.Items.Contains(key)) { _addedWords.Items.Add(key); } } } } treeViewer.Text = (_tree != null) ? _tree.getTreeView(_addXToEnd.Checked) : ""; }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Экспорт ", new Point(80, 180), (o, k) => { SaveFileDialog saveFile = new SaveFileDialog(); saveFile.Filter = string.Format("{0} (*.{1})|*.{1}", "Луч", "branchview"); if (saveFile.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); _timerProgress.Start(); Task.Run(() => { System.IO.File.WriteAllText(saveFile.FileName, _tree.getTreeView(_addXToEnd.Checked, false)); }); _buttonsToHide.ForEach(x => x.Enabled = true); _timerProgress.Stop(); _progress.Value = _progress.Maximum; MessageBox.Show("Сохранено!"); } }); _buttonsToHide.Add(tmpbutt); form.Controls.Add(tmpbutt); tmpbutt = BeautyfyForms.AddButton(" Импорт .index ", new Point(160, 180), async(o, k) => { OpenFileDialog openDic = new OpenFileDialog(); openDic.Multiselect = false; openDic.Filter = string.Format("{0} (*.{1})|*.{1}", "Index файл", "index"); if (openDic.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); var openedFile = System.IO.Path.ChangeExtension(openDic.FileName, null); var indexFile = openedFile + ".index"; var baseFile = openedFile + ".base"; _timerProgress.Start(); var state = await Task.Run(() => LoadIndexFile(indexFile, baseFile)); if (state != false) { MessageBox.Show("Готово! Дерево загружено."); } else { MessageBox.Show("Ошибка загрузки дерева."); return; } _timerProgress.Stop(); _progress.Value = _progress.Maximum; _buttonsToHide.ForEach(x => x.Enabled = true); } }); //_buttonsToHide.Add(tmpbutt); //form.Controls.Add(tmpbutt); _progress = BeautyfyForms.AddProgressBar(new Point(300, 180), form.Size, 0, 10); form.Controls.Add(_progress); _timerProgress = BeautyfyForms.CreateTimer((sender, EventArgs) => { if (_progress.Value >= _progress.Maximum) { _progress.Value = 0; } else { _progress.Value = _progress.Value + 1; } }); _addInput = BeautyfyForms.CreateTextBox(new Point(150, 43), false); form.Controls.Add(_addInput); _deleteInput = BeautyfyForms.CreateTextBox(new Point(150, 73), false); form.Controls.Add(_deleteInput); _checkInput = BeautyfyForms.CreateTextBox(new Point(150, 103), false); form.Controls.Add(_checkInput); treeViewer = BeautyfyForms.CreateMLTextBox(new Point(5, 250 + 5), 780, 400); form.Controls.Add(treeViewer); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(150, 145), "Добавлять Х в качестве null-ветвей", true, 190)); _addXToEnd = BeautyfyForms.CreateCheckBox(new Point(340, 140), false); form.Controls.Add(_addXToEnd); _addedWords = BeautyfyForms.AddListBox(new Point(500, 20), new Size(200, 250)); _addedWords.MouseDoubleClick += (x, y) => { if (_addedWords.SelectedItem != null) { MessageBox.Show(_addedWords.SelectedItem.ToString()); } }; form.Controls.Add(_addedWords); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 1 и 2"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); form.Controls.Add(BeautyfyForms.AddButton("Инициализация", new Point(0, 10), (o, k) => { _inputG.Text = "64"; //G _inputA.Text = "122"; //H _inputM.Text = "607"; //P if (!_autoFindN.Checked) { _inputN.Text = "101";//N } Log("Инициализовали параметры стандартными значениями"); })); form.Controls.Add(BeautyfyForms.AddButton("Очистить лог", new Point(0, 43), (o, k) => { logLstBox.Items.Clear(); })); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(150, 10), (o, k) => { MessageBox.Show("Задача № 1 и 2. ρ - метод Полларда (обычный и параллельный) \r\n Найти такой х, что g^x = a % m "); })); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(310, 10), "g", true, 10)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(410, 10), "a", true, 25)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(520, 10), "m", true, 30)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(640, 10), "n", true, 30)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(705, 10), "Автоподбор n", true, 100)); _inputG = BeautyfyForms.CreateTextBox(new Point(270, 33), false); _inputG.Text = "0"; form.Controls.Add(_inputG); _inputA = BeautyfyForms.CreateTextBox(new Point(380, 33), false); _inputA.Text = "0"; form.Controls.Add(_inputA); _inputM = BeautyfyForms.CreateTextBox(new Point(490, 33), false); _inputM.Text = "0"; form.Controls.Add(_inputM); _inputN = BeautyfyForms.CreateTextBox(new Point(600, 33), false); _inputN.Text = "0"; form.Controls.Add(_inputN); _autoFindN = BeautyfyForms.CreateCheckBox(new Point(740, 33), false); _autoFindN.CheckedChanged += (o, k) => { if (_autoFindN.Checked) { _inputN.ReadOnly = true; _inputN.Text = "-1"; } else { _inputN.ReadOnly = false; _inputN.Text = "0"; } }; form.Controls.Add(_autoFindN); logLstBox = BeautyfyForms.AddListBox(new Point(0, 150 + 5), form.Size); logLstBox.MouseDoubleClick += (x, y) => { if (logLstBox.SelectedItem != null) { MessageBox.Show(logLstBox.SelectedItem.ToString()); } }; form.Controls.Add(logLstBox); form.Controls.Add(BeautyfyForms.AddButton(" Поехали (обычный) ", new Point(410, 63), (o, k) => { ParseAndRunPollard(false); })); form.Controls.Add(BeautyfyForms.AddButton(" Поехали (параллельный) ", new Point(410, 93), (o, k) => { ParseAndRunPollard(true); })); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 3"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); var btnOpen = BeautyfyForms.AddButton("Открыть index файл", new Point(0, 10), async(o, k) => { OpenFileDialog openDic = new OpenFileDialog(); openDic.Multiselect = false; openDic.Filter = string.Format("{0} (*.{1})|*.{1}", "Index файл", "index"); if (openDic.ShowDialog() == DialogResult.OK) { _buttonsToHide.ForEach(x => x.Enabled = false); openedFile = System.IO.Path.ChangeExtension(openDic.FileName, null); var indexFile = openedFile + ".index"; var baseFile = openedFile + ".base"; _timerProgress.Start(); logLstBox.Items.Add(DateTime.Now.ToString() + ": Загружаем index файл"); var state = await Task.Run(() => LoadIndexFile(indexFile, baseFile)); if (state) { logLstBox.Items.Add(DateTime.Now.ToString() + ": index файл загружен"); } else { logLstBox.Items.Add(DateTime.Now.ToString() + ": ошибка загрузки"); } _timerProgress.Stop(); _progress.Value = _progress.Maximum; _buttonsToHide.ForEach(x => x.Enabled = true); } }); _buttonsToHide.Add(btnOpen); form.Controls.Add(btnOpen); logLstBox = BeautyfyForms.AddListBox(new Point(0, 300 + 3), form.Size); form.Controls.Add(logLstBox); _progress = BeautyfyForms.AddProgressBar(new Point(150, 10), form.Size, 0, 10); form.Controls.Add(_progress); _timerProgress = BeautyfyForms.CreateTimer((sender, EventArgs) => { if (_progress.Value >= _progress.Maximum) { _progress.Value = 0; } else { _progress.Value = _progress.Value + 1; } }); _timerBackup = BeautyfyForms.CreateTimer(async(sender, EventArgs) => { var indexFile = openedFile + ".index"; var baseFile = openedFile + ".base"; var state = await Task.Run(() => SaveIndexFile(indexFile, baseFile)); }); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(300, 80), "Слово для поиска")); _info = BeautyfyForms.CreateLabel(new Point(400, 100), " Поиск не производился "); form.Controls.Add(_info); _input = BeautyfyForms.CreateTextBox(new Point(300, 100), false); form.Controls.Add(_input); var btnSearch = BeautyfyForms.AddButton(" Поиск ", new Point(200, 100), async(o, k) => { if (_linkedList == null) { MessageBox.Show("Необходимо сначала загрузить index файл"); return; } if (_linkedList.Count <= 0) { MessageBox.Show("Нет записей, которые можно было бы обработать. (Пустой файл?)"); return; } if (string.IsNullOrEmpty(_input.Text)) { MessageBox.Show("Нет текста для поиска"); return; } var text = _input.Text; var hashedText = Helper.GetHash(text, _header.hashType); _buttonsToHide.ForEach(x => x.Enabled = false); var state = await Task.Run(() => Search(hashedText)); if (state) { logLstBox.Items.Add(DateTime.Now.ToString() + ": Слово `" + text + "` найдено"); } else { logLstBox.Items.Add(DateTime.Now.ToString() + ": Слово `" + text + "` не найдено"); } _buttonsToHide.ForEach(x => x.Enabled = true); }); _buttonsToHide.Add(btnSearch); form.Controls.Add(btnSearch); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 1"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(370, 10), (o, k) => { MessageBox.Show("Задача № 1. Игра с Геометрическим, Биномиальным и Клиновидным распределениями!"); })); logGeometric = BeautyfyForms.AddListBox(new Point(10, 100), new Size(200, 450)); form.Controls.Add(logGeometric); _geometric = BeautyfyForms.CreateTextBox(new Point(40, 420), true); form.Controls.Add(_geometric); logBinominal = BeautyfyForms.AddListBox(new Point(300, 100), new Size(200, 450)); form.Controls.Add(logBinominal); _binominal = BeautyfyForms.CreateTextBox(new Point(340, 420), true); form.Controls.Add(_binominal); logWedgeShaped = BeautyfyForms.AddListBox(new Point(590, 100), new Size(200, 450)); form.Controls.Add(logWedgeShaped); _wedgeShaped = BeautyfyForms.CreateTextBox(new Point(625, 420), true); form.Controls.Add(_wedgeShaped); form.Controls.Add(BeautyfyForms.AddButton("Геометрическое", new Point(30, 70), (o, k) => { logGeometric.Items.Clear(); Task.Run(() => { var listOfElements = new List <KeyValueItem>(); var geom = new MathNet.Numerics.Distributions.Geometric(0.6); for (int i = 0; i <= 1000; i++) { listOfElements.Add(new KeyValueItem(i, geom.Probability(i))); } var sum = (from element in listOfElements.AsParallel() select element.Probability).Sum(); listOfElements = (from element in listOfElements.AsParallel() orderby element.Probability descending select element).ToList(); foreach (var item in listOfElements) { logGeometric.BeginInvoke(new MethodInvoker(() => logGeometric.Items.Add(item))); } double average = 0; for (int i = 0; i < 100000; i++) { var search = geom.Sample(); for (int j = 0; j < listOfElements.Count; j++) { if (listOfElements[j].Key == search) { average += j; } } } average /= 100000; _geometric.BeginInvoke(new MethodInvoker(() => _geometric.Text = Math.Round(average).ToString())); }); })); form.Controls.Add(BeautyfyForms.AddButton("Биноминальное", new Point(335, 70), (o, k) => { logBinominal.Items.Clear(); Task.Run(() => { var listOfElements = new List <KeyValueItem>(); var binom = new MathNet.Numerics.Distributions.Binomial(0.4, 1000); for (int i = 0; i <= 1000; i++) { listOfElements.Add(new KeyValueItem(i, binom.Probability(i))); } listOfElements = (from element in listOfElements.AsParallel() orderby element.Probability descending select element).ToList(); foreach (var item in listOfElements) { logBinominal.BeginInvoke(new MethodInvoker(() => logBinominal.Items.Add(item))); } long average = 0; for (int i = 0; i < 100000; i++) { var search = binom.Sample(); for (int j = 0; j < listOfElements.Count; j++) { if (listOfElements[j].Key == search) { average += j; } } } average /= 100000; _binominal.BeginInvoke(new MethodInvoker(() => _binominal.Text = Math.Round((decimal)average).ToString())); }); })); form.Controls.Add(BeautyfyForms.AddButton("Клиновидное", new Point(630, 70), (o, k) => { logWedgeShaped.Items.Clear(); Task.Run(() => { var listOfElements = new List <KeyValueItem>(); Random random = new Random((int)DateTime.Now.ToBinary()); int N = 1000; for (int i = 0; i < 1000; i++) { listOfElements.Add(new KeyValueItem(i, (N - i) * (2.0 / (N * (N + 1))))); } var sum = (from element in listOfElements.AsParallel() select element.Probability).Sum(); listOfElements = (from element in listOfElements.AsParallel() orderby element.Probability descending select element).ToList(); foreach (var item in listOfElements) { logWedgeShaped.BeginInvoke(new MethodInvoker(() => logWedgeShaped.Items.Add(item))); } double average = 0; for (int i = 0; i < 100000; i++) { var p = (N - random.Next(0, 1000)) * (2.0 / (N * (N + 1))); var search = -(1 / 2.0) * N * (N * p + p - 2); for (int j = 0; j < listOfElements.Count; j++) { if (listOfElements[j].Key == search) { average += j; } } } average /= 100000; _wedgeShaped.BeginInvoke(new MethodInvoker(() => _wedgeShaped.Text = Math.Round(average).ToString())); }); })); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Алгоритм Диксона - Курсовая работа"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(40, 10), "Число для факторизации (2 - 2147483647)", true, 250)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(70, 56), "Кол-во потоков (1-100)", true, 150)); _inputNumber = BeautyfyForms.CreateNumericUpDown(new Point(70, 33), 2, 2147483647, false); _inputNumber.Value = 2; form.Controls.Add(_inputNumber); _inputThreads = BeautyfyForms.CreateNumericUpDown(new Point(70, 79), 1, 100, false); _inputThreads.Value = 1; form.Controls.Add(_inputThreads); form.Controls.Add(BeautyfyForms.AddButton("Инициализация", new Point(300, 20), (o, k) => { _inputNumber.Value = 2; _inputThreads.Value = 1; Log("Инициализовали параметры стандартными значениями"); })); form.Controls.Add(BeautyfyForms.AddButton(" Факторизовать ", new Point(290, 55), (o, k) => { ParseAndRunDixon(); })); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(280, 90), "Считать кол-во операций", true, 150)); _calculateOperations = BeautyfyForms.CreateCheckBox(new Point(350, 105), false); form.Controls.Add(_calculateOperations); form.Controls.Add(BeautyfyForms.AddButton(" О программе ", new Point(545, 20), (o, k) => { string buffer = "Курсовая работа по предмету `Математические основы защиты информации и информационная безопасность`" + '\n'; buffer += "Алгоритм Диксона." + '\n'; buffer += "Данный алгоритм предназначен для факторизации натуральных чисел" + '\n'; buffer += "Выполнил: " + ConfigurationManager.AppSettings["Author"] + ", группа " + ConfigurationManager.AppSettings["Group"]; MessageBox.Show(buffer); })); form.Controls.Add(BeautyfyForms.AddButton("Очистить лог", new Point(550, 55), (o, k) => { logLstBox.Items.Clear(); })); form.Controls.Add(BeautyfyForms.AddButton("Кол-во операций -> буфер обмена", new Point(470, 90), (o, k) => { var researchData = new List <string>(); foreach (string item in logLstBox.Items) { if (item.Contains("Общее кол-во выполненых операций")) { researchData.Add(item); } } if (researchData.Count > 0) { System.Windows.Forms.Clipboard.SetText(string.Join("\r\n", researchData)); MessageBox.Show("Скопировано!"); } else { MessageBox.Show("Подходящие сообщения отсутствуют."); } })); logLstBox = BeautyfyForms.AddListBox(new Point(0, 150 + 5), form.Size); logLstBox.MouseDoubleClick += (x, y) => { if (logLstBox.SelectedItem != null) { MessageBox.Show(logLstBox.SelectedItem.ToString()); } }; form.Controls.Add(logLstBox); }
public void LocateControls(Form form, ConsoleHandler console) { form.Text = "Задание № 4"; form.SetDefaultVals(new System.Drawing.Size(800, 500)); form.Controls.Add(BeautyfyForms.AddButton("Случайное уравнение", new Point(0, 10), (o, k) => { var tuple = SelectRandomEquation(); _inputH.Text = tuple.Item1.ToString(); _inputG.Text = tuple.Item2.ToString(); _inputP.Text = tuple.Item3.ToString(); Log("Инициализовали параметры заготовленными значениями"); })); form.Controls.Add(BeautyfyForms.AddButton("Очистить лог", new Point(0, 43), (o, k) => { logLstBox.Items.Clear(); })); form.Controls.Add(BeautyfyForms.AddButton(" Суть ", new Point(170, 10), (o, k) => { MessageBox.Show("Задача № 4 Алгоритм Полига-Хеллмана \r\n Найти такой х, что H = G^x (mod P) "); })); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(310, 10), "H", true, 10)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(410, 10), "G", true, 25)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(520, 10), "P", true, 30)); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(705, 100), "Очищать лог", true, 100)); _inputH = BeautyfyForms.CreateTextBox(new Point(270, 33), false); _inputH.Text = "0"; form.Controls.Add(_inputH); _inputG = BeautyfyForms.CreateTextBox(new Point(380, 33), false); _inputG.Text = "0"; form.Controls.Add(_inputG); _inputP = BeautyfyForms.CreateTextBox(new Point(490, 33), false); _inputP.Text = "0"; form.Controls.Add(_inputP); _keepLog = BeautyfyForms.CreateCheckBox(new Point(740, 115), false); form.Controls.Add(_keepLog); logLstBox = BeautyfyForms.AddListBox(new Point(0, 150 + 5), form.Size); logLstBox.MouseDoubleClick += (x, y) => { if (logLstBox.SelectedItem != null) { MessageBox.Show(logLstBox.SelectedItem.ToString()); } }; form.Controls.Add(logLstBox); form.Controls.Add(BeautyfyForms.CreateLabel(new Point(380, 63), "H = G^x (mod P)", true, 100)); form.Controls.Add(BeautyfyForms.AddButton(" Поехали ", new Point(380, 93), (o, k) => { ParseAndRunPohligHellman(); })); }