Составить блок-схему по готовой программе - C#
Формулировка задачи:
Помогите пожалуйста составить блок-схему) ума не приложу как это сделать
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Runtime.InteropServices;
- using System.IO;
- namespace hpseo
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- //Opacity = 0;
- //Timer timer = new Timer();
- //timer.Tick += new EventHandler((sender, e) =>
- //{
- // if ((Opacity += 0.25d) == 1) timer.Stop();
- //});
- //timer.Interval = 100;
- //timer.Start();
- //изменение прозрачности формы при загрузке. Создаёт эффект плавного появления, но на слабых машинах может вызвать подвисания.
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- webBrowser1.Navigate("http://wordstat.yandex.ru"); webBrowser2.Navigate("https://adwords.google.com/o/KeywordTool");
- //при загрузке формы загружаются в веббраузеры с прописанными адресами.
- ToolTip t = new ToolTip();
- t.SetToolTip(pictureBox1, "Выход");
- ToolTip r = new ToolTip();
- r.SetToolTip(pictureBox2, "Развернуть");
- ToolTip y = new ToolTip();
- y.SetToolTip(pictureBox3, "Сохранить");
- ToolTip f = new ToolTip();
- f.SetToolTip(pictureBox4, "Свернуть");
- //загружаются подсказки
- }
- private void pictureBox1_Click(object sender, EventArgs e)
- {
- this.Close();
- //«кнопка закрыть»
- }
- private void pictureBox2_Click(object sender, EventArgs e)
- {
- if (this.WindowState == FormWindowState.Maximized)
- this.WindowState = FormWindowState.Normal;
- else this.WindowState = FormWindowState.Maximized;
- // «кнопка развернуть и вернуть форму в прежнее состояние»
- }
- private void pictureBox3_Click(object sender, EventArgs e)
- {
- System.IO.File.WriteAllText(@"\Frequency Helper\sys\x.txt", webBrowser1.Document.Body.Parent.OuterText, Encoding.GetEncoding(webBrowser1.Document.Encoding));
- //сохраняет в документ всё содержимое страницы
- System.IO.File.WriteAllText(@"\Frequency Helper\sys\x2.txt", File.ReadAllText(@"\Frequency Helper\sys\x.txt").Replace(File.ReadAllText(@"\Frequency Helper\sys\1.txt"), ""));
- //из документа x.txt удаляется содержимое 1.txt и сохраняет в x2.txt
- System.IO.File.WriteAllText(@"\Frequency Helper\yandex_keyword.txt", File.ReadAllText(@"\Frequency Helper\sys\x2.txt").Replace(File.ReadAllText(@"\Frequency Helper\sys\2.txt"), ""));
- //из x2.txt удаляет содержимое 2.txt. и сохраняет в конечный файл yandex_keyword.txt
- }
- private void pictureBox4_Click(object sender, EventArgs e)
- {
- this.WindowState = FormWindowState.Minimized;
- //позволяет свенуть форму
- }
- private void pictureBox5_Click(object sender, EventArgs e)
- {
- Form3 f = new Form3();
- f.Show();
- //вызывает 3форму с информацией о программе
- }
- }
- }
Решение задачи: «Составить блок-схему по готовой программе»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- namespace Model
- {
- public enum OptimizationDirection
- {
- ToMin,ToMax
- }
- public class Rosenbrock
- {
- private readonly Func<double[], double> f;
- private readonly double epsilon;
- private Vector y;
- private Vector[] d;
- private readonly int n;
- private readonly List<IterationDetails> details = new List<IterationDetails>();
- public OptimizationDirection Direction = OptimizationDirection.ToMin;
- public IEnumerable<IterationDetails> Details { get { return new List<IterationDetails>(details); } }
- public Rosenbrock(Func<double[], double> f, Vector startPoint, double epsilon)
- {
- if (startPoint.IsEmpty)
- throw new ArgumentException("startPoint");
- n = startPoint.Length;
- this.f = x => Direction == OptimizationDirection.ToMin ? f(x) : -f(x);
- this.epsilon = epsilon;
- y = startPoint;
- d = new Vector[n];
- for (int i = 0; i < n; i++)
- {
- d[i] = new Vector(n);
- d[i][i] = 1;
- }
- SmartPoint.SetFunction(f);
- }
- public Vector Solve()
- {
- int k = 0;
- details.Clear();
- var lambda = new Vector(n);
- Vector previousIterationY;
- do
- {
- k++;
- previousIterationY = y;
- var iterDetails = new IterationDetails(y, k);
- for (int j = 0; j < n; j++)
- {
- var previousStepY = y;
- int i = j;
- lambda[j] = Dichotomy(x => LambdaSolve(x, i), y[j]);
- y += lambda[j] * d[j];
- iterDetails.Add(new StepDetails(previousStepY, lambda[j], d[j], y, i+1));
- }
- details.Add(iterDetails);
- d = GramSchmidtProcess(lambda);
- } while ((y - previousIterationY).Norm >= epsilon);
- return y;
- }
- private double LambdaSolve(double x, int j)
- {
- return f(y + x * d[j]);
- }
- private Vector[] GramSchmidtProcess(Vector lambda)
- {
- var a = new Vector[n];
- for (int j = 0; j < n; j++)
- if (Math.Abs(lambda[j]) < epsilon) //Если ноль
- a[j] = d[j];
- else
- {
- a[j] = new Vector(n);
- for (int i = j; i < n; i++)
- a[j] += lambda[i] * d[i];
- }
- var b = (Vector[])a.Clone();
- b[0].Normalize();
- for (int j = 1; j < n; j++)
- {
- for (int i = 0; i < j; i++)
- b[j] -= Vector.TransposeAndMultiply(a[j], b[i]) * b[i];
- b[j].Normalize();
- }
- return b;
- }
- private double Dichotomy(Func<double, double> func, double startCoord)
- {
- double deviation = Math.Abs(startCoord) < double.Epsilon ? 5 : Math.Abs(startCoord) * 0.5 + 10;
- double a = startCoord - deviation, b = startCoord + deviation;
- double delta = epsilon / 10;
- while (b - a >= epsilon)
- {
- double middle = (a + b) / 2;
- double lambda = middle - delta, mu = middle + delta;
- if (func(lambda) < func(mu))
- b = mu;
- else
- a = lambda;
- }
- return (a + b) / 2;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д